PHPのmb_send_mail()で送ったメールが届かない場合に考えられる原因

PHPのmb_send_mail関数で送ったメールが相手に届かない時に考えられる原因をあげてみます。

 

書き方を間違えている

要するに変数の順番は正しいか、どこかでスペルミスをしていないか、という初歩的な問題です。

mb_send_mail($to, $title, $message, $header, '-f' . '送信元@example.jp');

 

  • $to:宛先
  • $subject:件名
  • $message:本文
  • $headers:ヘッダー情報

 

間違っている部分がないか確認してみてください。

 

ドメイン名が間違っている

当然っちゃ当然ですが、Fromに存在しないドメイン名を指定すると送信先のメールサーバーのセキュリティによってはスパム判定されることもあります。ドメイン名にミスがないか確認しましょう。

 

Return-Pathが間違っている

Return-PathはFromと同じ値になっているか確認してください。

間違っているとなりすましメールと判定される可能性があります。

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

 

$headerにいれるFromの送信元とReturn-Pathの送信元が同じになるようにしてください。