siglite / qdmail

Quick and Detailed mail sending library for PHP
MIT License
0 stars 0 forks source link

Using wordwrap() instead of chunk_split() in QdSimpleMail->mime_string() #5

Open siglite opened 5 years ago

siglite commented 5 years ago

4 関連。

$subject が ASCII のみであれば MIME エンコーディングを行わず、75文字毎に\r\n(space) で区切られる。

if( empty($subject) || ( 0 === preg_match( '/[^\w\s0-9\.]/' , $subject ) ) ){
    return trim(chunk_split($subject, 75, "\r\n "));
}

ただし、chunk_split() は Base64 を念頭に設計されているため、75文字目が単語の途中であっても改行してしまう。英文を扱うのであれば wordwrap() が適切と思われる。

siglite commented 5 years ago

\r\n の代わりに $this->LFC . ' ' を使うべきか検討すること。 (おそらく使うべき)

siglite commented 5 years ago

処理の順序が逆かもしれない。

trim(chunk_split($subject)) は長い文字列を分割してから trim する。 trim してから分割すると少し効率的になる。