(70) PHP8.0でメールヘッダが表示されるようになったが?

投稿者: | 2021年3月11日

388 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);

(70) PHP8.0でメールヘッダが表示されるようになったが?」への2件のフィードバック

  1. Hisatomi Kenji

    初めまして。
    すみません。
    mb_send_mailという関数を使用しているのですが、ヘッダーの一部が憑依されてしまい困っています。
    解決されておりましたら、追記をお願いしたいと思っています。
    宜しくお願い致します。

    返信
    1. user 投稿作成者

      コメントをいただき、そんなこともあったと思い出して試してみました。
      PHP ver.8.0.17では、本投稿で「問題発生」とした現象が発生しなくなっていました。

      返信

コメントを残す

メールアドレスが公開されることはありません。


日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)