[ 新規に投稿する ]

引用中の空行が削除されるNo.01793
candide さん 17/08/03 14:31 [ コメントを投稿する ]
  Content-Typeヘッダが「delsp=yes」である受信メールについて、
引用の行頭が「> 」の場合に、
デコードの際、引用中の空行が削除されてしまうようです。

これは仕様でしょうか?
削除を防ぐ方法があればご教示ください。

以下の環境で確認しました。
Windows 7 Professional SP1 (64bit)
秀丸メール 6.70 (HmRegIni.dll 2.07)


------------------------------------------------------------
例: デコードしていないログ
Content-Type: text/plain; charset=iso-2022-jp; format=flowed; delsp=yes

> こんにちは。

> よろしくお願いします。
------------------------------------------------------------

------------------------------------------------------------
例: デコードしたメール
Content-Type: text/plain; charset=iso-2022-jp; format=flowed; delsp=yes

> こんにちは。
> よろしくお願いします。
------------------------------------------------------------
[ ]
RE:01793 引用中の空行が削除されるNo.01796
秀まるお2 さん 17/08/03 15:25 [ コメントを投稿する ]
   「format=flowed; delsp=yes」の場合、「半角空白+改行」があれば、それを
削除する、というのが基本のルールなんですが、引用行の場合は例外処理が働く
ようです。

 で、今回のケースですが、「こんにちは」の次の「> 」のみの行について、
delsp=yesの処理が実行されて、結果、その行が削除されてるようす。これは意
図してそういう処理をしてるように思います。

 今ちょっと、Thunderbirdで同じメールをインポートしてみたら、そっちの方
だと「> 」のみの行が削除されることは無いようでした。

 何かルールが変わったのやら?

 さらにもうちょっとネット検索してみたら、Thunderbird 45.0以降から、この
「format=flowed; delsp=yes」が付くようになったって話のようです。

    http://www.excite.co.jp/News/it_g/20160406/Slashdot_16_04_06_0619225.html

 元々はこの「fomat=flowed」は英文のメールのために考えられた規格だったは
ずで、これが日本語のメールに使われてること自体がちょっとおかしいんじゃな
いかって気がするのですけど、いったいThunderbirdさんはどうしてしまったの
やら?

 とりあえず、Thunderbirdさんが発信するようになった前提で、こちらでいく
つかサンプルメールを作ってテストしてみて作戦を考えてみます。

----------------------------------------------------------------
 Thunderbirdの場合だと、例えば

> こんにちは。
> あ 
> よろしくお願いします。

 の場合に、それが

> こんにちは。
> あよろしくお願いします。

 のように変換されてしまうようで、それはそれでおかしいと思うのですけど
も・・・。なんとなくThunderbirdさん、日本語のことを知らない開発者がやら
かしてくれたんじゃないかって気がしますけども・・・。もっと調べてみます。
[ ]
RE:01796 引用中の空行が削除されるNo.01797
秀まるお2 さん 17/08/03 17:24 [ コメントを投稿する ]
   ThunderbirdのVersion 52.2.1(今日時点での最新版)でテストしてみたんで
すが、Thunderbirdさんの生成するメールでは、「delsp=yes」は付かないようで
す。たぶん、delsp=yesを付けると問題があるってことで、付けないように仕様
変更されたんじゃないかと思います。

 今ちょっとテストしてみた限りでは、Thunderbirdから発信した日本語メール
は、秀丸メールで受信すると、

Content-Type: text/plain; charset=iso-2022-jp (original=utf-8); format=flowed
Content-Transfer-Encoding: 8bit
Content-Language: en-US

 のようになってまして、delsp=yesが無いために、特に問題にはならないよう
です。

 もしも「delsp=yes」を付加するメールクライアントがあれば、そのメールの
X-Mailer:ヘッダか、またはUser-Agent:ヘッダの内容など教えて欲しいです。


---------------------------------------------------------------------

 Thunderbirdに、無理矢理「format=flowed; delsp=yes」のメールを
インポートするテストをしてみたんですが、この場合は秀丸メールと同じように、
空行が除去される例が確認出来ました。

 例えば、

-----------------------------
こんにちは。
 
よろしくお願いします。
-----------------------------

 のように、2行目に半角空白1つだけの空行が入ってるサンプルメール
(delsp=yesの指定もあり)をインポートして、それに対して返信すると、画面
上では

|こんにちは。
| 
|よろしくお願いします。

 のように出てきますが、それをThunderbird自身で受信すると、

|こんにちは。
| よろしくお願いします。

 のように崩れます。ということでThunderbirdも秀丸メールと同様におかしく
なるというか、そもそも的に日本語のメールでdelsp=yesを使ったらこういう結
果になってしまうのが仕方が無い(それがdelsp=yesの正しい仕様になる)と思
います。

 しいて、delsp=yesの本来の仕様を破って、例えば引用行の中に限ってはdelsp
の処理はしないようにって例外処理を入れて対応する作戦はあると思うし、そう
してまずいことは無いような気はします。もしもこういう、本来あってはいけな
いはずのメールが世の中に出回ってるようでしたら、そういう対応をしてもいい
かなぁと思います。
[ ]
RE:01797 引用中の空行が削除されるNo.01798
candide さん 17/08/03 17:51 [ コメントを投稿する ]
  さっそくご調査いただき、ありがとうございます。

Mozilla Thunderbirdでは、ISO-2022-JPで送信したメールに限り、
「delsp=yes」になるらしく、UTF-8だと付きません。

もともと、Thunderbirdから送信されたメールの一部だけ、
引用部分がおかしいことから問題に気づきました。

Thunderbird側で仕様が変われば問題ないのですが、
今のところはそのままのようです。
[ ]
RE:01798 引用中の空行が削除されるNo.01799
秀まるお2 さん 17/08/03 18:42 [ コメントを投稿する ]
   Thunderbirdで、テキストエンコードディング=日本語iso-2022-jpと指定して
メールを送るテストをしてみたんですが、なぜか、どうやってもutf-8になって
しまいます。

 あと、半角空白のみ入れた空行を作っても、半角空白は全部除去されて送信さ
れてしまったりします。

----------------------------------------------------
 っとテストしてて、別の作戦でやってみたら再現できました。

 秀丸メールからThunderbirdにメールを送って、それに対して返信するって作
戦にしたら、「delsp=yes」がついて、おかしくなりました。その返信メールを
Thunderbirdで受信しても、引用行がおかしくなります。

 例えば

あああ
 
いいい

 が、返信メールを作成する画面上では

|あああ
| 
|いいい

 と出ますが、実際送信して受信すると、

|あああ
| いいい

 となるようです。Thunderbirdさんバグってますね。

 秀丸メールでは、とりあえず引用行について例外的な処理を入れるって方向で、
果たして問題が無いどうか仕様を検討&一回トライしてみます。

 僕の手元のメールから「delsp=yes」で検索したら、Thunderbirdからのメール
が大量にヒットしました。他にGoogleからのメールも付いてるようでした。
[ ]
RE:01799 引用中の空行が削除されるNo.01803
秀まるお2 さん 17/08/04 16:01 [ コメントを投稿する ]
   先ほどアップロードしたV6.73にて対応したのですけども、一度おかしくなっ
たメールを修復するためには、「編集 - 受信解析のやり直し」をしていただく
必要があります。

 それで出てきたメールの方だと正しくなってるはずということで、よろしくお
願いします。
[ ]
RE:01803 引用中の空行が削除されるNo.01806
candide さん 17/08/05 10:05 [ コメントを投稿する ]
  さっそくのご対応、ありがとうございます。

受信解析のやり直しで、引用中の空行が削除されないことを確認しました。
[ ]

[ 新規に投稿する ]