[1] [DFN[[RUBYB[妥当な電子メール・アドレス]@en[valid e‐mail address]]]]および[DFN[[RUBYB[妥当な電子メール・アドレス・リスト]@en[valid e‐mail address list]]]]は、
[[HTML]] における[[電子メール]]の[[アドレス]]の表現方法として [[Web Applications 1.0]]
([[HTML5]]) で規定されている[[構文]]です。

* 仕様書

-[2]  [[Web Applications 1.0]] ([[HTML5]])
-- [[妥当な電子メール・アドレス]]
<http://www.whatwg.org/specs/web-apps/current-work/complete.html#valid-e-mail-address>
-- [[妥当な電子メール・アドレス・リスト]]
<http://www.whatwg.org/specs/web-apps/current-work/complete.html#valid-e-mail-address-list>

* 構文

** 妥当な電子メール・アドレス

[3] [[妥当な電子メール・アドレス]]は、 [[ABNF]] ([[STD 68]]) [[生成規則]]
- [CODE(ABNF)@en[1*( [[atext]] / "." ) "@" [[ldh-str]] *( "." [[ldh-str]] )]]
-- [CODE(ABNF)@en[[[atext]]]] は [[RFC 5322]] 3.2.3 節で定義されているもの
-- [CODE(ABNF)@en[[[ldh-str]]]] は [[RFC 1034]] 3.5 節で定義されているもの

と[[一致]]する[[文字列]]です [SRC[[[Web Applications 1.0]]]]。

[FIG(railroad)[
= +
== |
=== [CODE(ABNF)@en[[[atext]]]]
=== [CODE(char)[[[.]]]]
= [CODE[@]]
= [CODE(ABNF)@en[[[ldh-str]]]]
= *
== [CODE[[[.]]]]
== [CODE(ABNF)@en[[[ldh-str]]]]
]FIG]

[6] [[Web Applications 1.0]] は [[Note]] ([[参考]]) で次のように述べています。
- この[[要件]]は [[RFC 5322]] の[[意図的違反]]である
- [[RFC 5322]] の[[電子メイル・アドレス]]の構文は、[[HTML]] での利用には実用的でない
-- [[local-part]] が厳しすぎる
-- [[domain]] が曖昧すぎる
-- 緩すぎる ([[注釈]]、[[空白文字]]、[[引用文字列]]を変なところで認めている)

** 妥当な電子メール・アドレス・リスト

[4] [[妥当な電子メール・アドレス・リスト]]は、[[妥当な電子メール・アドレス]]を[[字句]]とする、
[[読点分離字句の集合]]です [SRC[[[Web Applications 1.0]]]]。

* 処理モデル

** 妥当な電子メール・アドレス・リスト

[5] [[利用者エージェント]]は[[妥当な電子メール・アドレス・リスト]]から[[字句]]の[[リスト]]を得るに当たり、
[[読点で文字列を分離]]しなければ[['''なりません''']] [SRC[[[Web Applications 1.0]]]]。

* 一部を隠して表示する

[21] 
[[セキュリティー]]を理由に一部を隠して表示されることがあります。
[SEE[ [[一部を隠して表示する]] ]]


* 歴史

[8] [[Web Forms 2.0]] ではじめて [CODE(HTML)@en[[[<input type=email>]]]]
が規定されましたが、当時は [[RFC 2822]] (後の [[RFC 5322]]) 
のものから[[注釈]]などを認めないというような記述で、
構文には特に名前は与えられていませんでした。

[9] [[Web Forms 2.0]] の [[HTML5]] への統合に伴い仕様書が書き直された際に、
「[[妥当なメール・アドレス]]」と呼ばれるようになりました。

[10] 更に [CODE(HTMLa)@en[[[multiple]]]] [[属性]]が追加され、
「[[妥当なメール・アドレス・リスト]]」なる構文も定義されました。

@@ >>9-10 の辺りの時系列は要確認です。

[11] その後定義が実用上の観点から見直され、 [[RFC 5322]] 
に対する[[意図的違反]]が行われるに至りました。

- <http://html5.org/tools/web-apps-tracker?from=3715&to=3716>
- <http://html5.org/tools/web-apps-tracker?from=3716&to=3717>

[12] [CITE@en[Web Applications 1.0 r5796       allow @localhost addresses for testing.]]
( ([TIME[2011-01-21 10:47:00 +09:00]] 版))
<http://html5.org/tools/web-apps-tracker?from=5795&to=5796>

* 関連

[7] [[妥当な電子メール・アドレス]]や[[妥当な電子メール・アドレス・リスト]]は
[CODE(HTML)@en[[[<input type=email>]]]] の[[値]]で用いられています。

[23] [CITE@en['''['''whatwg''']'''  Comments on the definition of a valid e-mail address]]
([[Ian Hickson]]著, [TIME[2009-08-31 14:53:47 +09:00]])
<https://lists.w3.org/Archives/Public/public-whatwg-archive/2009Aug/0807.html>



[FIG(quote)[
[FIGCAPTION[
[13] [CITE[About notification emails - User Documentation]]
( ([TIME[2016-12-13 11:33:07 +09:00]]))
<https://help.github.com/articles/about-notification-emails/>
]FIGCAPTION]

> In addition, there's a second Cc email address that matches the notification reason. The suffix for all of these notification reasons is @noreply.github.com. The possible notification reasons are:

]FIG]


[FIG(quote)[
[FIGCAPTION[
[14] [CITE@ja[「アイドルマスター ミリオンライブ! シアターデイズ」 事前登録キャンペーン |バンダイナムコエンターテインメント]]
([TIME[2017-04-30 12:50:48 +09:00]])
<https://prereg.bn-ent.net/common/serial.php?action=input&device_type=2&app=imasml_theater>
]FIGCAPTION]

> __(アンダースコア連続) と --(ハイフン連続)と..(ドット連続)を含むメールアドレスではご利用いただけません。

]FIG]


[15] [CITE@en[RFC 5070 - The Incident Object Description Exchange Format]]
([TIME[2017-05-07 20:04:30 +09:00]])
<https://tools.ietf.org/html/rfc5070#section-2.14>

[16] [CITE@en[RFC 7970 - The Incident Object Description Exchange Format Version 2]]
([TIME[2017-05-14 16:49:04 +09:00]])
<https://tools.ietf.org/html/rfc7970#section-2.12>

[FIG(quote)[
[FIGCAPTION[
[17] [CITE[GitHub Flavored Markdown Spec]]
([TIME[2017-05-15 12:05:46 +09:00]])
<https://github.github.com/gfm/>
]FIGCAPTION]

> An email address, for these purposes, is anything that matches the non-normative regex from the HTML5 spec

]FIG]


[18] [CITE@en[RFC 8162 - Using Secure DNS to Associate Certificates with Domain Names for S/MIME]]
([TIME[2017-06-01 08:15:21 +09:00]])
<https://tools.ietf.org/html/rfc8162#section-3>

[19] [CITE@en[rfc4151]], [TIME[2021-08-18T05:35:22.000Z]] <https://datatracker.ietf.org/doc/html/rfc4151#section-2.1>

[DFN[[VAR[emailAddress]]]]

[SEE[ [[tag:]] ]]

[FIG(quote)[
[FIGCAPTION[
[20] [CITE@ja[【共同発表】世界初、ミュー粒子による地下ナビゲーションに成功(発表主体:国際ミュオグラフィ連携研究機構) - 東京大学生産技術研究所]]
([TIME[2023-06-22T07:19:25.000Z]], [TIME[2023-06-23T02:49:16.463Z]])
<https://www.iis.u-tokyo.ac.jp/ja/news/4237/>
]FIGCAPTION]

> E-mail: ht"at"muographix.u-tokyo.ac.jp
>     ht"at"eri.u-tokyo.ac.jp
>     ht"at"virtual-muography-institute.org
> ※3つのアドレスすべてにお送りください。
> ※"at"を@に変えてください。

]FIG]


[FIG(quote)[
[FIGCAPTION[
[22] [CITE@ja[かこがわアプリ - データセット - 加古川市オープンデータAPI]]
([TIME[2024-06-22T07:47:34.000Z]])
<https://opendata-api-kakogawa.jp/ckan/dataset/kakogawa_app>
]FIGCAPTION]

> 上記のメールアドレスの「●」を「@」へ、「■」を「.」へ置き換えて送付ください。

]FIG]



[24] [CITE@ja[Xユーザーのなるせあおとさん: 「「メールアドレス長すぎ罪」で捕まってしまった (サイレント変更ではなく事前に通知してくれるのとてもありがたい) https://t.co/bmLGG9omMa」 / X]], [TIME[午後1:02 · 2025年10月8日][2025-10-08T04:02:22.000Z]], [TIME[2025-10-09T06:17:24.000Z]] <https://x.com/surrogatepair/status/1975773741423743430/photo/1>


[25] >>24 50文字以下という制限を新たに設けたシステム。事前に通知しているだけマシではあるが、
なぜ設計段階で既存アドレスの長さを確認しなかったのか、と考えるとシステム開発の手順が根本的に間違っていることがわかろう。


