[ 新規に投稿する ]

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: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -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 [ コメントを投稿する ]
  ご確認いただき、ありがとうございます。

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

[ 新規に投稿する ]