HTMLメールから生成された本文で引用に引No.02346
candide さん 17/10/30 17:25
 
Apple Mailから届いたHTMLメールについて、
text/htmlパートから生成された本文で、
引用部分に引用記号がつかない、という事象が発生しています。

添付ファイルとして扱われたHTMLファイルでは、
引用部分は↓で括られています。

<blockquote type="cite" class=""></blockquote>

Apple Mailが原因なのか、多重引用の複雑さが原因なのか、
なんであれ設定等で回避できるものなのか、不明です。
解決策についてお心当たりなどあれば、
ご教示いただければ幸いです。


いま手元にあるのは、多重引用が含まれるメールで、
最大で17個の引用が入れ子になっており、
一部分だけ引用記号がついていますが、以下のような状態です。

○外側から2つ目の引用にだけ、引用記号がついている。

○この引用だけ、blockquote要素にstyle属性がある。

<blockquote type="cite" style="font-family: Helvetica; font-size: 12px; font
-style: normal; font-variant: normal; font-weight: normal; letter-spacing: n
ormal; line-height: normal; orphans: auto; text-align: start; text-indent: 0
px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0
px; -webkit-text-stroke-width: 0px;" class="">

○この引用中の引用(=外側から3つ目、4つ目の引用)も、
  引用記号は1つだけついている(2つ目の引用と区別がつかない)

○この引用の途中で、引用記号がつかなくなる。
  (引用中に現れる最初のblockquote終了タグまでで途切れる)


以下の環境で確認しました。

Windows 10 64bit
秀丸メール 6.75 32bit
HmRegIni.dll 2.07

[ ]
RE:02346 HTMLメールから生成された本文でNo.02347
candide さん 17/10/30 17:42
 
すみません、書き忘れました。

「全般的な設定」>「上級者向け」>「デコード」で、
「HTMLメールのテキスト形式への変換」の
「text/plainパートがあっても無視する」を有効にしたうえで、
該当のメールを「受信解析のやり直し」しても、
まったく同じ内容が生成されてしまいます。

[ ]
RE:02347 HTMLメールから生成された本文でNo.02348
秀まるお2 さん 17/10/30 18:05
 
 HTMLメールからプレーンテキストを生成する処理を見直してみたら、blockquoteタ
グの解釈がちょっと独特な処理になってまして、それが原因のようです。

 <blockquote>のタグは、単純にインデント目的で使われることがあって、そういう、
ただのインデントの場合は「>」の引用記号を付けない方がいいです。「>」を付ける
か付けないかの判定基準が、

   style=

 があるかどうかで決めてるようでした。

 <blockquote>               だとただのインデント。
 <blockquote style="...">   だと「>」付き。

 というロジックになっました。

 なぜこうなってるのかというと・・・、たぶん、既存のメールクライアントから発
信されるHTMLメールをいろいろ調べて、こういう判定基準ならうまくいってたから、
だろうと思います。

 今回のメールは、「type="cite"」があるということなので、とりあえず、それが
ある場合は「>」付きに変換するようにしてみます。

 次のV6.76β12にて対応させていただきます。

 他にもおかしそうな所があれば、具体的なHTMLソースの中身のサンプルを教えてい
ただければ、こちらで再現テストして、直せそうなら直せると思います。

[ ]
RE:02348 HTMLメールから生成された本文でNo.02349
candide さん 17/10/30 18:21
 
なるほど、整形目的のblockquoteと見なされていたわけですね。

対応予定とのこと、ありがとうございます。

今のところ、引用以外に気づいた問題点はありません。

ただし現状で、「引用目的のblockquote」の途中で、
入れ子になった「整形目的のblockquote」が終了したとき、
「引用目的のblockquote」が終了したと判断されているので、
引用の入れ子の解釈に問題があるかもしれません。

> ○この引用の途中で、引用記号がつかなくなる。
>   (引用中に現れる最初のblockquote終了タグまでで途切れる)

[ ]
RE:02349 HTMLメールから生成された本文でNo.02350
秀まるお2 さん 17/10/30 19:05
 
> ただし現状で、「引用目的のblockquote」の途中で、
> 入れ子になった「整形目的のblockquote」が終了したとき、
> 「引用目的のblockquote」が終了したと判断されているので、
> 引用の入れ子の解釈に問題があるかもしれません。

 たしかに問題ありました。さっそくそこも修正させていただきます。

 例:

   <blockquote type="cite" style="...">
       aaaa
       bbbb
       <blockquot>
           cccc
           dddd
       </blockquote>
       eeee
       ffff
   </blockquote>

 とかのケースで、


    > aaaa
    > bbbb
    > cccc
    > dddd
    eeee
    ffff

 みたいになってしまってました。

 ちなみにblockquoteとかdivとかがややこしく混じった場合に改行の仕方がおかし
い所も多々あるようですが、あんまり完璧に対応するのはかなり難しくて、いろいろ
手抜きがあったりします。例えばテスト用に

  <blockquote type="..." style="..">
     あああ
      <blockquote>
          いいい
      </blockquote>
      ううう
  </blockquote>

 としたのが「あああ いいい ううう」と1行になったり、

  <blockquote type="..." style="..">
     <div>あああ</div>
      <blockquote>
          <div>いいい</div>
      </blockquote>
      <div>ううう</div>
  </blockquote>

 としたのも「あああ」が引用されなかったりするようです。出来る範囲で直そうと
思います。

[ ]
RE:02350 HTMLメールから生成された本文でNo.02351
candide さん 17/10/30 19:14
 
ご確認いただき、ありがとうございます。

あまり複雑な入れ子はどうしようもないと思いますので、
可能な範囲でよろしくお願いいたします。

[ ]