CodeIgniterのEmail

Emailクラスの修正

サーバ環境に依存すると思うのだけれども自分の環境でEmailがあるUTF-8の50バイト目ぐらいでcrlfが入るため自分の環境用に修正した。
少なくともBecky!では表示がおかしくなった。

<?php
class MY_Email extends CI_Email
{
    // 本来は\nが入っていると思います
    var $crlf = ''
}

mb_encode_mimeheaderについて

あと、おまけでmb_encode_mimeheaderについても改行させたくないときは第4引数をlength0にすれば良い。
ただしメールヘッダの仕様上改行しないようにして良いものかは不明なので自身で調べていただきたいです。

<?php
mb_encode_mimeheader('ほげほげ', 'ISO-2022-JP', 'B', '');

CodeIgniterのVersionは1.7.2

追記

RFCにそいましょう

その後「RFC メール 改行」で調べてみたところRFC 2822というものが見つかった。
どうやら78文字で改行しなさいと書いてあります。

「2.1.1. Line Length Limits」のところ。

でもこれって1バイトでの78文字なのだろうか?マルチバイトでの78文字なのだろうか?
あと件名(Subject)も対象?

和訳を見ると本文(body)っぽい。

それを踏まえてCodeIgniterのEmailをどうするか

自分で書きなおしてみます。
phpのmb_strlenを使用していないところが若干気になっている。

広告を非表示にする