【php】 mb_send_mail()でメールが届かない
問題
phpのmb_send_mail関数で送ったメールが届かない。
答え
送信先のメールサーバなどのセキュリティ設定によっては、以下のようなことが発生する。
- ・Fromに存在しないドメインを指定する。
- → スパムメールとして認識される。
- ・Return-PathとFromの不一致。
- → なりすましメールと認識される。
以下のように対策をすると改善する可能性がある。
- 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);
自分宛には届くのに、相手にメールが届かないといった事態に遭遇したときは、上記をお試しください。
コメント