投稿者 |
投稿 |
|
#1 2009 年 5 月 7 日(木) 17:33
|
会員
登録者: 5 月 2009
返信数: 4
|
初めまして
現在、正常に動作している環境を下記に入替を行いました。
httpd-2.0.51-25 → 2.2.6-10 php4-4.3.11-8 → 5.2.4-18 sendmail-8.13.1-3 → postfix-2.4.5-10
メール送信でどうしても件名が下記のようになります
=?ISO-2022-JP?B?GyhJJVUlISUkJRskQnYnGyhJQCUmJRsoQj8bJEJ6IxsoSTwlSRsoQgo=?=
メールのソースを見ると下記のように途中で改行されています。
Subject: =?ISO-2022-JP?B?PT9JU08tMjAyMi1KUD9CP0d5aEpK?= =?ISO-2022-JP?B?VlVsSVNVa0pSc2tRblluR3loSlFDVW1KUnNvUWo4YkpFSjZJeHNvU1R3?= =?ISO-2022-JP?B?bFNSc29RZ289Pz0=?=
正常に動作している環境は改行されずに1行です。
最後の =?= が ?= になっているのが原因だと思いまが、色々調べましたが回避方法が分かりません。
--------------------------------
$txtSubject = "=?ISO-2022-JP?B?" . base64_encode(mb_convert_encoding("ファイルダウンロード\n","JIS","SJIS")) . "?=";
省略
mb_send_mail($UserMail[0], $txtSubject, $txtMailMsg, gcMailFrom);
|
|
#2 2009 年 5 月 8 日(金) 10:06
|
会員
登録者: 10 2007
返信数: 71
|
PHP4からPHP5に移行されたということですので、php.iniでの設定内容が変わったということはありませんか?。マルチバイトの設定が変わるとmb_send_mail()での挙動が(たしか)変わったと思います。 php.iniでmbstring.languageの設定がJapanese等に指定されていると、mb_send_mail()での件名と本文は自動的にエンコードされます。ですので、直接件名を書く mb_send_mail($UserMail[0], "ファイルダウンロード\n", $txtMailMsg, gcMailFrom); という方法も試されてみてはいかがでしょうか?。 参考: mb_send_mail()
|
|
#3 2009 年 5 月 8 日(金) 11:56
|
会員
登録者: 5 月 2009
返信数: 4
|
ご回答ありがとうございます。
直接件名を書く方法で解決しましたが、複数のソースを変更する必要があります。
他の方法がありましたらお願いいたします。
|
|
#4 2009 年 5 月 8 日(金) 13:23
|
会員
登録者: 10 2007
返信数: 71
|
PHP 5.2.8 (Windows Binary CLI)でちょっと試してみましたが、残念ながら今のところmb_send_mail()を mail()関数にそのまま置き換える方法ぐらいしかみつかりませんでした。 mb_language()でどう設定してもmb_send_mail()では自動的に何かしらエンコードされてしまうみたいなので、php.iniを変更してもダメかな?と思っています・・・。
|