1,294 views
1. 問題発生
PHP7.4 から PHP8.0 に変更した。
すると…
メール受信時に、メール本文にメールヘッダの内容が表示されるようになった。
なぜか?
調査中…
後日追記
追記: 2022/06/12
上記の投稿から1年3か月が経過した。
久しぶりに PHP ver.8でメール送信してみることにした。
結果は…
自然治癒
こんな言い方は作ってくださっている方々に対して失礼だが…
ありがたいことに修正してくださったようだ。
因みに今回試した PHPのバージョンは PHP ver.8.0.17 だ。
良かった良かった!
とは言え、いつ再発するかわからないので、以下にテストページを置いておく。
PHP versionが更新される度に、ここからメールを送信して試してみよう。
https://php8.dogrow.net/_test/001_sendmail/
ところで原因は?
こちらのブログで説明してくださっている。
PHP8.0にアップグレードしたらメールヘッダがおかしくなった話
PHPプログラム内で、リターンコードの記述が変わったことが原因とのこと。
有用な情報をありがとうございます。m(_ _)m
でも、PHP ver.8.0.17のソースファイルを見てみたところ…
$ wget https://www.php.net/distributions/php-8.1.7.tar.gz $ tar -zxvf php-8.1.7.tar.gz $ vi ./php-8.1.7/ext/standard/mail.c
上記ブログの指摘個所は変更されていない。
あれっ? 別要因なのか?
fprintf(sendmail, "To: %s\r\n", to); fprintf(sendmail, "Subject: %s\r\n", subject); if (hdr != NULL) { fprintf(sendmail, "%s\r\n", hdr); } fprintf(sendmail, "\r\n%s\r\n", message); ret = pclose(sendmail);
追記: 2025/04/13
現時点では、PHPMailer を使ってメール送信コードを書くと上手く行く。
→ ということは、やっぱり自作コードがいけないのか…
→ ToDo: 後で PHPMailerのソースコードを見て勉強しよう。
use PHPMailer\PHPMailer\PHPMailer; use PHPMailer\PHPMailer\Exception; require '/home/ユーザー名/www/libs/PHPMailer/src/PHPMailer.php'; require '/home/ユーザー名/www/libs/PHPMailer/src/SMTP.php'; require '/home/ユーザー名/www/libs/PHPMailer/src/Exception.php'; $mail = new PHPMailer(true); try { $mail->CharSet = 'UTF-8'; // 日本語対応 $mail->Encoding = 'base64'; // 安全な本文エンコード $mail->isHTML(false); // テキストメール指定 // sendmailを使う // $mail->isSendmail(); // 明示してもOK、省略でも可 $mail->setFrom('your@domain.com', 'あなたの名前'); $mail->addAddress('to@example.com', '受信者の名前'); $mail->addReplyTo('reply@example.com', '返信先の名前'); $mail->Subject = 'テストメール'; $mail->Body = "こんにちは!これはテストメールです。\n返信先も設定済みです。"; $mail->send(); echo "メール送信成功!"; } catch (Exception $e) { echo "メール送信失敗: {$mail->ErrorInfo}"; }
アクセス数(直近7日): ※試験運用中、BOT除外簡易実装済2025-07-11: 0回 2025-07-10: 0回 2025-07-09: 1回 2025-07-08: 0回 2025-07-07: 0回 2025-07-06: 0回 2025-07-05: 0回
初めまして。
すみません。
mb_send_mailという関数を使用しているのですが、ヘッダーの一部が憑依されてしまい困っています。
解決されておりましたら、追記をお願いしたいと思っています。
宜しくお願い致します。
コメントをいただき、そんなこともあったと思い出して試してみました。
PHP ver.8.0.17では、本投稿で「問題発生」とした現象が発生しなくなっていました。