メールアドレス

電子メールにおける送信先や発信元を表す

メールアドレス英語: electronic mail address, email address, e-mail address)、Eメールアドレス(イーメールアドレス)、電子メールアドレス[1] (でんしメールアドレス) とは、電子メールにおける送信先や発信元を表す。略称としてアドレスメルアドメアドなどがある。

構成

編集

メールアドレスは、次の構文を持つ。

ローカル部@ドメイン(例:foo@example.com

ローカル部の構成はメールサーバの仕様による。ユーザ名またはユーザ名の別名(alias)が基本である。ドメインはホスト名(ホストに割り当てられるドメイン名)であり、メールサーバを特定する。この例では、「“example.com”で特定できるメールサーバに登録している“foo”というユーザ」が基本である。 メールアドレスのフォーマットを規定する文書として、RFCRFC 5321 (Simple Mail Transfer Protocol) [2]およびRFC 5322 (Internet Message Format) [3]が存在し、メールアドレスに使用できる文字を定義している[4]

ローカル部に使用できる文字

編集

ローカル部に使用できる文字は以下のASCII文字である。

  1. まず、次のASCII文字をそのまま並べた形式(RFC 5321ではDot-stringRFC 5322ではdot-atomと呼ぶ)が使用できる。
    • 大小のラテン文字(本来は大文字小文字は区別されるが、実際には区別されていない実装がほとんどである[5]。一般的には小文字で表記される)
    • 数字
    • ! # $ % & ' * + - / = ? ^ _ ` { | } ~(実際には、プロバイダ側で利用可能な記号文字を一部のみに制限している場合が多い)
    • .(先頭と末尾以外で使用可能。2個以上連続してはならない ※ドコモ,auの携帯メールアドレスでは利用できるケースがある。)
  2. さらに、“" "”でくくられたquoted-stringの形式であれば、加えて次のASCII文字を使用できる[6]
  3. さらに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文字程度に制限している場合が多い)

ドメインに使用できる文字

編集

ドメインには、次のいずれかの形式が使用できる。

ドメインの長さの最大値は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:
 foo <foo@example.com>,
 bar <bar@example.com>;
- - group Reply-To To Cc Bcc
<foo@example.com> Path reverse-path forward-path path Return-Path
^再送フィールド (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) [13]に、よく使うメールアドレスを定義している。

脚注

編集

出典

編集
  1. ^ https://kotobank.jp/word/電子メールアドレス-6535
  2. ^ Klensin, J., ed. (Oct 2008), Simple Mail Transfer Protocol, RFC 5321 
  3. ^ Resnick, P., ed. (Oct 2008), Internet Message Format, RFC 5322 
  4. ^ RFC 5322 & 5321に沿ったメールアドレス(local-part)のテストデータを考えてみた https://qiita.com/yoshitake_1201/items/40268332cd23f67c504c
  5. ^ RFC 5321の2.4節“General Syntax Principles and Transaction Model”と4.1.2節“Command Argument Syntax”によれば、Quoted-stringを必要とするメールボックス、大文字小文字を区別するローカル部をもつメールボックスを定義することは、相互運用性を妨げるため、避けるべきであると定義されている。
  6. ^ RFC 5321 4.1.2節“Command Argument Syntax”によれば、quoted-string形式が要求されるローカル部をもつメールボックスを定義することは、相互運用性を妨げるため、避けるべきである。
  7. ^ 但し、rfc976 https://datatracker.ietf.org/doc/html/rfc976 UUCP Mail Interchange Format Standard では、( ! でホスト名をつないでメールアドレスを表現する) bang path がある。bang path の例としては hosta!hostb!user などがある。
  8. ^ RFC 5322 Internet Message Format,IETF, 2008 https://www.rfc-editor.org/rfc/rfc5322.txt
  9. ^ a b RFC 5321 4.5.3.1節“Size limits and minimums”
  10. ^ RFC 5321 3.6節“Relaying and Mail Routing”
  11. ^ RFC 5321は実在のIPアドレスで例示しているが、ここでは例示用のIPアドレスを使った。
  12. ^ smtp_quote_rfc821_envelope”パラメータを“no”に設定する(Postfix設定パラメータ”. Postfixのぺーじ (2007年6月2日). 2007年12月8日閲覧。参照)。
  13. ^ Crocker, D. (May 1997), Mailbox Names for Common Services, Roles and Functions, RFC 2142 

関連項目

編集