レスポンシブメールデザイン:技術ガイド
デスクトップからモバイルまで滑らかに適応するメールを構築します。
メールの60%以上がモバイルデバイスで開かれます。レスポンシブデザインはオプションではありません。しかし、レスポンシブメールはレスポンシブウェブより困難です。メディアクエリのサポートはまちまちです。Flexboxは動作しません。テーブルに頼らざるを得ません。
このガイドでは、メールクライアント間で実際に動作するテクニックをカバーします。複雑さをスキップしたい場合、Sequenzyのようなツールがビジュアルビルダーでレスポンシブ動作を自動的に処理します。
モバイルメールの現実
モバイルのメールクライアントはレスポンシブデザインを異なる方法で扱います:
- Apple Mail (iOS): 完全なメディアクエリサポート、ブラウザのように動作
- Gmail App: 2016年からメディアクエリをサポート、しかしクセあり
- Outlook App: メディアクエリのサポートが限定的
- Samsung Mail: 一般的に良好なサポート
課題はすべてに対応したデザインです。一部はメディアクエリをサポート、一部はしません。レイアウトにフォールバックが必要です。
流動レイアウト:基盤
流動的な幅から始めます。固定ピクセル幅の代わりに、max-width制約付きのパーセンテージを使用:
<table role="presentation" width="100%" style="max-width: 600px;">
<tr>
<td style="padding: 20px;">
Content flows to fill available width
</td>
</tr>
</table> これはどこでも動作します。デスクトップでは600px幅、モバイルでは画面に収まるよう縮小。メディアクエリ不要。
拡張のためのメディアクエリ
メディアクエリにより、サポートクライアントでモバイル体験をカスタマイズ:
<style>
@media screen and (max-width: 600px) {
.column {
width: 100% !important;
display: block !important;
}
.stack-on-mobile {
display: block !important;
width: 100% !important;
}
.hide-on-mobile {
display: none !important;
}
.mobile-padding {
padding: 10px !important;
}
}
</style> 主なテクニック:
- Stack columns: 横並びカラムを縦積みブロックに変換
- Adjust padding: 小画面でパディングを減らす
- Hide elements: モバイルで二次コンテンツを削除
- Resize images: 画像をフル幅に
!important宣言はインラインスタイルの高特異性ゆえに必要です。
ハイブリッド/スポンジ法
このテクニックは条件付きコメントとCSSを使用して、メディアクエリなしでレスポンシブレイアウトを作成:
<!--[if mso]>
<table role="presentation" width="600">
<tr>
<td width="300">
<![endif]-->
<div style="display: inline-block; width: 100%; max-width: 300px;">
Column 1 content
</div>
<!--[if mso]>
</td>
<td width="300">
<![endif]-->
<div style="display: inline-block; width: 100%; max-width: 300px;">
Column 2 content
</div>
<!--[if mso]>
</td>
</tr>
</table>
<![endif]--> Outlook(条件付きコメントを読む)では横並びカラム、他ではdiv要素により縦積み。メディアクエリ不要。
レスポンシブ画像
画像はコンテナに合わせてスケール:
<img src="image.jpg"
width="600"
style="display: block; max-width: 100%; height: auto;"
alt="Description"> width属性で意図サイズ設定。max-width: 100%でオーバーフロー防止。height: autoでアスペクト比維持。
タッチフレンドリーボタン
モバイルユーザーはタップ、クリックではない。ボタンは十分なサイズ必要:
<table role="presentation">
<tr>
<td style="background-color: #007bff; border-radius: 4px; padding: 12px 24px;">
<a href="https://example.com"
style="color: #ffffff; text-decoration: none; font-weight: bold; display: block;">
Click Here
</a>
</td>
</tr>
</table> 最小タッチターゲット:44x44ピクセル(Appleガイドライン)。多めのパディングが良い。
レスポンシブ動作のテスト
可能なら実機でテスト。エミュレータとプレビューはすべてを捉えません:
- テストメールを自分のデバイスに送信
- LitmusやEmail on Acidで自動プレビュー使用
- 縦横両方の向きでテスト
- 画像無効でチェック
レスポンシブのためのフレームワーク使用
MJMLのようなフレームワークがレスポンシブデザインを自動処理:
<mj-section>
<mj-column>
<mj-text>Column 1</mj-text>
</mj-column>
<mj-column>
<mj-text>Column 2</mj-text>
</mj-column>
</mj-section> このMJMLはレスポンシブHTMLにコンパイル。カラムはモバイルで自動スタック。手動メディアクエリ不要。
Sequenzyのようなビジュアルビルダーも同様。ブロックはレスポンシブ動作で事前設定。コンポーネントをドラッグ、カスタマイズ、レスポンシブ処理はビルトイン。
一般的なレスポンシブパターン
シングルカラム(モバイルファースト)
シングルカラムレイアウトから開始。どこでも動作、最小限のレスポンシブ調整。
2カラムからスタック
デスクトップ横並び、モバイルスタック。最一般的なパターン。ハイブリッド法かメディアクエリ使用。
ヒーロー画像とCTA
フル幅画像の後に中央揃えテキストとボタン。どんなサイズでも良好。画像スケール、テキスト可読。
結論
レスポンシブメールは達成可能だが制約理解必要。流動レイアウトから開始、サポート箇所でメディアクエリ強化、徹底テスト。
技術的複雑さが大変なら、MJMLフレームワークやSequenzyプラットフォームが処理。出力はクライアント横断テスト、コンポーネントにレスポンシブビルトイン。