過去ログ表示


過去ログ 384 を表示

トピック内全 3 記事中の 1 〜 3 番目を表示
[ 最新記事及び返信フォームをトピックトップへ ]
このトピックの全ページ / [0]

本文中に長いURLを貼るとHTMLがおかしくなる
(#56984) このトピック中1番目の投稿
(環境: Win 7/Other)
Thunderbirdで本文に長いURLやWINDOWSのUNCを貼りつけると受信側ThunderbirdでURLの途中に半角スペースが入ったり、自動生成されるLINKをクリックしても送信時指定したアドレスにジャンプしないので困っています。
実験したところ次のようなHTML生成の不具合を見つけました。

使用している環境:
Thunderbird ESR 17.0.7(ファイルバージョン 17.0.7.4919)
Windows7 32bit

実験1◆漢字を含むファイル名が本文に記述されると、URLが2分割された。
本文のURL→http://test.dummydomain.co.jp/sub1/sub2/sub-dir3/sub-dir4/Lists/List2/abcdefghijkel/8/test-document-漢字文字列klmnopqrstuvwxyz.pdf
さらに、分割した前半だけのURLでアドレスリンクがされている。
<作成されたHTML>
Content-Type: text/html; charset=ISO-2022-JP
Content-Transfer-Encoding: 7bit

<html>
  <head>

    <meta http-equiv="content-type" content="text/html; charset=ISO-2022-JP">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    <b>&nbsp;&nbsp; </b><a class="moz-txt-link-freetext" href="http://test.dummydomain.co.jp/sub1/sub2/sub-dir3/sub-dir4">http://test.dummydomain.co.jp/sub1/sub2/sub-dir3/sub-dir4</a>
    /Lists/List2/abcdefghijkel/8/test-document-漢字文字列klmnopqrstuvwxyz.pdf<br>
    <br>
    <br>
    これはテストです。<br>
  </body>
</html>


実験2◆上記と同じようにファイル名を漢字なし、同一バイト数で貼りつけた場合URLは分割されない。
http://test.dummydomain.co.jp/sub1/sub2/sub-dir3/sub-dir4/Lists/List2/abcdefghijkel/8/test-document-abcdefghijklmnopqrstuvwxyz.pdf
<作成されたHTML>
  <body text="#000000" bgcolor="#FFFFFF">
    <big><big>&nbsp;&nbsp; </big></big><a class="moz-txt-link-freetext" href="http://test.dummydomain.co.jp/sub1/sub2/sub-dir3/sub-dir4/Lists/List2/abcdefghijkel/8/test-document-abcdefghijklmnopqrstuvwxyz.pdf">http://test.dummydomain.co.jp/sub1/sub2/sub-dir3/sub-dir4/Lists/List2/abcdefghijkel/8/test-document-abcdefghijklmnopqrstuvwxyz.pdf</a><br>
    <br>
    <br>
    これはテストです。<br>
  </body>

このコメントに/aがあると送信できないようなので全角に変換してレポート!

Re: 本文中に長いURLを貼るとHTMLがおかしくなる
(#56985) このトピック中2番目の投稿
(環境: WinXP SP3/Other)

> Thunderbirdで本文に長いURLやWINDOWSのUNCを貼りつけると受信側ThunderbirdでURLの途中に半角スペースが入ったり、自動生成されるLINKをクリックしても送信時指定したアドレスにジャンプしないので困っています。

> 実験1◆漢字を含むファイル名が本文に記述されると、URLが2分割された。
> 本文のURL→http://test.dummydomain.co.jp/sub1/sub2/sub-dir3/sub-dir4/Lists/List2/abcdefghijkel/8/test-document-漢字文字列klmnopqrstuvwxyz.pdf
> さらに、分割した前半だけのURLでアドレスリンクがされている。
> <作成されたHTML>
> Content-Type: text/html; charset=ISO-2022-JP
> <a ... href="http://test.dummydomain.co.jp/sub1/sub2/sub-dir3/sub-dir4">http://test.dummydomain.co.jp/sub1/sub2/sub-dir3/sub-dir4</a>
> /Lists/List2/abcdefghijkel/8/test-document-漢字文字列klmnopqrstuvwxyz.pdf<br>

HTMLモードでの作成で、text/htmlでちゃんと送られるケースのようですね。

(1) まず「漢字のURL」について。
HTML内のURL内のnon-7bits-ascii文字は、自分でちゃんとエスケープしなければいけません。

HTMLメールのコンポーザー、とは言っても、内部的には単なる英語圏を主眼においたHTMLエディターで、80文字あたり(Unicode文字で)で勝手に改行を入れるは、行の先頭には、ソースの整形のためにスペースをいくつか追加してしまうは、<タグ名 属性名="属性の文字列">のような時に「属性の文字列」の間に改行をいれてしまうは...
正しいURLではないのだから、どこで切られたって不思議はないし、挿入⇒リンクで指定したからといって、文句を言う筋合いではない(^^)

FirefoxでURLに貼り付けて表示し、URL欄でなくタブでコピーしてエスケープされた文字列を入手し、Thunderbirdにペースト、で逃げてみてください。
途中で切られる、というようなことは起こりますか?

> 実験2◆上記と同じようにファイル名を漢字なし、同一バイト数で貼りつけた場合URLは分割されない。

HTMLモードでは、Unicodeの文字数、で、改行をいれるなどをしていますから、同じ文字数で確認してください。

なお、メールには一行1000バイトの制限があって、現時点では、一行1000バイトを超えるURLは(こちらはバイト数)、どうあがいても正常に送れませんから、ご注意を。

> 半角スペースが入ったり

これは、URLに限った話ではなく、改行無しで長い日本語テキストを入力すると
80文字あたりで(Unicode文字数で)改行を入れる、
行の先頭には、ソースの整形のためにスペースをいくつか追加する、
ということをしているので、
HTMLにおける、改行=一つの半角スペースと同値、という仕様のために、
改行が挿入されたところに半角スペースが入ってしまう、
ということが起こります。

その上に、メールにはSMTPの制約で1行1000バイトの制限があるのにそれを無視して、<pre>で1000文字以上の長〜い改行なしの文字列を貼り付けると、
<pre>なので、80文字あたりでの改行は入らず、そのままの長い行のまま処理され、
3バイトコードのことを考慮せずにSMTPの制限の1000バイトのところで改行を挿入するので、iso-2022-jpの3バイトのエスケープシーケンスやUTF-8の3バイトコードを壊してしまう、という問題も引き起こします。
ご注意を。

挿入⇒リンクで指定したものうち途中までしかa href="..."の「...」に入らない、とうのは、単純に、80文字での改行のせい、ではなさそうですから、直らないでしょうけど、
80文字のところで挿入された改行のために日本語の文字の間にスペースが入ってしまう問題は、
そのような改行の挿入が発生する場合は、改行を一切挿入せずにそのままBase64で送ることで解決しようとしています。
bug-org 653342 を読んでください。
URLが切られる問題のバグはないですが、メール作成時の問題のかなりが、bug-org 653342 の中でポイントされています。

Re: 本文中に長いURLを貼るとHTMLがおかしくなる
(#56986) このトピック中3番目の投稿
(環境: WinXP SP3/Other)

追記です。

>>実験1◆漢字を含むファイル名が本文に記述されると、URLが2分割された。
>>本文のURL→http://test.dummydomain.co.jp/sub1/sub2/sub-dir3/sub-dir4/Lists/List2/abcdefghijkel/8/test-document-漢字文字列klmnopqrstuvwxyz.pdf
>>さらに、分割した前半だけのURLでアドレスリンクがされている。
>><作成されたHTML>
>>Content-Type: text/html; charset=ISO-2022-JP
>><a ... href="http://test.dummydomain.co.jp/sub1/sub2/sub-dir3/sub-dir4">http://test.dummydomain.co.jp/sub1/sub2/sub-dir3/sub-dir4</a>
>> /Lists/List2/abcdefghijkel/8/test-document-漢字文字列klmnopqrstuvwxyz.pdf<br>

「本文に記述」は、正規の「挿入→リンク」じゃなくて、HTMLコンポーザーの本文部分に、そのURLをペーストした時の話なんですね。
それなら、HTMLが作成される以前に、作成画面で既に、切られる場所は異なるけれど、そのHTMLと似たようになっていて、そのように表示されているわけで...
そのままHTML+Textで後で送信をすると、HTML上では切られる場所が異なるみたいで、私のテストでは、ちょうど「漢字文字列」の前で切られました。
テキストメールでそのURLをペーストすると、「http://test ... /Lists/List2」で改行が入って、そこまでで「Linkify」される、という現象になります。
「テキストのLinkify」がまず関係しそうだから、テキストモード用の、mailnews.wraplength(デフォールト=72bytes)も関係するかもしれませんね。

きちんと、正規の「挿入→リンク」で行うと、どうなりますか?


このトピックの全ページ / [0]

返信不可


- Child Tree -