EthnaのMailSenderを使うと変なヘッダーが表示されてしまう

Ethnaを2.3.2へバージョンアップしてみたところ、以下のヘッダーらしき行が本文に表示されるようになってしまいました。

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まではまったく同じコードでうまく動いていたんだけどね・・・。

コメント

アーカイブ

2012

  • 01
  • 02
  • 03
  • 04
  • 05
  • 06
  • 07
  • 08
  • 09
  • 10
  • 11
  • 12

2011

2010

2009

2008

2007

コンタクト

longkey1[at]gmail[dot]com