-
Notifications
You must be signed in to change notification settings - Fork 4
/
727.txt
320 lines (231 loc) · 19.9 KB
/
727.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
[20] [DFN[[[HTMLメール]]]]は、 [[HTML]] によって本文が記述された[[電子メール]]です。
[[HTML]] のみによって本文が記述されている場合と、 [CODE(MIME)@en[[[multipart/alternative]]]]
によって[[平文]]と [[HTML]] の両方が含まれている場合があります。
* 仕様書
[45] [[HTML]] は [[HTML Standard]] で規定されていますが、[[電子メール]]固有の事項の規定は含まれていません。
[46] 次に示す通り [[MHTML]] などいくつかの要素技術は [[IETF]] などで仕様化されています
(が90年代末頃に出版された後放置されている仕様書ばかりで、近代的な品質は持っていません)。
[47] しかしそれらの仕様書の規定を総合しても、[[HTMLメール]]を実装するのに十分な情報は得られません。
事実上、 [[HTMLメール]]は標準不在状態が続いています。これまで [[HTMLメール]]の標準化が試みられたことが幾度かありましたが、
いずれも成功していません。
* MHTML
[22] [[HTMLメール]]のように [[MIME]] と [[HTML]] を組み合わせた形態を [[MHTML]]
と呼び、90年代末に [[IETF]] で標準化されました。 [[MHTML]] では [CODE(URI)@en[[[cid:]]]]
[[URL]] や [CODE(MIME)@en[[[Content-ID:]]]] [[ヘッダー]]によって他の [[MIME]]
[[本体部分]]の画像等を [[HTML]] に埋め込むことができます。また [CODE(MIME)@en[[[Content-Location:]]]]
[[ヘッダー]]によって [[MIME]] [[本体部分]]の [[URL]] を記述することもできます。
[49] [[HTML]] と画像等は、 [CODE(MIME)@en[[[multipart/related]]]] によってひとまとめにします。
* HTML の部分集合
[21] 通常は安全上、実装上、その他の理由から完全な [[HTML]] ではなく、
[[HTML]] (や [[CSS]] その他関連技術) の一部だけが有効となっています。
ただ、どの一部分が有効かについては [[MUA]] によって様々です。
過去に標準化の試みが何度かなされましたが、成功したことはなく、
事実上の標準といえる部分集合すら明らかにはなっていない状態です。
[34] 制限方法は、実装によります。限定された[[レンダリングエンジン]]を用いることもあれば、
不適切な[[要素]]を削除したり [[URL]] を書き換えたりするなどして変換を行った後に汎用の[[レンダリングエンジン]]で表示することもあります。
* 外部参照
[25] [[HTMLメール]]から [CODE(URI)@en[[[http:]]]] [[URL]] 等によって外部の画像等を参照できると電子メールのサイズを削減できたり、
送信時点ではなく最新の情報を表示できたり、便利なことがあります。しかしながら、
メールの送信者が受信者のメール閲覧行動をある程度把握できてしまうので、
プライバシー上の問題があります。
[26] [[Gmail]] など一般的な [[MUA]] は既定の状態では外部参照を無視し、
送信者等の条件で許可したメールにおいてのみ外部参照を有効とする実装になっているようです。
[27] 現在では [[Twitter]] や [[Facebook]] など主要な[[Webアプリケーション]]からの通知メッセージや
[[Amazon]] 等の [[DM]] など、 [[HTMLメール]]で多くの画像等を含める場合には外部参照が一般的となっているようです。 [TIME[2013-04-06T08:07:14.700Z]]
[REFS[
- [30] [CITE@ja[画像を表示するかどうかを選択する - Gmail ヘルプ]] ([TIME[2014-04-23 12:28:05 +09:00]] 版) <https://support.google.com/mail/answer/145919?hl=ja>
]REFS]
[31] >>30 によると [[Gmail]] は [[Google]] を経由して[[画像]]を表示するようにしています。参照先のサーバーには
[[Google]] のサーバーからのアクセスであることしかわかりませんし、 [[Google]]
側で[[ウイルス]]チェックもしているとのことです。
;; [32] いつ >>26 から >>31 に変わったのかよくわかりませんが、一説には2013年12月とされています。
;; [33] [[Cookie]] などによりログイン状態を判定して[[画像]]を出し分けしていたり、
アクセスを追跡していたりすることがありますが、今後はできないということです。
[71] 現在では画像を利用した開封確認などの tracking が相当数の [[HTMLメール]]で行われるようになっています。
既定の状態では画像を表示しない [[MUA]] でも、画像を有効にする時に追跡の危険性を[[利用者]]に明確に説明していないのが現状です。
[72] [[MUA]] は [CODE(HTMLe)@en[[[img]]]] [[要素]]のサイズ指定が異常に小さければ[[画像]]にアクセスしない、
サービス提供者の[[サーバー]]からアクセスする、といった対策により[[利用者]]の[[プライバシー]]を守ることを試みることはできますが、
完全ではありません。[[画像]]を有効にすることで[[プライバシー]]上のリスクが高まることを
[[MUA]] は[[利用者]]に十分警告するべきです。
[73] [[MUA]] は、[[画像]]の取得時に [[Cookie]] や[[認証]]情報を送信するべきではありません。
特に、通常の [[Webブラウザー]]の [[Cookie]] を送信することで [[Webブラウザー]]の[[セッション]]と[[メール]]の[[受信者]]が意図せず紐付けられることがないよう、
気をつけなければなりません。
* 内部参照
[56] [[MHTML]] の一環で開発された [CODE(URI)@en[[[cid:]]]] [[URL]]
により、他の[[本体部分]]の [CODE(MIME)@en[[[Content-ID]]]] を参照することができます。
[57] 通常は [CODE(MIME)@en[[[multipart/related]]]] で含めた他の[[本体部分]]を参照します。
[CODE(URI)@en[[[cid:]]]] [[URL]] の仕様上はそれ以外の[[本体部分]]を参照することもできるはずですが、
どう実装されているのかは不明です。
[58] 理論上は画像などの埋め込みなどに限らず、 [CODE(URI)@en[[[cid:]]]] [[URL]]
への[[ハイパーリンク]]なども記述はできますが、そのように実装されていることがあるのかは不明です。
利用例も見たことがありません。
* メタデータ
[38] [[Gmail]] は [[schema.org]] データの埋め込みに対応しています。
;; [39] またそれ以外に [[HTML]] の構造や内容から推測してデータの取り出しを行っているようです。
[40] 明示的または暗示的に記述されたデータを使って、「詳細を見る」
のような機能を提供したり、 [[Gmail]] から [[Googleカレンダー]]への自動登録を行ったりしているようです。
[REFS[
- [74] [CITE@en[Email Markup | Google Developers]] ([TIME[2015-06-16 05:33:34 +09:00]] 版) <https://developers.google.com/gmail/markup/>
- [75] [CITE[Email Markup Tester]] ([TIME[2015-09-02 23:34:18 +09:00]] 版) <https://www.google.com/webmasters/markup-tester/u/0/>
]REFS]
* HTML メールに関する HTML の仕様
[41] [[HTML]] 本体仕様にも [[HTMLメール]]に関する規定がいくつかあります。
[42] [CODE(822)@en[[[Subject:]]]] によって[[題名]]が指定される[[電子メール]]の[[メッセージ]]においては、
[[HTML文書]]の [CODE(HTMLe)@en[[[title]]]] [[要素]]は省略できます。
;; [43] [CODE(MIME)@en[[[multipart/*]]]] によって[[添付ファイル]]などの形で含まれる
[[HTML文書]]は、 [CODE(822)@en[[[Subject:]]]] が直接適用される対象ではないので、
本規定の対象外と思われます。 [CODE(MIME)@en[[[multipart/alternative]]]]
や [CODE(MIME)@en[[[multipart/related]]]] なら、 [CODE(822)@en[[[Subject:]]]]
の直接の適用対象と解釈可能なので、省略できると思われます。 ([[HTML Standard]]
は [[HTMLメール]]自体を直接規定する仕様書ではないので、そのような詳細までは規定していません。
[[HTMLメール]]の仕様書は、現時点で存在していません。)
[44] [CODE(HTMLe)@en[[[img]]]] [[要素]]の [CODE(HTMLa)@en[[[alt]]]] [[属性]]は、
当該[[電子メール]]の宛先がそれを必要としていないことが明確な場合には、
省略できます。
* 代替平文本体部分
[50] [[MUA]] が送信する [[HTMLメール]]は、 [CODE(MIME)@en[[[multipart/alternative]]]]
により (自動生成された) [CODE(MIME)@en[[[text/plain]]]] と [CODE(MIME)@en[[[text/html]]]]
の2つの[[本体部分]]を含めるのが普通です。
[51] [[HTMLメール]]に対応しない [[MUA]] (古くからあるものや [[HTML]]
を実装したくないもの、[[メーリングリスト]]の[[アーカイブ]]など) は
[CODE(MIME)@en[[[text/plain]]]] を表示します。
[52] [[Webアプリケーション]]からの通知メールや[[メールマガジン]]の類などでは、
[CODE(MIME)@en[[[text/html]]]] のみの [[HTMLメール]]が送られることもよくあります。
* 添付ファイル
[53] [[添付ファイル]]が存在する場合、 [CODE(MIME)@en[[[multipart/mixed]]]]
によって本文部分 ([CODE(MIME)@en[[[multipart/alternative]]]]、
[CODE(MIME)@en[[[multipart/related]]]]、[CODE(MIME)@en[[[text/html]]]] のいずれか)
と[[添付ファイル]]の[[本体部分]]を含めるのが普通です。
[54] [[HTML]] から参照される画像等は [CODE(MIME)@en[[[multipart/related]]]]
に含めるのが普通なので、[[添付ファイル]]とは区別されます。
[55] しかし [[MUA]] でどのように表示されるかは、 [[MUA]] 次第です。中には埋め込み画像等も[[添付ファイル]]として扱うものもあります。
* HTML メールに対する世論
[23] 90年台中頃に [[HTMLメール]]が登場した頃は、まだテキスト・ベースのシステムへの信仰が根強く、
また [[MIME]] を正しく処理できない [[MUA]] が (送受信とも) 多かったこともあり、
[[HTMLメール]]は不適切な技術と受け止められました。特に [[Windows]] に同梱されていた
[[Outlook Express]] などは、[[電子メール]]の標準に反する点が多かったこともあって、
[[HTMLメール]]が既定値である好ましからざる [[MUA]] として利用者を含めて攻撃の対象となりました。
当初は [[HTML]] と[[電子メール]]の[[セキュリティ]]上の問題も明確になっておらず、
しばしば脆弱性が発見されて問題になっていました。
[24] それでも [[HTMLメール]]の表現力は魅力的であり、携帯電話の[[デコレーション・メール]]や
[[Webアプリケーション]]事業者等からの [[DM]] や通知メールに採用され、広まっていきました。
[[Thunderbird]] や [[Gmail]] をはじめ、2000年代以後に登場した [[MUA]] は
[[HTMLメール]]の送受信ができるのが一般的になっています。
[35] 現在では [[MUA]] の新規メールの形式が [[HTMLメール]]となっていることもかなり多くなっています。
ただし従来の[[平文メール]]と切り替えられるようになっているのが普通です。
[[平文メール]]に対する[[返信]]は[[平文メール]]とするような実装も一般的です。 [TIME[2014-04-23T12:35:02.300Z]]
[76] [[Webアプリケーション]]からの通知メールや、各企業からの宣伝メールなど、
機械的または不特定多数に対するメールも、最近は [[HTMLメール]]がかなり多くなっています。
かつては登録サイトで [[HTMLメール]]と[[平文]]のメールを選択できる場合もありましたが、
現在では無条件で[[HTMLメール]]が使われることがほとんどです。
[TIME[2015-10-17T08:05:06.200Z]]
* 歴史
[48] [[ガラケー]]では、[[デコメ]]などの呼称で高機能な[[メール]]メッセージ形式として
[[HTMLメール]]が採用されていました。全体的にはどの[[キャリア]]の形式も、
[[PC]] 用 [[MUA]] の [[HTMLメール]]と同じ形となっていました。しかし細部はいずれも互いに異なっていました。
* メモ
- [1] [[WWW]] の登場に驚愕した人々は、当時の[[ネットワーク]]のキラー・アプリケーションだった[[電子メイル]]や[[電子ニュース]]のメッセージで、 [[HTML]] の[[タグ]]をちょっと遊びがてら使ってみたりしました。[[署名]]の部分に [SAMP[<a href="mailto:foo@bar.example">七誌権平</a>]] とか書いてみたり。
- [2] >>1 もちろん、メッセージのその他の部分は HTML には程遠い、普通の plain-text なのですが。
- [3] >>1 中には、 [[MUA]] で [[a]] 要素を[[ハイパーリンク]]として表示・反応可能にする人もでました。
- [4] >>1-3 これは MUA での [[URI]] のハイパーリンク化という現在では当たり前の実装につながるだけでなく、 HTML メイルの先駆けとも言えます。
[5]
[CITE[HTMLメールマーケティングガイド - HTMLメールのメール配信、効果測定、コンバージョン向上施策 -]] <http://www.html-mail.jp/>
([[名無しさん]] [WEAK[2006-08-12 05:42:54 +00:00]])
[6]
[CITE@en[CSS support in HTML emails of Hotmail, Yahoo! Mail and Gmail]] ([CODE[2007-03-26 20:40:47 +09:00]] 版) <http://www.xavierfrenette.com/articles/css-support-in-webmail/>
([[名無しさん]])
[7]
[CITE[Style In Email - css-discuss]] ([CODE[2007-03-26 20:41:51 +09:00]] 版) <http://css-discuss.incutio.com/?page=StyleInEmail>
([[名無しさん]])
[8]
[CITE@en['''['''Interoperability''']''' Implementation reports for HTML in mail clients and Good Practices]] ([[Karl Dubost]] 著, [CODE[2007-02-21 13:58:53 +09:00]] 版) <http://lists.w3.org/Archives/Public/public-html-mail/2007Feb/0008.html>
([[名無しさん]])
[9]
[CITE@en['''['''Interoperability''']''' Implementation reports for HTML in mail clients and Good Practices]] ([[Karl Dubost]] 著, [CODE[2007-02-21 13:58:53 +09:00]] 版) <http://lists.w3.org/Archives/Public/public-html-mail/2007Feb/0008.html>
([[名無しさん]])
[10]
[CITE[HTML Email Guide]] ([CODE[2007-03-26 20:45:39 +09:00]] 版) <http://www.anandgraves.com/html-email-guide>
([[名無しさん]])
[11]
[CITE@en[W3C HTML Mail Workshop - 24 May 2007 - Paris]] ([CODE[2007-03-30 20:12:07 +09:00]] 版) <http://www.w3.org/2007/05/html-mail/>
([[名無しさん]] [WEAK[2007-03-31 08:37:24 +00:00]])
[12]
[CITE[WEBTECH - webtech:vantguarde]] ([CODE[2007-04-03 08:30:53 +09:00]] 版) <http://web.g.hatena.ne.jp/vantguarde/20070402#1175441443>
([[名無しさん]] [WEAK[2007-04-02 23:32:17 +00:00]])
[13]
[CITE@en[W3C HTML Mail Workshop - List of Papers]] ([CODE[2007-06-08 10:05:55 +09:00]] 版) <http://www.w3.org/2007/05/html-mail/minutes>
([[名無しさん]])
[14]
[CITE@en[Writing a Team Submission for the HTML in mail Workshop]] ([[Karl Dubost]] 著, [CODE[2007-06-11 16:27:22 +09:00]] 版) <http://lists.w3.org/Archives/Public/public-html-mail/2007Jun/0000.html>
([[名無しさん]])
[15]
[CITE@en[Keep HTML and CSS out of my inbox. Please. | 456 Berea Street]] ([[Roger Johansson]] 著, [CODE[2007-07-27 23:04:38 +09:00]] 版) <http://www.456bereastreet.com/archive/200706/keep_html_and_css_out_of_my_inbox_please/>
([[名無しさん]] [WEAK[2007-07-27 14:07:52 +00:00]])
[16]
[CITE@en[Help improve support for Web Standards in HTML email | 456 Berea Street]] ([[Roger Johansson]] 著, [CODE[2007-09-13 21:10:52 +09:00]] 版) <http://www.456bereastreet.com/archive/200709/help_improve_support_for_web_standards_in_html_email/>
([[名無しさん]])
[17]
[CITE@en[Home | Email Standards Project]] ([CODE[2007-12-08 10:30:01 +09:00]] 版) <http://www.email-standards.org/>
[18]
[CITE@en[The Email Standards Project launches | 456 Berea Street]] ([[Roger Johansson]] 著, [TIME[2007-12-08 10:29:59 +09:00]] 版) <http://www.456bereastreet.com/archive/200712/the_email_standards_project_launches/>
[19] 最近 [[Gmail]] のメール送信画面が新しいのになりましたが、今まで[[平文]]を選択していた人でも
[[HTMLメール]]に勝手に切り替わっているようです。メール作成画面の設定から[[平文]]を再度選ぶことができますが、
意識しないと気づかないかもしれません。 [TIME[2013-04-06T07:49:00.200Z]]
[28] [CITE@en[Enlisting the help of HTML mails]]
( ([[Bjoern Hoehrmann]] 著, [TIME[2013-10-26 08:02:22 +09:00]] 版))
<http://lists.w3.org/Archives/Public/www-archive/2013Oct/0046.html>
[29] [CITE@en-US[HTML for email Community Group]]
( ([TIME[2014-02-05 07:03:22 +09:00]] 版))
<http://www.w3.org/community/htmail/>
[36] [CITE@en[Official Gmail Blog: Images Now Showing]]
( ([TIME[2014-12-19 08:00:09 +09:00]] 版))
<http://gmailblog.blogspot.jp/2013/12/images-now-showing.html>
[37] [CITE@en[Guide to CSS support in email | Campaign Monitor]]
([TIME[2015-04-02 11:27:18 +09:00]] 版)
<https://www.campaignmonitor.com/css/>
[59] [CITE@en-US[HTML for email Community Group]]
([TIME[2015-07-16 17:57:43 +09:00]] 版)
<https://www.w3.org/community/htmail/>
[60] [CITE@en[W3CGHtmail/compat-tables]]
([TIME[2015-07-16 17:57:55 +09:00]] 版)
<https://github.com/w3cghtmail/compat-tables>
[61] [CITE@en[HTML for email Community Group]]
([TIME[2015-03-23 19:55:50 +09:00]] 版)
<https://www.w3.org/community/htmail/wiki/Main_Page>
[62] [CITE@en[W3CGHtmail]]
([TIME[2015-07-16 17:58:31 +09:00]] 版)
<https://github.com/W3CGHtmail>
[63] [CITE@en[CSSSpec - HTML for email Community Group]]
([TIME[2015-03-23 19:55:50 +09:00]] 版)
<https://www.w3.org/community/htmail/wiki/CSSSpec>
[64] [CITE@en[Status Quo Email - HTML for email Community Group]]
([TIME[2015-03-23 19:55:50 +09:00]] 版)
<https://www.w3.org/community/htmail/wiki/Status_Quo_Email>
[65] [CITE@en[Business reasons for a new HTML concept - HTML for email Community Group]]
([TIME[2015-03-23 19:55:50 +09:00]] 版)
<https://www.w3.org/community/htmail/wiki/Business_reasons_for_a_new_HTML_concept>
[66] [CITE[Conventions for HTML in Email]]
([TIME[1998-01-27 08:38:36 +09:00]] 版)
<http://www.w3.org/TR/1998/NOTE-HTMLThreading-0105>
[67] [CITE[public-htmail@w3.org Mail Archives]]
([TIME[2015-04-30 20:38:00 +09:00]] 版)
<https://lists.w3.org/Archives/Public/public-htmail/>
[68] [CITE[HTMLメールの状況 2015/8]]
([TIME[2015-08-07 17:40:38 +09:00]] 版)
<http://wiki.suikawiki.org/n/HTML%E3%83%A1%E3%83%BC%E3%83%AB%E3%81%AE%E7%8A%B6%E6%B3%81%202015%2F8$25062>
[FIG(quote)[
[FIGCAPTION[
[69] [CITE@ja[DFA を使用して HTML メールのインプレッションとクリックをトラッキングする - DFA パートナー ヘルプ]]
([TIME[2015-08-08 23:44:26 +09:00]] 版)
<https://support.google.com/dfa/partner/answer/134521?hl=ja>
]FIGCAPTION]
> DFA のトラッキング方式では、1x1 ピクセルの画像を使用します。ユーザーがメールを開くか表示すると毎回、DFA 広告タグによってこの画像が呼び出され、DFA 広告サーバーに通知が送られます。1 回の表示が 1 インプレッションとしてカウントされます。クリック数をカウントする方法は、302 リダイレクト(仮想ディレクトリともいいます)、メタリフレッシュ(HTML リフレッシュともいいます)、クリック トラッカーの 3 種類です。
]FIG]
[FIG(quote)[
[FIGCAPTION[
[70] [CITE@ja[Main]]
([TIME[2015-08-08 23:53:00 +09:00]] 版)
<http://sellsmartly.com/cgi-bin/help.cgi?adminid=1&helpmain=1&ID=26>
]FIGCAPTION]
> 誰かがこのメールを開封すれば、上記HTMLコード(<img>タグ)によってトラッキングリンクURLが呼び出され、その結果として「1×1gifイメージ(1x1.gif)」が表示されます。
]FIG]