我并不是在问如何完整验证电子邮件。
我只想知道电子邮件地址中用户名
和服务器
部分允许使用哪些字符。这可能有些简化了,也许电子邮件地址可以采用其他形式,但我不关心。我只是询问这个简单的形式:用户名@服务器
(例如 wild.wezyr@best-server-ever.com),并且两部分允许使用哪些字符。
我并不是在问如何完整验证电子邮件。
我只想知道电子邮件地址中用户名
和服务器
部分允许使用哪些字符。这可能有些简化了,也许电子邮件地址可以采用其他形式,但我不关心。我只是询问这个简单的形式:用户名@服务器
(例如 wild.wezyr@best-server-ever.com),并且两部分允许使用哪些字符。
addr-spec = local-part "@" domain ; global address
local-part = word *("." word) ; uninterpreted
; case-preserved
domain = sub-domain *("." sub-domain)
sub-domain = domain-ref / domain-literal
domain-ref = atom ; symbolic reference
通常情况下,维基百科有一篇不错的关于电子邮件地址的文章:
除了ASCII字符外,截至2012年你还可以使用国际字符以上电子邮件地址的本地部分可以使用以下任何ASCII字符:
- 大写和小写拉丁字母
A
到Z
和a
到z
;- 数字
0
到9
;- 特殊字符
!#$%&'*+-/=?^_`{|}~
;- 点号
.
,但不能是第一个或最后一个字符,除非加上引号,并且也不能连续出现,除非加上引号(例如,John..Doe@example.com
不允许,但"John..Doe"@example.com
允许);- 空格和
"(),:;<>@[\]
字符是有限制的(只允许在引号字符串内使用,如下面的段落所述,并且必须在反斜杠前面加上反斜杠或双引号);- 注释允许在本地部分的括号两端使用;例如,
john.smith(comment)@example.com
和(comment)john.smith@example.com
都等同于john.smith@example.com
。
U+007F
,以UTF-8编码,如RFC 6532规范所述并在维基百科上解释。请注意,截至2019年,这些标准仍被标记为建议性的,但正在缓慢推出。本规范中的更改实质上将国际字符添加为有效的字母数字字符(atext),而不影响允许和限制特殊字符的规则,如!#
和@:
。domain
部分定义如下:ann..other.@example.com
不是有效的电子邮件地址,但 ann.other@example.com
是有效的,即使它们都使用相同的字符。 - Mark Pim注意!这个帖子中有一堆知识已经过时了。
为了避免在当前和未来的世界中,以及世界上任何地方误报实际电子邮件地址,您需要至少了解RFC 3490,“应用程序中的国际化域名(IDNA)”的高级概念。我知道美国人可能对此不太了解,但它已经在全球范围内(主要是非英语占主导地位的地区)得到广泛和迅速增长的使用。
要点是您现在可以使用像mason@日本.com和wildwezyr@fahrvergnügen.net这样的地址。不,这还不与所有现有技术兼容(正如许多人所抱怨的那样,即使是简单的qmail风格的+ident地址也经常被错误拒绝)。但是有一个RFC,有一个规范,现在由IETF和ICANN支持,并且更重要的是,目前有大量正在使用这种改进的实现。
直到我回到日本并开始看到像hei@やる.ca和Amazon URL这样的电子邮件地址时,我自己对这个发展了解不多。
http://www.amazon.co.jp/エレクトロニクス-デジタルカメラ-ポータブルオーディオ/b/ref=topnav_storetab_e?ie=UTF8&node=3210981
我知道您不想要链接到规范,但如果您仅依赖于互联网论坛上黑客过时的知识,您的电子邮件验证器将拒绝非英语用户越来越希望使用的电子邮件地址。对于这些用户,这样的验证将像我们所有人讨厌的普遍愚蠢表格一样令人讨厌,无法处理“+”或三部分域名等内容。电子邮件地址的格式为:local-part@domain-part
(最多64@255个字符,总共不超过256个字符)。
local-part
和domain-part
可以有不同允许字符集,但这并不是全部,因为还有更多规则。
通常,本地部分可以使用这些ASCII字符:
abcdefghijklmnopqrstuvwxyz
,ABCDEFGHIJKLMNOPQRSTUVWXYZ
,0123456789
,!#$%&'*+-/=?^_`{|}~
,.
(不是第一个或最后一个字符,除非加引号 或 不重复),"(),:;<>@[\]
(有一些限制),()
(在括号内允许,例如(comment)john.smith@example.com
)。域名部分:
abcdefghijklmnopqrstuvwxyz
,ABCDEFGHIJKLMNOPQRSTUVWXYZ
,0123456789
,-
(不是第一个或最后一个字符),jsmith@[192.168.2.1]
或jsmith@[IPv6:2001:db8::1]
。这些电子邮件地址是有效的:
prettyandsimple@example.com
very.common@example.com
disposable.style.email.with+symbol@example.com
other.email-with-dash@example.com
x@example.com
(本地部分只有一个字母)"much.more unusual"@example.com
"very.unusual.@.unusual.com"@example.com
"very.(),:;<>[]\".VERY.\"very@\ \"very\".unusual"@strange.example.com
example-indeed@strange-example.com
admin@mailserver1
(无顶级域的本地域名)#!$%&'*+-/=?^_`{}|~@example.org
"()<>[]:,;@\\"!#$%&'-/=?^_`{}| ~.a"@example.org
" "@example.org
(引号中间有空格)example@localhost
(从本地主机发送)example@s.solutions
(请参阅互联网顶级域列表)user@com
user@localserver
user@[IPv6:2001:db8::1]
以下是无效示例:
Abc.example.com
(没有@
字符)A@b@c@example.com
(引号外只允许一个@
)a"b(c)d,e:f;gi[j\k]l@example.com
(此本地部分中的特殊字符均不在引号外允许)just"not"right@example.com
(引号中的字符串必须由点分隔或是唯一构成本地部分的元素)this is"not\allowed@example.com
(空格、引号和反斜杠只有在引号内并且前面有反斜杠时才允许存在)this\ still\"not\allowed@example.com
(即使转义(前面有反斜杠),空格、引号和反斜杠仍必须包含在引号内)john..doe@example.com
(@
之前有两个点号);(附带说明:Gmail会通过此类地址)john.doe@example..com
(@
之后有两个点号)来源:维基百科的电子邮件地址页面
Perl's RFC2822正则表达式用于验证电子邮件地址:
(?:(?:\r\n)?[ \t])*(?:(?:(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t]
)+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:
\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(
?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[
\t]))*"(?:(?:\r\n)?[ \t])*))*@(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\0
31]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\
](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+
(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:
(?:\r\n)?[ \t])*))*|(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z
|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)
?[ \t])*)*\<(?:(?:\r\n)?[ \t])*(?:@(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\
r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[
\t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)
?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t]
)*))*(?:,@(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[
\t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*
)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t]
)+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*))*)
*:(?:(?:\r\n)?[ \t])*)?(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+
|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r
\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:
\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t
]))*"(?:(?:\r\n)?[ \t])*))*@(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031
]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](
?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?
:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?
:\r\n)?[ \t])*))*\>(?:(?:\r\n)?[ \t])*)|(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?
:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?
[ \t]))*"(?:(?:\r\n)?[ \t])*)*:(?:(?:\r\n)?[ \t])*(?:(?:(?:[^()<>@,;:\\".\[\]
\000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|
\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>
@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"
(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])*))*@(?:(?:\r\n)?[ \t]
)*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\
".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?
:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[
\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*))*|(?:[^()<>@,;:\\".\[\] \000-
\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(
?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])*)*\<(?:(?:\r\n)?[ \t])*(?:@(?:[^()<>@,;
:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([
^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\"
.\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\
]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*))*(?:,@(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\
[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\
r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\]
\000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]
|\\.)*\](?:(?:\r\n)?[ \t])*))*)*:(?:(?:\r\n)?[ \t])*)?(?:[^()<>@,;:\\".\[\] \0
00-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\
.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,
;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?
:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])*))*@(?:(?:\r\n)?[ \t])*
(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".
\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[
^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]
]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*))*\>(?:(?:\r\n)?[ \t])*)(?:,\s*(
?:(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\
".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])*)(?:\.(?:(
?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[
\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t
])*))*@(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t
])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(?
:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|
\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*))*|(?:
[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\
]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])*)*\<(?:(?:\r\n)
?[ \t])*(?:@(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["
()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)
?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>
@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*))*(?:,@(?:(?:\r\n)?[
\t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,
;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t]
)*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\
".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*))*)*:(?:(?:\r\n)?[ \t])*)?
(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".
\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])*)(?:\.(?:(?:
\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\[
"()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])
*))*@(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])
+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(?:\
.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z
|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*))*\>(?:(
?:\r\n)?[ \t])*))*)?;\s*)
针对RFC2822地址的完整正则表达式仅为3.7k。
电子邮件地址的正式定义在以下文档中:
相关内容:
a@abc(bananas)def.com
这样的可用RFC822地址但无法发送的地址。因此,许多电子邮件验证器正在针对错误的内容进行验证。 - Synchro电子邮件地址的本地部分可以使用任何以下ASCII字符:
- 大小写英文字母(a-z,A-Z)
- 数字0到9
- 字符!#$%&'* + - / =?^ _ ` { | } ~
- 字符.(点,句号,句点),但不能是第一个或最后一个字符,并且也不能连续出现两次以上。
此外,引用字符串(即:“John Doe”@example.com)是允许的,因此允许那些本来被禁止的字符,不过它们并不常用。RFC 5321还警告“期望接收邮件的主机应避免定义需要(或使用)引用字符串形式的本地部分的邮箱”。
在讨论电子邮件地址的有效本地部分时,被接受的答案提到了维基百科文章,但维基百科不是这方面的权威。 IETF RFC 3696则是这方面的权威文件,应参考第5页的第3节:电子邮件地址限制:
现代电子邮件地址由一个“本地部分”和一个“域部分”(完全合格的域名)组成,中间用at-sign(“@”)隔开。域��分的语法与上一节中的语法相似。该节中指出的有关过滤和名称列表的问题同样适用于电子邮件环境中使用的域名。域名也可以用方括号中的IP地址替换,但强烈不建议除了测试和故障排除之外的其他情况下使用。
本地部分可以使用下面描述的引号约定来显示。在实践中很少使用引号形式,但对于某些合法目的而言是必需的。因此,在过滤例程中不应拒绝引号形式,而应将其传递给电子邮件系统以供目标主机评估。
确切的规则是任何ASCII字符(包括控制字符)都可以出现在引号��或引用字符串中。当需要引用时,使用反斜杠字符来引用下一个字符。例如:
Abc\@def@example.com
是一个有效的电子邮件地址格式。空格也可以出现,例如
Fred\ Bloggs@example.com
反斜杠字符也可以用来引用自身,例如:
Joe.\\Blow@example.com
除了使用反斜杠字符进行引用外,通常也可以使用传统的双引号字符来包含字符串。例如:
In addition to quoting using the backslash character, conventional double-quote characters may be used to surround strings. For example
"Abc@def"@example.com "Fred Bloggs"@example.com
第一段中提到的前两个例子的替代形式。这些带引号的形式很少被推荐,在实践中也不常见。但是,如上所述,处理电子邮件地址的应用程序必须支持这些形式。特别是,带引号的形式经常出现在与其他系统和环境转换相关的地址上;这些转换要求仍然存在,而且由于接受用户提供的电子邮件地址的系统不能“知道”该地址是否与旧系统相关联,因此必须接受并传递这些地址形式到电子邮件环境中。
没有引号时,本地部分可以由任何字母字符、数字或任何特殊字符组合而成。
! # $ % & ' * + - / = ? ^ _ ` . { | } ~
句点(“.”)也可能出现,但不能用于开始或结束本地部分,也不能连续出现两个或更多个句点。换句话说,任何ASCII图形(可打印)字符,除了at符号(“@”),反斜杠,双引号,逗号或方括号之外,都可以不带引号出现。如果要显示这些被排除的字符中的任何一个,则必须进行引用。例如表单:
user+mailbox@example.com customer/department=shipping@example.com $A12345@example.com !def!xyz%abc@example.com _somename@example.com
像其他人一样,我提交了一个正则表达式,可以用于验证PHP和JavaScript的电子邮件地址:
are valid and are seen fairly regularly, but any of the characters listed above are permitted.
/^[a-z0-9!'#$%&*+\/=?^_`{|}~-]+(?:\.[a-z0-9!'#$%&*+\/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-zA-Z]{2,}$/i
谷歌在其gmail.com地址上做了一件有趣的事情。Gmail.com地址仅允许字母(a-z),数字和点号(忽略点号)。例如,pikachu@gmail.com与pi.kachu@gmail.com相同,这两个电子邮件地址将发送到同一个邮箱。PIKACHU@gmail.com也会投递到同一个邮箱。
因此,回答这个问题有时取决于实现者希望遵循多少RFC标准。谷歌的gmail.com地址风格与标准兼容。他们这样做是为了避免不同的人使用类似的电子邮件地址导致混淆,例如:
*** gmail.com accepting rules ***
d.oy.smith@gmail.com (accepted)
d_oy_smith@gmail.com (bounce and account can never be created)
doysmith@gmail.com (accepted)
D.Oy'Smith@gmail.com (bounce and account can never be created)
维基百科链接是关于电子邮件地址通常允许什么的好参考。 http://en.wikipedia.org/wiki/Email_address
{john'doe}@my.server
的电子邮件,也在 hMail 服务器上进行了测试。 - Piotr Kula{piotr'kula}@kula.solutions
发送电子邮件来测试您的客户端 - 如果它能正常工作,您将会收到一个漂亮的自动回复。否则,什么也不会发生。 - Piotr Kula检查是否包含@和.,然后发送电子邮件进行验证。
20%的网站仍然无法使用我的.name电子邮件地址,因为有些人在验证电子邮件时出了问题,或者因为该地址早于新地址有效期。
名称:
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!#$%&'*+-/=?^_`{|}~.
服务器:
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-.
<>
和 []
怎么办?例如:"()<>[]:,;@\\\"!#$%&'-/=?^_
{}| ~.a"@example.org`? - kenorb
"hello world"@example.com
是合法的。 - user253751