Gmailにおけるメール本文の省略
Motivation
Gmail(特にNative App)において、メールが省略される事があり、メールコンテンツ作成者としては困っている
iOSのネイティブメールAppでは起きない。
省略されるケース
102KBを超えると省略される。
バイト表記: 1byte=半角1文字分
102KB=102,000byte=10万2,000文字(全角なら5万1,000文字)
ref: Gmailの「容量オーバー」はなぜ起こる?作成時に気を付けたいポイントとは
ref: braze Email styling
メールサイズの情報ソースが、google元のものが全然見つからないので、言及している記事をいくつか貼っている。
ここでの計算対象は、メールテキストのみ。
画像は、URL文字列なので画像そのもののサイズは計算に含まれない。
テキストというと軽そうなイメージがあるかもしれないが、HTMLメールの場合はレイアウトから装飾、文字情報等表現上の指定をcodeで書いているので、視覚的に見えるよりも複雑な文字列が存在する。
メールのサイズをどう減らしていくか?
過剰なメールコンテンツやパターンを1つのメールで作らない。
分割したキャンペーンにして、送るようにする。
例: 新着/価格更新/fav/historyメール
新着メール
価格更新メール
userの条件メール
細かい条件分岐や構造を作らない。
メールで細かいテキストや装飾を減らす
各コンテンツの画像やTitleのみで表現
複雑な部分は、画像で作る。
minifyする (spacingや改行などをツールで無くすなど)
場合によってはメールコンテンツが壊れることもある
したがって、基本的には、メール配信サービスに任せたい。
メール配信サービスがしてくれない場合は、自分たちで行う必要がある。
brazeなどのCRMツールでメールコンテンツを、component driven developmentに作っている場合、リスクやデメリットも増える。
各所でminifyしないといけなくなる。
minifyされているコンテンツを人間が修正することは不可能。
※brazeでは、大体minifyされていることを確認した。
https://gyazo.com/e84d999fc14808cb49d1740494079aa9
もともとのメールcodeより詰まっている事がわかる。
メールが省略されないことをどう保証していくか?
メールのサイズバジェットを決めておき、メールの想定最大サイズを計算して運用していく。
メールの内容を変える場合は、そのバジェットにどう影響を与えて、省略されるのかを天秤にかける。
例
メールのサイズバジェットを、100kbと決めておく。
既存のメール想定最大サイズは、90kbである。
既存のメールに、新たにセクションを追加したい要求がある。
そのまま追加すると、102KBを超えそうである。
このままでは、メールが省略されるので、以下の天秤の中で意思決定
メールの省略を許容
既存のメールのどこかのセクションを削る。
新規セクションを諦める/削る
新規でメールを作る。
Tips
メールのサイズを見る
https://gyazo.com/7549946437c815f468cdce60d00be13f
https://gyazo.com/ca18659f3672a54050a488b8ddd9c3d8
ダウンロードしたファイルをブラウザで見てみると、画像は表示されていないことが分かる。
文字列のみのサイズ。
ref
同じような人たち
https://www.reddit.com/r/Frontend/comments/1fj2ckz/gmail_view_entire_message_breaking_email/?tl=ja