質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Postfix

Postfixは、電子メールサーバソフトウェアで、 メールを配送するシステムMTAの一種です。

Amazon EC2

Amazon EC2は“Amazon Elastic Compute Cloud”の略称です。Amazon Web Services(AWS)の一部であり、仮想化されたWebサーバーのコンピュータリソースをレンタルできるサービスです。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

Q&A

解決済

1回答

6194閲覧

AWSのEC2でPostfixを立ち上げてメールサーバにしたい。が、メールが送信できない。

lin.ming

総合スコア50

Postfix

Postfixは、電子メールサーバソフトウェアで、 メールを配送するシステムMTAの一種です。

Amazon EC2

Amazon EC2は“Amazon Elastic Compute Cloud”の略称です。Amazon Web Services(AWS)の一部であり、仮想化されたWebサーバーのコンピュータリソースをレンタルできるサービスです。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

0グッド

0クリップ

投稿2020/03/07 07:02

##やりたいこと
Amazon Web Service の EC2 で postfix を立ち上げてメールサーバにしたい。
##やったこと
Amazon Linux2 + Postfix + Dovecot + Let's EncryptでSSLメールサーバを構築
を参考にして postfix, dovecot を設定しました。
(Let's Encryptの証明書は、ウェブサーバを立ち上げた時に取得したので、それを流用しました。)
##確かめたこと
###ポートの開放
EC2のセキュリティグループで、インバウンドのSMTP, SMTPS, IMAP, IMAPS, POP3Sを開放しました。
他サーバからのtelnetで

$ telnet linming.example.net 25 Trying 11.222.33.44... Connected to linming.example.net. Escape character is '^]'. Connection closed by foreign host.

と表示されたので、ポートの開放忘れはないと思います。
###netstat
netstat -a で、SMTP, SMTPSがLISTENされているのを確認しました。
###ローカル配送
EC2内から、

ps aux | mail linming

と打つと、/home/linming/Maildir/{new or cur}
にメールがメールボックスに入っていました。
###クライアントのメールソフトにアカウント追加
MacBookのメールアプリ→アカウント追加にて、

メールアドレス : linming@linming.example.net パスワード : {SSH 接続する時のパスワード} アカウントの種類 : IMAP 受信用メールサーバ : linming.example.net 送信用メールサーバ : linming.example.net

と設定しました。
「アカウントまたはパスワードを確認できません。」とエラーメッセージが出ます。
そのまま「作成」をクリックすると、なぜかIMAPでサーバのメールボックスに入っていたメールがMacのメールアプリで受信できました。
###メールアプリからメールを送信
メールアプリで、
送信者 linming@linming.example.net
受信者 linming@gmail.com
でメール送信すると、下記のエラーが表示されます。

linming.example.netを使ってメッセージを送信できません SSLエラーが起きたため、サーバへのセキュリティ保護された接続を確認できません。

上記エラーダイアログのSMTPサーバリストには、

linming.example.net (オフライン)

と表示されます。
###メールログ
メールログは以下の通りです。

Mar 7 15:49:55 linming postfix/smtpd[16483]: connect from FL1-221-170-106-13.aic.mesh.ad.jp[221.170.106.13] Mar 7 15:49:55 linming postfix/smtpd[16483]: Anonymous TLS connection established from fl1-221-170-106-13.aic.mesh.ad.jp[221.170.106.13]: TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits) Mar 7 15:49:55 linming postfix/smtpd[16483]: warning: SASL: Connect to private/auth failed: No such file or directory Mar 7 15:49:55 linming postfix/smtpd[16483]: fatal: no SASL authentication mechanisms Mar 7 15:49:56 linming postfix/master[16475]: warning: process /usr/libexec/postfix/smtpd pid 16483 exit status 1 Mar 7 15:49:56 linming postfix/master[16475]: warning: /usr/libexec/postfix/smtpd: bad command startup -- throttling

これをみると、private/auth failed: No such file or directory と表示されていますが、/etc/postfix/main.cfには

smtpd_tls_cert_file = /etc/letsencrypt/live/linming.example.net/fullchain.pem smtpd_tls_key_file = /etc/letsencrypt/live/linming.example.net/privkey.pem

と書きました。
該当ファイルがあるか ls -l で確認すると、上記2ファイルのエイリアスが設定されていました。
##自分なりに考えたこと
main.cf なりどこかで、まだ指定していない・書き加えいないファイルがあるのでしょうか。

知見のある方、どうぞよろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

メールログを見ると、TLS での接続はできているように見えます。

これをみると、private/auth failed: No such file or directory と表示されていますが、

postfix から SMTP-Auth で /var/spool/postfix/private/auth (ソケットファイル)を経由して dovecot に認証を依頼するのですが、そのソケットファイルが無いということです。
dovecot は起動していますでしょうか?

投稿2020/03/07 08:09

TaichiYanagiya

総合スコア12173

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

lin.ming

2020/03/07 08:23

はい、起動していると思います。 $ sudo systemctl status dovecot ● dovecot.service - Dovecot IMAP/POP3 email server Loaded: loaded (/usr/lib/systemd/system/dovecot.service; enabled; vendor preset: disabled) Active: active (running) since 土 2020-03-07 10:14:49 JST; 7h ago Docs: man:dovecot(1) http://wiki2.dovecot.org/ Process: 14753 ExecStop=/usr/bin/doveadm stop (code=exited, status=0/SUCCESS) Process: 14763 ExecStart=/usr/sbin/dovecot (code=exited, status=0/SUCCESS) Process: 14759 ExecStartPre=/usr/libexec/dovecot/prestartscript (code=exited, status=0/SUCCESS) Main PID: 14764 (dovecot)
TaichiYanagiya

2020/03/07 08:26

/var/spool/postfix/private/auth は存在しますか? 存在しなければ dovecot の設定を確認ください。
lin.ming

2020/03/07 08:46

10-master.cf の unix_listener を以下のように書き換えたら、 service auth { unix_listener /var/spool/postfix/private/auth { mode = 0666 user = postfix group = postfix } 配送してくれるようになりました。 ありがとうございました。 しかしながら、AWS にメール送信許可リクエスト送ったら、「SES 使ってね。ケースクローズド」と言われ、メールキューには入るものの、gmail.comicloud.com も相手のメールサーバが lost connection になってしまいます。 SES 使え、てことですかね。(shy
TaichiYanagiya

2020/03/07 09:11

以前は、大量に送るのでなければ直接送信できたと思うのですが、今はダメになったのでしょうか。
lin.ming

2020/03/07 09:23

今はダメっぽいです。リクエスト入れたら難癖付けられて「SES使ってね」と。これで2回目です。 まあ、今度のサーバはメール送信者が限られているので、SES使おうかと思っています。
Eggpan

2020/03/07 09:41

横から失礼します。 2020/2/19時点では外部アドレスに配送するための許可は取れました。 リクエストをおくったらEC2でメールを使う場合のユースケースを詳しく、あとスパム対策をどうするか、というメールが送られてきたので、個人メールなどを送受信したい、スパム対策についてはポート25からのリレーはせず、587か465でSMTP認証時のみリレーする、といった内容をgoogle翻訳でおくったら1日ほどで許可がおりました。ご参考まで。
lin.ming

2020/03/07 10:20

貴重な情報ありがとうございます。 今でも許可取れるんですね(汗) 私のケースでは、転送メールを使うので、オープンリレーではないですが、ちょっと許可は取れなさそうです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問