メールアドレス
この記事の正確性に疑問が呈されています。 |
メールアドレス(英語: electronic mail address, email address, e-mail address)、Eメールアドレス(イーメールアドレス)、電子メールアドレス[1] (でんしメールアドレス) とは、電子メールにおける送信先や発信元を表す。略称としてアドレス、メルアド、メアドなどがある。
構成
[編集]メールアドレスは、次の構文を持つ。
ローカル部@ドメイン(例:foo@example.com
)
ローカル部の構成はメールサーバの仕様による。ユーザ名またはユーザ名の別名(alias)が基本である。ドメインはホスト名(ホストに割り当てられるドメイン名)であり、メールサーバを特定する。この例では、「“example.com
”で特定できるメールサーバに登録している“foo
”というユーザ」が基本である。
メールアドレスのフォーマットを規定する文書として、RFCのRFC 5321 (Simple Mail Transfer Protocol) [2]およびRFC 5322 (Internet Message Format) [3]が存在し、メールアドレスに使用できる文字を定義している[4]。
ローカル部に使用できる文字
[編集]ローカル部に使用できる文字は以下のASCII文字である。
- まず、次のASCII文字をそのまま並べた形式(RFC 5321ではDot-string、RFC 5322ではdot-atomと呼ぶ)が使用できる。
- さらに、“
"
"
”でくくられたquoted-stringの形式であれば、加えて次のASCII文字を使用できる[6]。 - さらにquoted-string中では、“
\
”を前につけたquoted-pairの形式であれば、加えて次のASCII文字を使用できる。\
"
たとえば、以下はRFC[どれ?]の規定において有効なメールアドレスである。
Abc@example.com (dot-atom) Abc.123@example.com (dot-atom) user+mailbox/department=shipping@example.com (dot-atom) !#$%&'*+-/=?^_`.{|}~@example.com (dot-atom)[7] "Abc@def"@example.com (quoted-string) "Fred\ Bloggs"@example.com(quoted-pairを含んだquoted-string) "Joe.\\Blow"@example.com(quoted-pairを含んだquoted-string)
RFC5322 p.12 の定義
dot-atom-text = 1*atext *("." 1*atext)
から、「.」の後に必ず文字が必要であるため、以下は無効なメールアドレスである[8]。
Abc.@example.com(“.”をローカル部の末尾に使用している) Abc..123@example.com(“.”が連続している)
ローカル部の長さの最大値は64文字である[9]。(実際には、プロバイダ側の設定や、メールソフトの制約などでローカル部の長さの最大値を20~30文字程度に制限している場合が多い)
ドメインに使用できる文字
[編集]ドメインには、次のいずれかの形式が使用できる。
- ラテン文字・数字・“
-
”(先頭はラテン文字または数字)から成るサブドメインを“.
”でつないだ形式で、A RRもしくはMX RR(またはそれらに名前解決されるCNAME RR)に名前解決される完全修飾ドメイン名 (FQDN)[10]。 - “
[
]
”でくくられたIPアドレス(例:[192.0.2.69]
[11])。
ドメインの長さの最大値は253文字、メールアドレス全体の長さの最大値は254文字である[9]。
#ローカル部に使用できる文字で述べたように、ローカル部にはquoted-string形式でなければ“.
”を先頭と末尾で使用することや2個以上連続して使用することはできない。
しかし、一部の実装(実例:携帯電話のメール)はこの仕様を逸脱しており、規定外の特殊な文字が使用可能な場合もある。
Postfixは、配送する電子メールのエンベロープやヘッダに仕様を逸脱したローカル部を持つメールアドレスが存在すると、ローカル部を"
"
”でくくった形に変形する。エンベロープ中のメールアドレスについてはこの機能を無効に設定できる[12]が、ヘッダ中のメールアドレスについては無効化できない。
電子メールでのメールアドレスの使用
[編集]メールアドレスは電子メールの中のいくつかの箇所で使用され、使用される箇所により決まった形式で現れる。
電子メールでメールアドレスが使用される箇所
[編集]- エンベロープ中のパス。RFC 5321で定義される。
- reverse-path
- 電子メールの送信元。エンベロープfromとも呼ばれる。
- forward-path
- 電子メールの送信先。エンベロープtoとも呼ばれる。
- メールヘッダ中のフィールド。RFC 5322で定義される。
- Fromフィールド
- 電子メールの著者。
- Senderフィールド
- 電子メールの送信者が著者と異なる場合や、著者が複数の場合の、電子メールの送信者。
- Toフィールド
- 電子メールの受信者。
- Reply-Toフィールド
- 電子メールの返信先。
- Ccフィールド
- カーボンコピーの受信者。
- Bccフィールド
- ブラインドカーボンコピーの受信者。
- 再送フィールド (Resent-From・Resent-Sender・Resent-To・Resent-Cc・Resent-Bcc)
- 電子メール再送時の情報を、元のフィールドを変更せずに記入するために使用される。それぞれ、“Resent-”のつかないフィールドに対応する。
- Return-Pathフィールド
- SMTPサーバにより、reverse-pathの情報が記入される。
電子メールでの使用形式
[編集]それぞれの使用箇所で使用できるメールアドレスの形式を、以下の表に示す。
形式 | RFC 5321での呼称 | 使用箇所(エンベロープ) | RFC 5322での呼称 | 使用箇所(ヘッダ)[1] | ||
---|---|---|---|---|---|---|
foo@example.com
|
Mailbox | - | address | mailbox | addr-spec | From Sender Reply-To To Cc Bcc |
<foo@example.com>
|
- | - | name-addr | |||
foo <foo@example.com>
| ||||||
foobar:
|
- | - | group | Reply-To To Cc Bcc | ||
<foo@example.com>
|
Path | reverse-path forward-path | path | Return-Path |
- 「ローカル部
@
ドメイン」の形式(例:foo@example.com
)を、RFC 5321ではメールボックス (Mailbox) と呼び、 RFC 5322ではaddr-specと呼ぶ。 - メールアドレスが使用されるヘッダフィールドのうちReturn-Path以外のヘッダフィールドには、addr-specのほか、addr-specの形式を“
<
>
”でくくったり、さらに前に表示名を挿入したりしたname-addr(例:<foo@example.com>
、foo <foo@example.com>
)が使用できる。RFC 5322では、addr-specとname-addrをあわせてメールボックス (mailbox) と呼ぶ。 - Fromフィールドには、メールボックスを“
,
”で区切ったメールボックスのリストを用いて複数の著者を記入できる。このとき、1つの送信者のメールボックスを記入したSenderフィールドが必須である。 - Reply-To、To、Cc、Bccフィールドには、複数人のメールボックスを“
,
”で区切り、前に表示名と“:
”、後ろに“;
”を挿入したグループ (group)(例:foobar:foo <foo@example.com>,bar <bar@example.com>;
)も使用でき、RFC 5322ではメールボックスとグループをあわせてアドレス (address) と呼ぶ。Reply-To、To、Cc、Bccフィールドには、アドレスを“,
”で区切ったアドレスのリストを用いて複数記入できる(メールボックスもアドレスであるから、メールボックスのリストも使用できる)。Bccフィールドの値は空でもよい。 - reverse-pathおよびforward-pathには、Mailboxの形式を“
<
>
”でくくったパス (Path)(例:<foo@example.com>
)を用いる。Return-Pathフィールドも同様である。
特別なメールアドレス
[編集]- Postmaster
- メールシステムの管理者のメールアドレスとして使われる。SMTPサーバは、forward-pathに「
Postmaster@
ドメイン」、またはドメインのない“Postmaster
”が指定された電子メールを受け取らなければならない。どちらも“Postmaster
”の文字は大文字小文字を区別しない。 - Nullアドレス
- メール転送エージェント (MTA) は宛先の間違いなどで電子メールを配送できない場合に、その電子メールのreverse-path宛に配送不能を知らせるバウンスメールを配送する。バウンスメールのreverse-pathには空値(Null)のアドレスを用いたパス、すなわち“
<>
”が使用される。 - MAILER-DAEMON
- sendmail、Postfix、qmailなどのMTAは、バウンスメールのFromフィールドに、ローカル部に“
MAILER-DAEMON
”を使用したメールアドレスを使用する。
そのほか、RFC 2142 (Mailbox Names for Common Services, Roles and Functions) [13]に、よく使うメールアドレスを定義している。
脚注
[編集]出典
[編集]- ^ https://kotobank.jp/word/電子メールアドレス-6535
- ^ Klensin, J., ed. (Oct 2008), Simple Mail Transfer Protocol, RFC 5321
- ^ Resnick, P., ed. (Oct 2008), Internet Message Format, RFC 5322
- ^ RFC 5322 & 5321に沿ったメールアドレス(local-part)のテストデータを考えてみた https://qiita.com/yoshitake_1201/items/40268332cd23f67c504c
- ^ RFC 5321の2.4節“General Syntax Principles and Transaction Model”と4.1.2節“Command Argument Syntax”によれば、Quoted-stringを必要とするメールボックス、大文字小文字を区別するローカル部をもつメールボックスを定義することは、相互運用性を妨げるため、避けるべきであると定義されている。
- ^ RFC 5321 4.1.2節“Command Argument Syntax”によれば、quoted-string形式が要求されるローカル部をもつメールボックスを定義することは、相互運用性を妨げるため、避けるべきである。
- ^ 但し、rfc976 https://datatracker.ietf.org/doc/html/rfc976 UUCP Mail Interchange Format Standard では、( ! でホスト名をつないでメールアドレスを表現する) bang path がある。bang path の例としては hosta!hostb!user などがある。
- ^ RFC 5322 Internet Message Format,IETF, 2008 https://www.rfc-editor.org/rfc/rfc5322.txt
- ^ a b RFC 5321 4.5.3.1節“Size limits and minimums”
- ^ RFC 5321 3.6節“Relaying and Mail Routing”
- ^ RFC 5321は実在のIPアドレスで例示しているが、ここでは例示用のIPアドレスを使った。
- ^ “
smtp_quote_rfc821_envelope
”パラメータを“no
”に設定する(“Postfix設定パラメータ”. Postfixのぺーじ (2007年6月2日). 2007年12月8日閲覧。参照)。 - ^ Crocker, D. (May 1997), Mailbox Names for Common Services, Roles and Functions, RFC 2142