SOFTELメモ

Softel Inc.

【php】 mb_send_mail()でメールが届かない

問題

phpのmb_send_mail関数で送ったメールが届かない。

php-logo

答え

送信先のメールサーバなどのセキュリティ設定によっては、以下のようなことが発生する。

・Fromに存在しないドメインを指定する。
 → スパムメールとして認識される。
・Return-PathとFromの不一致。
 → なりすましメールと認識される。

以下のように対策をすると改善する可能性がある。

サンプルコード

$to = '送信先@example.com';
$title = '件名';
$message = '本文';
$header = 'From: 送信元@example.jp';
mb_send_mail($to, $title, $message, $header, '-f' . '送信元@example.jp');

もしくは

$to = '送信先@example.com';
$title = '件名';
$message = '本文';
$header = 'From: 送信元@example.jp' . "\r\n";
$header .= 'Return-Path: 送信元@example.jp';
mb_send_mail($to, $title, $message, $header);

自分宛には届くのに、相手にメールが届かないといった事態に遭遇したときは、上記をお試しください。

関連するメモ

コメント