電子メールの HTML ページを作成するための原則の概要

電子メールの HTML ページを作成するための原則の概要
HTML メールはこのサイト上の独立したホスト ページではないため、他の誰かによってホストされています。したがって、HTML メールの作成は HTML ページの作成とは大きく異なります。これは、インターネット ユーザー向けのすべての主流の電子メール サービスが、受信した HTML 電子メールをバックグラウンドで多かれ少なかれフィルタリングするためです。 onclick や onmouseover などのすべてのイベント監視属性を含む JS コードが厳密にフィルタリングされていることは間違いありません。これは電子メールのセキュリティを考慮した上で行われます。それだけでなく、CSS コードも部分的にフィルタリングされます。今回お話ししたいのは、大手の主流メールボックスでフィルタリングされず、正常に表示できる HTML メールの書き方についてです。

まず、メールボックスに HTML メールがどのように表示されるかを見てみましょう。私は電子メール システムに携わったことがなく、主要な電子メール システムの背後にあるフィルタリング アルゴリズムは、部外者にとってそれほど簡単に理解できるものではありません。したがって、メールボックスで受け入れられる書き込み方法と、フロントエンドの表示を通じてフィルタリングされる書き込み方法を推測することしかできません。 Gmail、Hotmail、163、sohu、sina の分析を通じて、メールボックスを 2 つのカテゴリに分類します。

最初のカテゴリには、gmail、hotmail、sohu が含まれます。このタイプのメールボックスの場合、電子メールの内容はメールボックス ページ全体の div にレイアウトされます。図に示すように:


2 番目のカテゴリには 163 と sina が含まれます。このタイプのメールボックスでは、電子メールの内容は独立した iframe にレイアウトされます。図に示すように:

HTML に詳しい人なら、iframe コンテンツは独立したドキュメントであり、親ページの要素や CSS とは無関係であり、ほぼ独立したページとして扱うことができることを知っています。電子メールの内容が div 内にある場合、電子メールの内容はメールボックス ページ全体の不可欠な部分になります。明らかに、表示方法として iframe を使用する電子メールは、十分に独立した表示スペースを提供するため、電子メール コンテンツに対してはるかに寛容になります。 div はあまり丁寧ではありません。メールにこの CSS を記述すると、メール ページ全体のフォント サイズが 20 ピクセルになり、乱雑になるのではないかと想像してください。
<スタイル タイプ="text/css">
本文 {フォントサイズ:20px}
</スタイル>
すべてのメールボックスと互換性のある統一されたメールテンプレートを記述する必要がある場合、上記の外部 CSS 記述方法を避ける必要があります。また、異常なコンテンツフローを形成する float や position などのスタイルもフィルタリングされます。これらを記述すると、外部メールボックスのパフォーマンスに影響を与える可能性があります。


ここにいくつかの執筆原則を示します。
1. グローバル ルールの 1 つは、<style> タグを記述せず、クラスを記述せず、すべての CSS でスタイル属性を使用し、特定のスタイルを必要とする要素のインライン CSS を記述するためにスタイルを使用することです。

2. 2 番目のグローバル ルールは、画像の使用を減らすことです。メールボックスは img タグをフィルターしませんが、システムは多くの場合、見慣れないメールからの画像を読み込まないことをデフォルトとしています。メールに多くの画像が使用されている場合、画像が読み込まれないと見苦しくなり、コンテンツさえもはっきりと見えなくなります。我慢できないユーザーは、すぐに削除します。画像には常に alt を追加します。

3. スタイル内に float、position、その他のスタイルを記述しないでください。これらはフィルタリングされます。では、左右レイアウトやより複雑なレイアウトを実現するにはどうすればよいでしょうか?テーブルを使用します。

4. 背景色はスタイル コンテンツで設定できますが、画像はフィルターされるため、CSS を通じて背景画像を設定することはできません。しかし、背景とも呼ばれる非常に興味深い要素属性があり、画像パスを定義できます。これは良い代替手段です。機能は制限されていますが、たとえば背景画像を配置することはできませんが、何もないよりはましです。たとえば、セルに背景を追加するには、次のように記述する必要があります。
<td 背景=”http://image1.koubei.com/images/common/logo_koubei.gif”></td>

5. div モードのメールボックスはフラッシュをサポートしていないため、iframe モードのメールボックスを検証する必要があります。

最後に、Sohu のメールは非常に奇妙であることを述べておきます。各テキスト段落の後にスペースが追加されるため、通常のレイアウトが 1 行に収まらず折り返され、レイアウトが乱れてしまいます。したがって、Sohu Mail との互換性を確保したい場合は、コンパクトなレイアウトに遭遇したときには特に注意し、テキスト セグメントの数を減らして十分な幅を残すようにしてください。

<<:  JavaScript DOM オブジェクト操作

>>:  モバイル開発チュートリアル: ピクセル表示の問題の概要

推薦する

CentOS 8で自動更新を設定するための手順を完了する

データとコンピューターに対してできる最善のことは、それらを安全に保つことです。アップデートを有効にす...

Vueはタブ切り替えの虫眼鏡効果を実装します

この記事では、タブ切り替えの虫眼鏡効果を実現するためのVueの具体的なコードを例として紹介します。具...

MySQL 文字列分割操作 (区切り文字を含む文字列のインターセプション)

区切り文字なしの文字列抽出質問の要件データベース内のフィールド値:実装効果: 1行のデータを複数行に...

あまり多くのコードを書かずに、ハイパーリンクを使ってシンプルで美しいカスタムチェックボックスを実装できます。

今日ふと、HTML でチェックボックスのスタイルを変更できる範囲が限られていることと、チェックボック...

CSSがページのレンダリングをブロックするかどうかについての簡単な説明

おそらく誰もが js の実行によって DOM ツリーの解析とレンダリングがブロックされることを知って...

MySQL pt-slave-restart ツールの使い方の紹介

目次MySQL マスター スレーブ レプリケーション環境を設定する場合、マスター データベースとスレ...

vue-video-player を使用してライブ放送を実現する方法

目次1. vue-video-playerをインストールする2. vue-video-playerを...

CSS3 のエラスティック レイアウトでの em の使用の概要: 1em は何ピクセルですか?

私は長い間 CSS を使用してきましたが、Web 要素の関連属性を設定するために常に「px」を使用し...

Mysqlはマスタースレーブ構成とマルチマスターマルチスレーブ構成を実装します

現在シミュレーションしているのは、マスター スレーブ システム (ホスト 1 台とスレーブ 1 台)...

MySQL の DDL と DML についての簡単な説明

目次序文1. DDL 1.1 データベース操作1.2 データテーブルの操作1.3 一般的なデータ型1...

docker.service 起動エラーの詳細なトラブルシューティング

エラーを報告するには次のコマンドを実行しますsystemctl dockerを再起動しますエラーメッ...

MySQLのロック機構に関する最も包括的な説明

目次序文グローバルロック完全なデータベース論理バックアップFTWRL と set global re...

ウェブデザインの達人がよく使うレスポンシブフレームワークを共有する(要約)

この記事では、Web デザインの達人がよく使用するレスポンシブ フレームワーク (概要) を紹介し、...

Vuex環境の詳細な説明

目次Vuex環境を構築する要約するVuex環境を構築するsrcディレクトリにフォルダstoreを作成...

DockerコンテナはホストのMySQL操作にアクセスする

背景:インターフェイスを提供する Flask プロジェクトがあり、これは Docker コンテナを使...