0
0

sendmailでサーバーと同じドメインのメールアドレスへのメール送信に失敗する場合の対応

Posted at

状況

Webサーバーyukihirog.jpに設置したPHPからsendmailを経由してmail@yukihirog.jpにメール送信すると失敗してしまう。

しかし、mail@anotherdomain.comなど、他のドメインのメールアドレスへのメール送信は成功する。

そのため、サーバーと同じドメインへのメール送信のみが失敗していると考えられる。

また、/var/log/maillogUser unknownが記録されていた。

(以降、yukihirog.jpの部分は自分のドメインに読み替えてください)

原因

メール送信時、設置サーバーと同じドメインの場合は外部を経由せずに自サーバー内で解決されるらしい。

実際のメールサーバーをGメールなどで運用している場合、自サーバー内を探しても配信先が見つからずに失敗、あるいは見つかってもユーザーが利用しているアプリなどに届かないことになる。

sendmailの確認

sendmailが入っているかの確認
which sendmail
# /usr/sbin/sendmail などが出力される
sendmailが起動しているかの確認
service sendmail status
# 起動していれば情報がいろいろ表示される
# Active: active (running) などが書いてあれば起動中

対応

サーバーと同じドメインであっても外部を経由するように設定する。
以下のどちらの方法でも対応できた。

方法A:local-host-namesにドメインを追記する

sendmailの設定を編集
sudo vi /etc/mail/local-host-names
local-host-namesにドメインを追記
# local-host-names - include all aliases for your machine here.
yukihirog.jp
sendmailを再起動
sudo service sendmail restart

方法B:sendmail.mcにドメインを追記する

sendmailの設定を編集
sudo vi /etc/mail/sendmail.mc
以下を追記して保存
define(`MAIL_HUB', `yukihirog.jp.')dnl
define(`LOCAL_RELAY', `yukihirog.jp.')dnl
sendmailを再起動
sudo service sendmail restart

その他の対応方法

サーバーによってはログインして管理画面から設定できるところもあるようだが、自分のサーバーとドメインの契約は該当しなかったので確認できなかった。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0