お世話になります。
phpでメール送信処理を書いています。
pearのmailライブラリを使用しています。
メールのエンコードをutf-8にして送信しようと考えています。
環境
OS・・・windows2012R2
Apache・・・2.4
PHP・・・5.6
SMTPサーバー・・・melon
下記がメール送信処理です(一部抜粋)。
php
1setlocale(LC_ALL, 'ja_JP.UTF-8'); 2 3mb_language("ja"); 4mb_internal_encoding("UTF-8"); 5 6$to = 'test1@gmail.com'; 7$from = 'test2@gmail.com'; 8$subject = '件名'; 9$text = '本文'; 10 11$mime = new Mail_Mime(); 12 13$mime->setTxtBody($text); 14 15$setbody['head_charset'] = 'UTF-8'; 16$setbody['text_charset'] = 'UTF-8'; 17 18$headers['To'] = $to; 19$headers['From'] = $from; 20$headers['Subject'] = $subject; 21 22 23$body = $mime->get($setbody); 24$headers = $mime->headers($headers); 25 26$smtp = Mail::factory("smtp", array("host"=>"localhost", "port" => 25)); 27 28 29$smtp->send($to, $headers, $body); 30
質問
質問は2つあります。
1. 「件名」をmb_encode_mimeheaderでエンコードせずメール送信しても、受信したメールは正常に表示されます。これは送信時メールサーバー側で変換してくれているからでしょうか。
2. 「件名」をmb_encode_mimeheaderでエンコードした場合、コマンド上でメール処理を走らせると文字化けせずに表示されますが、Apacheサーバーからメール処理を行った場合文字化けしてしまいます。どのような原因が考えられますでしょうか
php
1mb_encode_mimeheader('件名');
よろしくお願いいたします。
あなたの回答
tips
プレビュー