HTMLを使用してシンプルなメールテンプレートを作成する

HTMLを使用してシンプルなメールテンプレートを作成する

今日は、「ローテク」の問題について書きたいと思います。

ちなみに、私は JavaScript Weekly など、いくつかのニュースレターを購読しています。毎週、その週の大きなニュースをメールで受け取ります。
2015712153636746.jpg (349×460)

ある日、私もこんなメールを作れるかな?と考えました。

すると、それはそんなに簡単なことではないと気づきました。バックエンドと編集作業は別として、電子メール テンプレートを設計するだけでも多くの考慮が必要です。
2015712153840405.jpg (550×671)

このフォーマットされた電子メールは実際には Web ページであるため、正式名称は HTML 電子メールです。正しく表示できるかどうかは、電子メールクライアントによって完全に異なります。ほとんどの電子メール クライアント (Outlook や Gmail など) は HTML 設定をフィルター処理するため、電子メールが認識できなくなります。

HTML メールを書くコツは、15 年前に Web ページを作成するときに使用されたのと同じ方法を使用することだということが分かりました。私がまとめた執筆ガイドはこちらです。

1. ドキュメントタイプ

現在、最も互換性のある Doctype は XHTML 1.0 Strict です。実際、Gmail と Hotmail は Doctype を削除し、この Doctype に置き換えます。

XML/HTML コードコンテンツをクリップボードにコピー
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" >   
  2.   
  3. < html   xmlns = "http://www.w3.org/1999/xhtml" >   
  4.   
  5.  <ヘッド>   
  6.   
  7.   <メタ  http-equiv = "コンテンツタイプ"  コンテンツ= "text/html; 文字セット = UTF-8"   />   
  8.   
  9.   < title > HTML メール作成ガイド</ title >   
  10.   
  11.   <メタ  name = "ビューポート"  コンテンツ= "幅=デバイス幅、初期スケール=1.0" />   
  12.   
  13.  </ヘッド>   
  14.   
  15. </html>   

この Doctype を使用すると、HTML5 構文は使用できなくなります。

2. レイアウト

Web ページのレイアウトにはテーブルを使用する必要があります。まずは背景となる大きな外側のテーブルを配置します。

XML/HTML コードコンテンツをクリップボードにコピー
  1. <本文 スタイル= "マージン: 0; パディング: 0;" >   
  2.   
  3.  < 境界線= "1"  セルパディング= "0"  セル間隔= "0"  = "100%" >   
  4.   
  5.   < tr >   
  6.    < td >こんにちは! </ td >   
  7.   </tr>   
  8.   
  9.  </>   
  10.   
  11. </本文>   

テーブルの border プロパティは 1 に設定されており、これは開発の便宜上のためです。正式にリリースされたら、このプロパティを 0 に設定します。

内側の層に2番目のテーブルを配置します。コンテンツを表示するために使用されます。 2 番目のテーブルの幅は、クライアントの表示幅を超えないように 600 ピクセルに設定されています。

XML/HTML コードコンテンツをクリップボードにコピー
  1. <  align = "中央"  境界線= "1"  セルパディング= "0"  セル間隔= "0"  = "600"  スタイル= "border-collapse: collapse;" >   
  2.   
  3.  < tr >   
  4.   < td >行 1 </ td >   
  5.  </tr>   
  6.   
  7.  < tr >   
  8.   < td > 2行目</ td >   
  9.  </tr>   
  10.   
  11.  < tr >   
  12.   < td > 3行目</ td >   
  13.  </tr>   
  14.   
  15. </>   

メールの内容と同じ数の行を設定します。

3. 画像

引用できる外部リソースは画像のみです。スタイルシート ファイル、フォント ファイル、ビデオ ファイルなどのその他の外部リソースは一切参照できません。

一部のクライアントは画像リンクに境界線を追加するので、それを削除する必要があります。

CSSコードコンテンツをクリップボードにコピー
  1. img {アウトライン:なし;テキスト装飾:なし; -ms-補間モード:バイキュービック;}
  2.   
  3. 画像 {境界線:なし;}
  4.   
  5. <img border = "0" style = "display:block;" >

多くのクライアントではデフォルトで画像が表示されないため(Gmail など)、画像がなくてもメインコンテンツが読めることを確認してください。

4. インラインスタイル

すべての CSS ルールはインラインで使用するのが最適です。 Web ページのヘッダーに配置されたスタイルは、クライアントによって削除される可能性があるからです。 CSS ルールのクライアント サポートについては、こちらをご覧ください。

また、一部のクライアントでは CSS の省略形がサポートされていないため、使用しないでください。たとえば、次のように書く代わりに、

XML/HTML コードコンテンツをクリップボードにコピー
  1. style = "フォント: 8px/14px Arial、サンセリフ;"   

表現したいなら

XML/HTML コードコンテンツをクリップボードにコピー
  1.  < 10 ...  スタイル= "マージン: 1em 0;" >   

次のように書きます:

XML/HTML コードコンテンツをクリップボードにコピー
  1. < 10 ...  スタイル= "上マージン: 1em; 下マージン: 1em; 左マージン: 0; 右マージン: 0;" >   

5. W3C 検証およびテストツール

一部のクライアントは非修飾属性を削除するため、最終的なコードが W3C チェックに合格することを保証します。また、テスト ツール (1、2、3) を使用して、さまざまなクライアントでの表示結果を確認します。

HTMLメールを送信する場合、MIMEタイプは使用できないことに注意してください。

XML/HTML コードコンテンツをクリップボードにコピー
  1. コンテンツタイプ: text/plain;

代わりに、

XML/HTML コードコンテンツをクリップボードにコピー
  1. コンテンツタイプ: Multipart/Alternative;

送信ツールとしては、MailChimp と Campaign Monitor の使用を検討してください。

6. テンプレート

他の人がすでに作成したテンプレート (こちらとこちら) を使用することをお勧めします。インターネット上でさらに多くのテンプレートを見つけることができます。

独自のものを開発したい場合は、「HTML Email Boilerplate」と「Emailology」を参照してください。

<<:  TypeScript のユニオン型、交差型、型ガード

>>:  CentOS 8.4 に Docker をインストールする詳細なチュートリアル

推薦する

MySQL binlog を使用して誤って削除されたデータベースを復元する方法

目次1 現在のデータベースの内容を表示し、データベースをバックアップする2 bin_log関数を有効...

nodejs + koa + typescript の統合と自動再起動に関する問題

目次バージョンノートプロジェクトを作成する依存関係をインストールするコンテンツの記入src/serv...

CentOS 7.6 への MySQL 5.7 GA バージョンのインストール チュートリアル図

目次環境の準備環境の準備mariadbをアンインストールする rpm -qa | grep mari...

MySQLカバーインデックスの詳しい説明

コンセプトインデックスにクエリ要件を満たすすべてのデータが含まれている場合、それはカバーリング イン...

MySQL 8.0.11 圧縮バージョンを Windows 10 にインストールするための詳細なチュートリアル

最近コンピュータを再インストールした後、最新バージョンのみをインストールするという強迫観念に基づいて...

nginx の 2 つのモジュールの proxy_pass の違い

1. 1.ngx_stream_proxy_moduleモジュールのproxy_passディレクティ...

MySQL の効率的なクエリの左結合とグループ化 (プラス インデックス)

mysql 効率的なクエリMySQL は、左結合の速度を上げるために group by を犠牲にし...

略語マークと頭字語マーク

<abbr>タグと<acronym>タグは、Web ページに表示される略語と...

MySQL 5.7.20\5.7.21 無料インストール版のインストールと設定のチュートリアル

参考までに、mysql 5.7.20 / 5.7.21 をダウンロード、インストール、構成します。具...

MySQL がタイムスタンプを使用するときにタイムゾーンの問題を無視できるのはなぜですか?

私はいつも、なぜMySQLデータベースのtimestampタイムゾーンの問題を無視できるのか疑問に思...

CSSは高さを設定せずにdivを完全に中央に配置することを実現します

必要とする本文の下のdivは垂直方向に中央揃えになっていますdiv 内のテキストを垂直中央に配置する...

DockerにNginxをインストールする方法

DockerにNginxをインストールするNginx は、IMAP/POP3/SMTP サービスも提...

WebpackはCSSファイルを読み込み、その設定方法

webpackはCSSファイルとその設定をロードします複数の CSS ファイルを作成した後、HTML...

jQuery ベースのカレンダー効果

この記事では、カレンダー効果を実現するためのjQueryの具体的なコードを例として紹介します。具体的...

mysql 計算関数の詳細

目次2. フィールドの連結2. MySQL関数の例をいくつか挙げてください。 2.1 シンボル処理2...