Ethnaを2.3.2へバージョンアップしてみたところ、以下のヘッダーらしき行が本文に表示されるようになってしまいました。
同じことで悩んでいる人もいた。
ITT-WEB - Ethna_MailSenderでMailヘッダが分割される。
ソースを追っても良くわからず、IRCで投げても良くわからず、qmailのせいなんじゃないかという結論に達しました。
なんだか、headerが複数行にまたがる場合は、改行コードがLFじゃないとおかしくなるとかならないとか。
通常のメールだとEthnaの場合3行分出力されるんですが、これを2行にしたらちゃんと送信できた。
ん~怪しい。
そんな制限無いはずだし。
改行コードはCRLFでって
Ethna_MailSenderクラスの206行目当たりを以下の通りに
なんとなくWindowsサーバーだと変なことになりそうなので、以下のように変更しても良いかも。
qmail以外だとちゃんと動くのかいつか検証したいです。
2.3.1まではまったく同じコードでうまく動いていたんだけどね・・・。
Content-Type: text/plain; charset=iso-2022-jp
同じことで悩んでいる人もいた。
ITT-WEB - Ethna_MailSenderでMailヘッダが分割される。
ソースを追っても良くわからず、IRCで投げても良くわからず、qmailのせいなんじゃないかという結論に達しました。
なんだか、headerが複数行にまたがる場合は、改行コードがLFじゃないとおかしくなるとかならないとか。
通常のメールだとEthnaの場合3行分出力されるんですが、これを2行にしたらちゃんと送信できた。
ん~怪しい。
そんな制限無いはずだし。
改行コードはCRLFでって
Ethna_MailSenderクラスの206行目当たりを以下の通りに
-$header_line = str_replace("\n", "\r\n", $header_line);
+//$header_line = str_replace("\n", "\r\n", $header_line);これで一先ずちゃんとメールが送られるようになったのですが、これは強引な策らしいです。(IRCの皆様談)なんとなくWindowsサーバーだと変なことになりそうなので、以下のように変更しても良いかも。
// 改行コードを CRLF に
/* qmailのバグ対応
if (strtoupper(substr(PHP_OS, 0, 3)) == 'WIN') {
$body = str_replace("\n", "\r\n", $body);
}
$header_line = str_replace("\n", "\r\n", $header_line);
*/
if (strtoupper(substr(PHP_OS, 0, 3)) == 'WIN') {
$body = str_replace("\n", "\r\n", $body);
$header_line = str_replace("\n", "\r\n", $header_line);
}ま、Linuxサーバで動かしていれば一緒のことだけど。qmail以外だとちゃんと動くのかいつか検証したいです。
2.3.1まではまったく同じコードでうまく動いていたんだけどね・・・。
コメント