先日、下記のサーバーエラーが出て困ったときの対応方法です。
実行環境:
- CentOS Stream release 8
- Apache/2.4.37
- PHP 7.4.16
エラー詳細:
AH01071: Got error 'PHP message: PHP Warning: mb_send_mail(): Unsupported transfer encoding "7bit " - will be regarded as 8bit
対応方法:
色々確認していたら、メール処理でヘッダーに渡していたpostfixのバージョンがサーバー実機と違うことに気づきました
[example@123-45-678-90]$ postconf | grep mail_version
mail_version = 3.5.9
milter_macro_v = $mail_name $mail_version
上のコマンドで確認したバージョンに修正します。
// 【ユーザー宛】ヘッダーリスト
$headers = [
'MIME-Version' => '1.0',
'Content-Transfer-Encoding' => '7bit',
"Content-Type" => $default_char_set,
"Return-Path" => $from_mail,
"From" => $from,
"CC" => '',
"Sender" => $from,
"Reply-To" => $to_admin,
"Organization" => $display_name,
"X-Sender" => $to_admin,
'X-Mailer' => 'Postfix/3.5.9',
'X-Priority' => '3',
];
上記で mb_send_mail()
のエラーも解消しました。コードはやはり、他からコピーしてくるときは注意ですね。