見出し画像

Gmail 空白が勝手に改行されて困った件

備忘録。


プレーンテキストモードの場合、一行がやたら長い場合(半角70文字以上)で、文中に空白(全角/半角問わない)があると、編集時にはわからないが受信側で空白が改行されたものとして表示されるようだった。

編集時には、見た目上は問題ないので、自分で空白部分が改行されることに気づけないのだ厄介だ。

Content-Transfer-Encoding: base64 と
Content-Transfer-Encoding: quoted-printable の違いがあるようだが、この辺の詳しいことは理解できていない。

改行なしでやたら一行がながいメールは読みにくいので改行してください(そこ?

現象

下図をご覧ください。ちょっと文章おかしかったけど、気にしないでください。

図1 送信者のメール送信画面
図2 受信側では、空白部分が改行された状態になっている。同様に、送信者の送信済で送信したメールを確認すると、こちらも改行された状態になっている。
図3 念のため表示幅を狭めてみた
図4 メッセージのソースを表示してみる



図5 Content-Transfer-Encoding: base64 になってる。
図6 こんな短いメールのソースも見てみたが、同じくContent-Transfer-Encoding: base64 になってる。
図7 プレーンテキストモードのチェックを外して送ってみる。
図8 プレーンテキストモードのチェックを外して送ると、受信側では、空白部分で改行されていることはなかった。
ソースは
Content-Type: text/plain; charset="UTF-8"

Content-Transfer-Encoding: base64

実験

実験 図1 編集時の画面
実験 図2 受信者側の表示、見え方。60~70が怪しい。
実験 図3 送信者側 編集画面
実験 図4 受信側の表示、見え方。半角70文字か~。

base64 だから 64あたりが境目か?とか適当におもったが、そうではないのか

実験 図5
図4のソース。あれ、Content-Transfer-Encoding: quoted-printable になってる。
実験 図6
送信者編集画面。半角空白でもやってみる。
実験 図7
受信側。半角空白でも70文字以上だと改行されている。
実験 図8
図7のソース。あれ、Content-Transfer-Encoding ないな。


Content-Transfer-Encoding【メールヘッダ】とは

Content-Transfer-Encoding: base64
Content-Transfer-Encoding: quoted-printable
https://wa3.i-3-i.info/word11117.html

Base64とは
https://wa3.i-3-i.info/word11338.html


quoted-printableとは
8ビットの文字を7ビットっぽくする変換方式
https://wa3.i-3-i.info/word11938.html


う~~~ん、このへんよくわかんないんだよな。

追記

情シスslackで教えていただいた。

メールサーバー間でやりとりするデータの仕様を定めたRFC5322に、1行の長さは改行コードを除いて78文字以下にする必要がある(SHOULD)と記載されています。(リンク先の 2.1.1. Line Length Limits )
これに基づいた挙動ではないでしょうか。

ううむ。

参考URL

http://openblog.seesaa.net/article/435847959.html


#Gmail
#空白
#改行
#Content -Transfer-Encoding


いただいたサポートで、書籍代や勉強費用にしたり、美味しいもの食べたりします!