〜規格を満たすであろう書式に関する覚え書き〜
メール関係の仕様って調べるのが結構しんどい。
メールアドレスの最大長は 320バイト。
■RFC3696より
(Application Techniques for Checking and Transformation of Names)
以下のメールアドレスは「正しい」アドレスである。
Abc\@def@example.com
customer/department=shipping@example.com
user+mailbox/department=shipping@example.com
!#$%&'*+-/=?^_`.{|}~@example.com
!def!xyz%abc@example.com
"Abc@def"@example.com (quoted-string)
exsample@[192.0.2.69]
下方互換のため、この様なアドレスでも通さなければならない。
Muhammed.(I am the greatest) Ali @(the)Vegas.WBA
↓
Muhammed.Ali@Vegas.WBA
※コメントはデリミタとして扱われるため(ピリオドやスペースと同じ扱い)、".","@"の前後に配置するのが無難。
実際通るか試して見た
To: テスト送信 aaa(this is test)umihiko.yamahiko@example.co.jp
↓
To: テスト送信 aaa.umihiko.yamahiko@example.co.jp (this is test)
※ "umi(this is test)hiko.yamahiko"@example.co.jp はエラーになった。
■ドメイン名部分には、A-Z0-9と'.','-'のみ
■以下を除外する7bitコード
・特殊文字(「()<>@,;:\".[]」)
・制御文字(0x00−0x1F,0x7F)
・スペース(0x20)
故に
0x21(!),23(#),24($),25(%),26(&),27('),2A(*),2B(+),2D(-),2E(.) ,2F(/)
0x30-0x39(0-9),
0x3D(=),
0x3F(?),
0x41-0x5A(A-Z),
0x5E(^),0x5F(_),0x60(`),
0x61-0x7A(a-z),
0x7b-0x7e({,|,},~),
ただし、qmailの場合、先頭が'-'のメアドはデフォルトでは排除される。