#Outlook.com のメールで、メール本文枠に全て表示されるように自動的にスケールを調整して100%に収まるようにしている仕様なんだけど、極端に縦に縮小されてメールが全く読めない問題が発生してる。
そのメールのソースを見たらHTML形式なんだけど、改行タグが全くないみたい。これはもともとなのか、Outlook.comが削除したのか?
でも、このようなメールが届いた時に、読めるように対処するのは難しいのだろうか?
#Outlook.com のメールで<br>の無いhtml形式のメールが横長に表示されてしまう件。
そのソースコードはtableタグが使われているのだけど、単独なら例えばブラウザの右端で折り返される。その上にdivタグがあって横幅を制限しても、ちゃんと右端で折り返される。レイアウトはぐちゃぐちゃだけど。
しかし、Outlook.comでは折り返されない。word-wrap: break-word;は指定されている。それでも折り返されない。
Javascriptがwidthを制御するのに利用されていることが原因かもしれないけれど、よく分からない。
Stylus を使ってCSSで外部からコントロールできないかいろいろと試したのだけど、どれも効果が無かった。もちろん、!importantを付けているのだが、効果が無かった。
#Outlook.com のメールで<br>の無いhtml形式のメールが横長に表示されてしまう件。
やっと原因が分かった。
<br>がないhtml形式のメールで、コンテンツのいろいろな所にwhite-space:pre;が指定されていた。それで、横幅が広くなってしまったらしい。
どこに指定されているのか、分からないから、一か所ではなさそうだから、Stylus を使って、*{white-space:pre-wrap!important}を指定して試してみたら、ちゃんと折り返されて、メール本文枠の中に納まった。
になみに、メール本文のかなり上の方の階層にJavascriptで計算されたwidthが指定されているのだけど、
<div class="wide-content-host" style="padding-right: 20px; width: 14812px;">
となってた。
間違えた。それだけでは直らなかった。
#Outlook.com のメールで<br>の無いhtml形式のメールが横長に表示されてしまう件。次のCSSも必要だった。
.wide-content-host{width:100%!important;}
#Outlook.com のメールで<br>の無いhtml形式のメールが横長に表示されてしまう件。
レイアウトぐちゃぐちゃだけど表示されて分かった。
メールはテキスト形式で送られてきて、それをOutlook.comがhtml形式にして表示していそう。だから、Outlook.comの #ハグ
改行CRLF、あるいはCRやLF単独のどれか分からないが、それを<br>に変換するのを忘れている。
#Outlook.com のメールで<br>の無いhtml形式のメールが横長に表示されてしまう件。
該当のメッセージのソースを確認したら、html形式っぽいな…。ただ、表示されたメールは、従来のtext形式メールにそっくり。
経線は------みたいに-を使っているし、URLはそのまま表示して、URLだけがリンクになっているけれど、Outlookに届いたメールのURLは自動的にリンクになるはずだから、どっちがリンクにしているのか分からない。
#Outlook.com のメールで<br>の無いhtml形式のメールが横長に表示されてしまう件。
該当メールのソースを見たら、white-space:pre;が指定されているのは、
.text-content,.ascii-art,.banner-text
だけだったのだけど、それらに{white-space:pre-wrap!important}を指定しても横長のままで縮小表示されてしまう。
.text-content,.ascii-art,.banner-text{white-space:pre-wrap!important}
ではだめで、
*{white-space:pre-wrap!important}でないとダメらしい。
#Outlook.com のメールで<br>の無いhtml形式のメールが横長に表示されてしまう件。
メルマガ「まぐまぐ」からのメールのメッセージのソースを見たら、ちゃんとテキスト形式のソースになっていた。
だから、 #ハグ が生じた該当メールは、送信時にテキスト形式のメールをhtml形式に変換して送信していて、その際にCRLFに<br>を付けるのを忘れているのかもしれない。