最初に気になったのはフォーラム投稿の要約メールの折り返しでした.
LAB08 -> フォーラム -> 物品発注に関するフォーラム ->
SNCTエクスプローラ(シャフト)
Re: SNCTエクスプローラ(シャフト) 2008年 12月
9日(火曜日) 13:41 - 白井 達也 の投稿
---------------------------------------------------------------------
残念でした 2008年 12月 9日(火曜日) 15:50 -
白井 達也 の投稿
---------------------------------------------------------------------
Re: 残念でした 2008年 12月 9日(火曜日) 16:13 -
白井 達也 の投稿
---------------------------------------------------------------------
=====================================================================
なんとなく折り返しが不自然です.投稿者の名前が行頭に来るように折り返しているわけではなく,日付の途中で折り返されているものもあります.
しかし調べた限りでは要約メールを生成する箇所では自動折り返しを行なっていません.そこで単純にメッセージ機能で実験をして見ました.送信したのは以下の3行.
1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
半角空白で区切ったa)半角数字,b)全角数字,c)半角空白で区切らない半角マイナスの記号の列.受け取ったメールでは,
1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8
9 0 1 2 3 4 5 6
7 8 9 0 1 2 3 4
5 6 7 8 9 0 1 2
3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8
9 0
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
このようにa)半角では40ワード,b) 全角では8ワードで自動改行されています.c) 区切りが無い場合は自動改行されません.とてもバランスが悪い.総文字数でも無いし,ワード数でも無いし,その組み合わせとしても奇妙です.文字コードはISO-2022-JPです.
ユーザにメールを送信するfunction email_to_user()関数(lib/moodlelib.php)では特に改行処理は見当たらず,引数で受け取ったUTF-8のメール本文を
$mail->Body = $textlib->convert($mail->Body, 'utf-8', $mail->CharSet); //Body
設定された電子メールの文字コードに変換して,
$mail->Send();
しているだけのように見えます.Send()の中で行なわれている処理なのでしょうか?