メールアドレス
メールアドレス(electronic mail address, email address, e-mail address)、Eメールアドレス(イーメールアドレス)、電子メールアドレス (でんしメールアドレス) とは、電子メールにおける送信先や発信元を表す。略称としてアドレス、メルアド、メアドなどがある。
メールアドレスは、次の構文を持つ。
ローカル部@ドメイン(例:foo@example.com)
ローカル部の構成はメールサーバの仕様による。ユーザ名またはユーザ名の別名(alias)が基本である。ドメインはホスト名(ホストに割り当てられるドメイン名)であり、メールサーバを特定する。この例では、「“example.com"で特定できるメールサーバに登録している“foo"というユーザ」が基本である。
メールアドレスのフォーマットを規定する文書として、RFCのRFC 5321 (Simple Mail Transfer Protocol) およびRFC 5322 (Internet Message Format) が存在し、メールアドレスに使用できる文字を定義している。
ローカル部に使用できる文字は以下のASCII文字である。
まず、次のASCII文字をそのまま並べた形式(RFC 5321ではDot-string、RFC 5322ではdot-atomと呼ぶ)が使用できる。
大小のラテン文字(本来は大文字・小文字は区別されるが、実際には区別されていない実装がほとんどである。一般的には小文字で表記される)
! # $ % & ' * + - / = ? ^ _ ` {  } ~(実際には、プロバイダ側で利用可能な記号文字を一部のみに制限している場合が多い)
.(先頭と末尾以外で使用可能。2個以上連続してはならない ※ドコモ,auの携帯メールアドレスでは利用できるケースがある。)
さらに、“" ""でくくられたquoted-stringの形式であれば、加えて次のASCII文字を使用できる。
( ) < > [ ] : ; @ ,
.(quoted-string中では制限はない)
さらにquoted-string中では、“\"を前につけたquoted-pairの形式であれば、加えて次のASCII文字を使用できる。
\ "
たとえば、以下はRFC2020年10月の規定において有効なメールアドレスである。
Abc@example.com (dot-atom)
Abc.123@example.com (dot-atom)
user+mailbox/department=shipping@example.com (dot-atom)
!#$%&'*+-/=?^_`.〔}~@example.com (dot-atom)
"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)
から、「.」の後に必ず文字が必要であるため、以下は無効なメールアドレスである。
Abc.@example.com(“."をローカル部の末尾に使用している)
Abc..123@example.com(“."が連続している)
ローカル部の長さの最大値は64文字である。(実際には、プロバイダ側の設定や、メールソフトの制約などでローカル部の長さの最大値を20~30文字程度に制限している場合が多い)
ドメインには、次のいずれかの形式が使用できる。
ラテン文字・数字・“-"(先頭はラテン文字または数字)から成るサブドメインを“."でつないだ形式で、A RRもしくはMX RR(またはそれらに名前解決されるCNAME RR)に名前解決される完全修飾ドメイン名 (FQDN)。
“[ ]"でくくられたIPアドレス(例: [192.0.2.69])。
ドメインの長さの最大値は253文字、メールアドレス全体の長さの最大値は254文字である。
#ローカル部に使用できる文字で述べたように、ローカル部にはquoted-string形式でなければ“."を先頭と末尾で使用することや2個以上連続して使用することはできない。
しかし、一部の実装(実例:携帯電話のメール)はこの仕様を逸脱しており、規定外の特殊な文字が使用可能な場合もある。
Postfixは、配送する電子メールのエンベロープやヘッダに仕様を逸脱したローカル部を持つメールアドレスが存在すると、ローカル部を" ""でくくった形に変形する。エンベロープ中のメールアドレスについてはこの機能を無効に設定できるが、ヘッダ中のメールアドレスについては無効化できない。
メールアドレスは電子メールの中のいくつかの箇所で使用され、使用される箇所により決まった形式で現れる。
エンベロープ中のパス。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の情報が記入される。
それぞれの使用箇所で使用できるメールアドレスの形式を、以下の表に示す。
resent_field再送フィールド (Resent-From・Resent-Sender・Resent-To・Resent-Cc・Resent-Bcc) で使用できるメールアドレスの形式は、それぞれ対応する“Resent-"のつかないフィールドと同様である。
「ローカル部@ドメイン」の形式(例: 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) に、よく使うメールアドレスを定義している。