· 12分読了

レスポンシブメールデザイン:技術ガイド

デスクトップからモバイルまで滑らかに適応するメールを構築します。

メールの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プラットフォームが処理。出力はクライアント横断テスト、コンポーネントにレスポンシブビルトイン。