■ユーザーズフォーラム リニューアルのお知らせ
新規投稿は新ユーザーズフォーラムにお願いします。

メールプラグインの自動通知メール本文に余計なヘッダが表示される

bluem > メールプラグインの自動通知メール本文に余計なヘッダが表示される @ 2010/9/30 0:58
メールプラグインの自動通知メール本文冒頭に、ヘッダの一部が露出してしまう現象が過去のバージョンから確認されています。

---メール本文引用ここから---
X-Mailer: CakePHP Email Component
Content-Type: text/plain; charset=ISO-2022-JP
Content-Transfer-Encoding: 7bit


                                2010/09/29 20:05
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
        ◆◇ お問合せを受付けました ◇◆
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

 ########## へのお問い合わせを受け付けました。
...
---引用ここまで---

メールプラグイン基本設定のオプションではsmtpホストを利用しています。
ここのトピック同様、MTAに依存する問題のようで、SuSE LinuxとQmailベースのアプライアンスサーバで上記症状が出ましたが、DeepMailという非オープン系の独自MTAではこの症状は発現しませんでした。

当方の場合、さらにSubjectのmimeエンコードの際、74文字超で折り畳みとなる場合に必ず本症状が発生したため、ヘッダの改行コードに着目し、$__header配列のimplode()結合文字列を\r\nから\nに変更したところ、問題は解消されいずれのMTAでも症状が出なくなりました。


環境依存の事象のようなので、類似の症状でお困りの方への参考になれば幸いです。

ryuring > Re: メールプラグインの自動通知メール本文に余計なヘッダが表示される @ 2010/9/30 1:10
こんばんは。情報提供ありがとうございます。

実は、この件に関してだいぶ前のバージョンで解決していたはずです。
もしかしたら、メールプラグイン内に、EmailExコンポーネントが残っていないでしょうか?
実は、EmailExコンポーネントは、/baser/controllers/components/email_ex.php に移動しました。

メールプラグイン内のEmailExコンポーネントを削除すると解消するかと思います。
一度確認して頂けないでしょうか?

Twitter:@ryuring
baserCMS総合サービスサイト ビーコミ

bluem > Re: メールプラグインの自動通知メール本文に余計なヘッダが表示される @ 2010/9/30 1:34
使用環境は以下のとおりです。新規インストールなので /baser/controllers/components/email_ex.php のみ存在し、他にはありません。

■ BaserCMSのバージョン: 1.6.0新規インストール
■ レンタルサーバー名:自社サーバ
■ スマートURLの利用:ON
■ 設置フォルダ:サブフォルダ
■ 利用しているデータベース:SQLite
■ OSの種類:RedHat EL 4.6
■ PHPのバージョン:5.1.6
ryuring > Re: メールプラグインの自動通知メール本文に余計なヘッダが表示される @ 2010/9/30 2:00
> bluem さん

そうだったんですね。失礼しました。

もしよろしければ、修正箇所を具体的にご教授頂けますでしょうか?

できれば、近日中にリリースする1.6.3 に組み込ませて頂きたいです。

よろしくお願いします

Twitter:@ryuring
baserCMS総合サービスサイト ビーコミ

bluem > Re: メールプラグインの自動通知メール本文に余計なヘッダが表示される @ 2010/10/1 9:41
これもCakeコアであるEmailComponent(/cake/libs/controller/components/email.php)の734行目
$header = implode("\r\n", $this->__header);


$header = implode("\n", $this->__header);

に修正しました。
但しこれは対症療法に過ぎず、RFCに則ってないのでよい方法ではありません。

実は、/baser/controllers/components/email_ex.phpの186行目
$subject = mb_encode_mimeheader($subject,$this->charset,'B', "\n");


$subject = mb_encode_mimeheader($subject,$this->charset,'B', "\r\n");

に修正するだけでも問題は解消しました。
恐らく使用しているMTAが、ヘッダの改行コード解釈に厳しいのでしょう。

Cake標準のEmailComponentでは折り畳み改行コードがCRLFになっていますね。

EmailExで改行コードをLFにしているのは、多分RFCに則ってない一部のMUAにおける文字化け対策だと思いますが、これはLFを許容してくれるその他のMUAの寛大さを当てにしているので、個人的にはCRLFをデフォルトで、LFはイレギュラーとするのがベターな気がします。
どこかの記事ではWordPressもLFをデフォルトにしているというのを見かけましたが、私のケースのようにMTA側に依存する場合もあるみたいなので、どちらを標準にするかは開発者の設計思想に委ねられるのでしょうね。


管理画面で折り畳み改行コードを設定できたりすると他のCMSと差別化できておいしいかも。。。
ryuring > Re: メールプラグインの自動通知メール本文に余計なヘッダが表示される @ 2010/10/1 12:25
bluem さん、情報提供ありがとうございます。

取り急ぎ、今後の課題としてチケットをきりました。

http://project.e-catchup.jp/issues/1065

Twitter:@ryuring
baserCMS総合サービスサイト ビーコミ

ryuring > Re: メールプラグインの自動通知メール本文に余計なヘッダが表示される @ 2010/10/1 13:12
なんとか本日リリースの1.6.5入れ込む事にしました。
取り急ぎ、app内のbootstrapで対処する事としました。
具体的な対処方法は次のページよりご確認ください。
http://project.e-catchup.jp/issues/1065

bluem さんありがとうございました。

Twitter:@ryuring
baserCMS総合サービスサイト ビーコミ

ログイン
ユーザー名:
パスワード:


  新規登録 / パスワード紛失

検索

facebook
フォーラムで悩みが解決した場合など、よかったら「いいね!」をポチっとクリックしてください!質問の回答者や開発者の励みになります

フォーラムガイド


関連リンク

オンライン状況
20 人のユーザが現在オンラインです。 (19 人のユーザが フォーラム を参照しています。)

登録ユーザ: 0
ゲスト: 20