質問: "Not send mail"; setcookie("inb_err_msg[email]","$val",0,"/"); header("Location: form.html"); exit(); } ``` と、base64にエンコードすることで文字化けせずメールは受信出来るようなったのですが、 本文が(当然ですが)base64でエンコードされたものになっています。 どうにか入力した言語(韓国語)で受け取りたいのですが、どのような記述が必要なのでしょうか。
回答: メールのヘッダーに ``` Content-Transfer-Encoding: base64 ``` と指定します。これにより、メーラーが base64 デコードして画面に表示してくれます。 参考: 日本語メールの仕組み | SendGridブログ `mb_send_mail()` ではメールヘッダを4番目の引数 (`additional_headers`) に指定しますが、 その前に `mb_language("uni")` と書いているのでむしろ自前で base64_encode したり `Content-Transfer-Encoding` 指定する必要はないかもしれません。 もうちょっと広い範囲のプログラムコードや、PHPのバージョン、あとこのコードで実際に受け取ったメールのヘッダ部分を提示してくださるとなんか分かるかもしれません。