解決方法
特定のメールアドレスにメールが届かないトラブルに直面した場合、以下の解決方法があります。
Return-Pathの設定を確認する
メールが正しく届かない場合、Return-Pathが設定されていない可能性があります。Return-Pathは受信拒否される原因となるため、適切に設定する必要があります。
mail関数を使用する場合の対処法
mail関数を使用してメールを送信する場合は、以下の形式になります。
mail(宛先,件名,メッセージ,ヘッダ)
mb_send_mail関数を使用する場合
マルチバイトに対応し、日本語での送信も可能なmb_send_mail関数を使用する場合は、以下のポイントに注意します
そのポイントは、-f オプション エンベローブ フロム アドレス設定オプション 入れるとよいです。
$returnMail = '送信元のメールアドレス'
//登録完了のメールを送信
//メールの宛先
$mailTo = $mail;
//Return-Pathに指定するメールアドレス
$returnMail = 'XXXXXXX@gmail.com';
$name = "〇▼◆会社";
$mail = 'XXXXXX@gmail.com';
$subject = "ご注文内容に関してのお知らせ";
$body = <<< EOM
$kaisha
$busyo
$tantou 様
mb_language("Japanese");
mb_internal_encoding("UTF-8");
//Fromヘッダーを作成
$header = 'From: ' . mb_encode_mimeheader($name). ' <' . $mail. '>';
$header .="\r\n";
$header .= 'Return-Path: ' . mb_encode_mimeheader($name). ' <' . $mail. '>';
$header .="\r\n";
$header .= "Bcc: xxxxxx@gmail.com";
if (mb_send_mail($mailTo, $subject, $body, $header, '-f'. $returnMail))
{
//セッション変数を全て解除
$_SESSION = array();
//クッキーの削除
if (isset($_COOKIE["PHPSESSID"]))
{
setcookie("PHPSESSID", '', time() - 1800, '/');
}
//セッションを破棄する
session_destroy();
$message = "メールをお送りしました。ご確認ください。";
} else
{
$errors['mail_error'] = "メールの送信に失敗しました。";
}
コメント