前提・実現したいこと
CentOSを使ったさくらVPSのレンタルサーバーでPHPで実装したページから、メール送信の通知機能を実装したいと考えています。
PHPでは、mail()関数にてサーバーからメール送信機能を実装しています。
CentOSのサーバーでは、Postfixにてメール送信機能を実装しているのですが、エラーメッセージが出て上手く実装できません。
環境構築
CentOSは以下の手順で構築しました。
周辺環境
さくらVPS
パケットフィルタ設定(全て許可)
用途 | プロトコル | ポート番号 |
---|---|---|
SSH | TCP | 22 |
Web | TCP | 80/443 |
メール | TCP | 25/110/143/465/587/993/995 |
ドメイン:お名前ドットコム
サーバー環境設定
1.httpdのインストール
Apache httpd 2.4 を CentOS 7 に yum でインストールする手順
2.PHPのインストール
CentOS 7にPHP 7.3をインストールしてApache HTTP Serverと連携させる方法
3.Let's Encryptの設定
CentOS 7 + Apache 2.4 に Let’s Encrypt の証明書を導入する手順
4.Postfixの設定
ここまで行った上で、
commandline
1 2# sendmail bbb@gmail.com 3 4From: aaa@my-domain.com 5To: bbb@gmail.com 6Subject: test 7test 8. 9
メールテストを実行したが、メールを送信することはできなかった。
発生している問題・エラーメッセージ
メール送信ができないので、エラーログを確認
commandline
1 2less /var/log/maillog 3
エラー出力
maillog
1 2Aug 1 12:50:25 os3-380-23359 postfix/qmgr[1072]: 2B8A41F700: from=<root@mail.my-domain.com>, size=339, nrcpt=1 (queue active) 3Aug 1 12:50:55 os3-380-23359 postfix/smtp[8847]: connect to gmail-smtp-in.l.google.com[64.233.188.27]:25: Connection timed out 4Aug 1 12:51:25 os3-380-23359 postfix/smtp[8847]: connect to alt1.gmail-smtp-in.l.google.com[173.194.223.26]:25: Connection timed out 5Aug 1 12:51:55 os3-380-23359 postfix/smtp[8847]: connect to alt2.gmail-smtp-in.l.google.com[209.85.146.27]:25: Connection timed out 6Aug 1 12:52:25 os3-380-23359 postfix/smtp[8847]: connect to alt3.gmail-smtp-in.l.google.com[173.194.209.27]:25: Connection timed out 7Aug 1 12:52:55 os3-380-23359 postfix/smtp[8847]: connect to alt4.gmail-smtp-in.l.google.com[142.250.96.27]:25: Connection timed out 8Aug 1 12:52:55 os3-380-23359 postfix/smtp[8847]: 2B8A41F700: to=<bbb@gmail.com>, relay=none, delay=223, delays=73/0.01/150 9/0, dsn=4.4.1, status=deferred (connect to alt4.gmail-smtp-in.l.google.com[142.250.96.27]:25: Connection timed out) 10
Connection timed outによってメール送信が正常に行われない。
DKIM+SPFにて信頼性を上げる
色々と調べたところ以下の記事を見つけた。
Postfixで自分から自分宛てのメールは送受信できるが、他のメールアドレスには送受信できない
ここの回答にあるように、DKIMとSPFの設定を行った。以下のサイトを参照して設定をした。
CentOSのPostfixで迷惑メール判定されないようDKIMを設定する
DKIMなどの設定を行ったが、それでもメール送信はできなかった。
発生している問題・エラーメッセージ その2
maillog
1 2Aug 1 21:01:25 os3-380-23359 postfix/cleanup[13363]: E4BC91F72B: milter-reject: END-OF-MESSAGE from localhost[127.0.0.1]: 4.7.1 Servi 3ce unavailable - try again later; from=<root@mail.my-domain.com> to=<bbb@gmail.com> 4Aug 1 21:02:25 os3-380-23359 postfix/pickup[13351]: F3D5F1F72B: uid=0 from=<root> 5Aug 1 21:02:26 os3-380-23359 postfix/cleanup[13363]: F3D5F1F72B: message-id=<20200801120225.F3D5F1F72B@mail.my-domain.com> 6Aug 1 21:02:26 os3-380-23359 opendkim[13148]: F3D5F1F72B: signing table references unknown key '20200801._domainkey.my-domain.com' 7
また、Gmail以外のメールに送っても、上手く送信されない。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。