Go to Top

メールサーバーログから受信拒否されているか判断する

Pocket

【この記事を読むのに必要な時間は約 4 分です】

予約したカスタマーに対して予約確認メールを配信するシステムを運用していて必ず発生するのが、「予約したのに予約完了メールが届いてない!」という声です。

さらに悪いケースでは、予約後に受付側の都合で予約内容の変更を知らせるメールを送ったが「届いてない!聞いてない」となると一気に温度感が上がりクレームにつながります。

本当にメールが届いていないのか、なぜ届かなかったのかを確認するにはメールサーバーのログを確認するよりありません。

「パソコンからのなりすましメールを受信拒否」や「ドメイン指定拒否している場合のログ(Postfixの場合)

system.maillog.yyyyMMdd.gz:Jun 29 22:42:37 postfix/smtp[999999]: XXXXXXXXX: to=<******@docomo.ne.jp>, rela
y=localhost[127.0.0.1]:10025, delay=0.16, delays=0.02/0/0.04/0.1, dsn=2.0.0, status=sent (250 2.0.0 Ok: queued as 999999)

system.maillog.yyyyMMdd.gz:Jun 29 22:42:37 postfix/smtp[999999]: XXXXXXXXX: to=<******@docomo.ne.jp>, rela
y=mfsmax.docomo.ne.jp[203.138.181.240]:25, delay=0.16, delays=0.11/0/0.02/0.03, dsn=5.0.0, status=bounced (host mfsmax.docomo.ne.jp[203.138.181.2
40] said: 550 Unknown user ******@docomo.ne.jp (in reply to end of DATA command)

ここで見るべきは(in reply to end of DATA command)の部分です。上部分が正常に送信できている(250 2.0.0 Ok)ことを表しており、受信側で受信を拒否していることが読み取れます。

「said: 550 Unknown user」とはなんだ、宛先が存在しないのかと思いますがキャリア側(この場合ドコモ)からは宛先が存在していても、受信拒否設定がされているとこのようなレスポンスが返ってきます。

もし本当に宛先が存在しない場合は、以下のように(in reply to end of DATA command)の部分が変わります。

system.maillog.yyyyMMdd.gz:Jun 29 22:42:37 postfix/smtp[999999]: XXXXXXXXX: to=<******@docomo.ne.jp>, rela
y=mfsmax.docomo.ne.jp[203.138.181.240]:25, delay=0.16, delays=0.11/0/0.02/0.03, dsn=5.0.0, status=bounced (host mfsmax.docomo.ne.jp[203.138.181.2
40] said: 550 Unknown user ******@docomo.ne.jp (in reply to RCPT TO command)

(in reply to RCPT TO command)となっていると、SMTPのRCPT TOコマンドでエラーが発生したことになり、本当に宛先が存在しないと分かります。

受信拒否されている場合に何ができるか?

システム上メールの配信ができないと分かった場合、カスタマーに受信拒否設定を解除してもらうよりありません。

カスタマーは自分が受信拒否設定をしていることを認識していないケースもあり得ます(広告など不要なメールを見て脊髄反射的に拒否設定したなど)。