永原のブログ

PHPからメールが送られない件。(myhostnameのミス)

こんにちは。
株式会社オープンソース・ワークショップの永原です。

久しぶりにPHP からのメールの送信でちょっとハマったので、メモがてら。

--- 現象

  • PHP からメールが送られない。
  • OS はCentOS7
  • MTA はローカルのPostfix
  • telnet でローカルのPostfix に接続してコマンドで送信すると、送れた。

--- 原因

  • /etc/postfix/main.cf のmyhostname が名前解決できていなかった。
  • 名前解決できないというエラーのため、Postfix がメッセージを削除していた。

--- /var/log/maillog の内容

Jan 24 20:14:47 hostname postfix/smtp[2525]: 1B5A52020EF86: to=<xxxx@ドメイン>, relay=none, delay=0.01, delays=0/0/0.01/0, dsn=5.4.4, status=bounced (Host or domain name not found. Name service error for name={myhostnameの内容} type=A: Host found but no data record of requested type)
Jan 24 20:14:47 tk2-245-32064 postfix/qmgr[2292]: 1B5A52020EF86: removed

--- ハマりポイント

  • ログを見る前に、telnet でメール送信して送れたことで、Postfix の設定が問題ないと思い込んでしまったこと。

--- 学んだこと

  • Postfix の設定が間違えていても、telnet 接続では送れてしまうケースがあったことを経験した。
  • ちゃんとログを見ましょう。

以上