MozillaZine.jp フォーラム https://forums.mozillazine.jp/ |
|
受信メール、改行されない現象 https://forums.mozillazine.jp/viewtopic.php?f=3&t=17065 |
ページ 1 / 1 |
作成者: | ssss [ 2018年5月18日(金) 09:14 ] |
記事の件名: | 受信メール、改行されない現象 |
受信したメールの一部が、改行が入っているにもかかわらず、Thunderbirdで見ると改行されておらず、非常に読みづらいです。 改行がきっちりされているように表示するにはどうすればいいのでしょうか。 |
作成者: | 偶然的通行人 [ 2018年5月22日(火) 14:03 ] |
記事の件名: | Re: 受信メール、改行されない現象 |
※質問するときは、「フォーラムの利用に関するご案内」、とりわけ「質問するときは」に目を通し、OS の種類や Thunderbird のバージョン、アカウントの種類(IMAP か POP か)といった使用環境についての最低限の情報を書き添えることをお勧めします。 OS の種類や Thunderbird のバージョン、「受信したメールの一部」と仰っているメールの形式(プレーンテキスト か HTML か)、ssss さんの Thunderbird の表示条件(プレーンテキスト、オリジナル HTML 、シンプル HTML)など、ご利用環境や運用条件が不明なままなので、いまある情報だけでは的を絞った応答は困難です。 一般論として、日本語メールでありがちな事例を申し上げるなら、次のようなケースに該当している可能性はありそうです。 (a)プレーンテキスト形式における format=flowed 指定 送信側が、プレーンテキスト形式のメールに format=flowed の指定を付けていれば、現役バージョンの Thunderbird 52.x 系は、その指定に従った表示をします。 かなり大雑把な言い方ですが、考え方が伝わればってことで......。 元来、電子メールの仕様・規格のうち送信プロトコルである SMTP には、メールに記述された文字列(ヘッダ、本文)の1行当たりの最大文字数(バイト数)に制約があります。 メールクライアントは通常、メールを作成するとき何文字で折り返すかの初期値を持っていて、その文字数で改行コードを入れて送信する働きをすることで、上記の制約に引っかからないようにしています。(制約文字数を超えた場合は、規定内に納まるよう強制的に改行コードを挿入して送信されます。) 一方、文章の構造として、パラグラフ(段落)内の中途半端な位置に改行を入れたりせず正確な文字列のあり様で表現したい場面もあり、強制的な改行を回避したいというニーズがありました。 そこで、SMTP のルールから逸脱しないよう改行コードを入れて送信はするが、受信先でこの役割の改行コードを取り除き、元々の文章が持っていた段落・改行の状態(改行コードを含まない長い文字列)に復元する仕組みが考案されました。それが format=flowed です。 この指定が付いているメールは、送信者が意識して改行した部分以外(=送信のため自動的に挿入された改行コードだけ)は、受信先でこれを削除して表示するようになります。 Thunderbird 52.x 系は、いちおう format=flowed の仕組みに対応しているので、送信者が format=flowed 指定で送ってきたメールは、対象範囲の改行を削除して送信者が書いた元々の文字列の並びのまま表示するようになります。 (b)HTML メールの作り方と表示形式の組み合わせ、および <pre> タグ指定 HTML 形式のメールの作り方と、受信側の Thunderbird で選択されている [表示] -> [メッセージの表示形式] の組み合わせによっては、表示画面での折り返しの状態が変化します。 受信した HTML メールを HTML 形式(オリジナル HTML やシンプル HTML)で表示したときは、メッセージソースにある通常の改行コードは無視され、<br> や <p> など HTML タグの指定に基づいて改行や段落が表現されます。 したがって、もし送信者が改行や段落を指定する <br> 、<p> タグを使わない長い文字列を書いてきた場合、メッセージソースに改行コードがあっても、HTML 形式の表示ではタグの指定が優先された表示になります。 この場合でも通常は、HTML の本文(body 直下)の文字列として定義されている部分は、改行タグの指定がない長文でも、ウィンドウ幅(メッセージペインの幅)で折り返されるはずです。ただ、このメールをメッセージペインではなく新しいタブに開いた場合、タブ画面の横幅のほうが広いので、ウィンドウ幅で折り返されたとしても、読みにくい場合はあると思います。 一方、<pre> タグで指定された長い文字列を HTML 形式で表示した場合、横スクロールバーが現われた表示となります。 <pre> タグは、そこに記述されたまま表示することを最優先する指定なので、<pre> ~ </pre> 内にある改行タグを持たない長い文字列は、Thunderbird のウィンドウ幅でも折り返されません。 上記の事例はいずれも、送信側で指定されたとおりの表示なので、Thunderbird の動作不良ではありません。 ただ、(意図したか否かは別にして)送信者の指定どおりの表示が、受信者にとっては「非常に読みづらい」状態となることはありえると思います。 とはいえ、ssss さんのところで起こっている現象が上記に該当するかどうかはわかりません。理由は冒頭で述べたとおりです。 ご存知と思いますが、メッセージソースの簡単な表示方法は、見たいメールを選択してキーボードの [Ctrl] + [U] です。 Content-Type が text/plain か text/html か、format=flowed があるかどうか、そのあたりに注意してソースを確認してみてください。 (対策) ピンポイントな解決策はアドバイスできませんが、一般論の範疇で簡単に述べておきます。 (a')format=flowed の指定を無視して表示したい オプションの [詳細] -> [一般] -> [高度な設定] にある [設定エディタ](about:config )から、 コード: mailnews.display.disable_format_flowed_support の値(初期値 false)を true に切り替えれば、format=flowed のサポートを無効化した状態で表示するようにできます。(b')HTML メールの表示、<pre> タグ指定もウィンドウ幅で折り返したい 表示形式を [プレーンテキスト] にすれば、HTML メールの中で <pre> 指定された長い文字列も、ウィンドウ幅で折り返されるはずです。 同様に、<pre> 指定のない通常の HTML メールの本文は、メッセージソースにある改行コードのあり様に従って表示されるはずです。 つまり、表示形式を [プレーンテキスト] にすることで、HTML の改行タグや段落タグを無視し、通常の改行コードに従った文字列表示になります。ただし、HTML メールに挿入された画像などは正常に表示されなくなります。 上記以外に、アドオン(拡張機能)の動作不良など何らかのトラブルによってご質問の問題が発生していることも否定できませんし、ユーザーが意識的に Thunderbird に施した設定がユーザーの望まない形で影響するケースもあります。英文など 100 %半角英数文字(1 バイト文字)だけで構成されたメールは、日本語メールとはまた違った事情があります。そのあたりも念頭に置きつつ、まずは上記の事柄をお確かめください。 以上、いまある情報から推測できそうなことを述べさせていただきました。的外れな話だったらすみません。 (おことわり) 現在、健康上の制約により不定期な書き込みしかできなくなっています。すぐに応答できない場面がかなり多くなりますことを、ご容赦ください。 |
ページ 1 / 1 | All times are UTC + 9 hours |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |