我并不是在询问完整的电子邮件验证。

我只想知道电子邮件地址的用户名和服务器部分允许使用哪些字符。这可能过于简单化,也许电子邮件地址可以采取其他形式,但我不在乎。我只问这个简单的表格:user-name@server(例如。wild.wezyr@best-server-ever.com)以及两部分中允许的字符。


当前回答

检查@和。然后发送电子邮件让他们验证。

我仍然不能在互联网上20%的网站上使用我的.name电子邮件地址,因为有人搞砸了他们的电子邮件验证,或者因为它早于新地址的有效期。

其他回答

答案是(几乎)全部(7位ASCII)。如果包含规则“…在某些/任何/无条件下允许…”

仅通过查看RFC 5322第17页顶部“域文本”部分中允许文本的几种可能包含规则之一,我们就可以发现:

dtext          =   %d33-90 /          ; Printable US-ASCII
                   %d94-126 /         ;  characters not including
                   obs-dtext          ;  "[", "]", or "\"

本说明中仅有的三个缺失字符用于域文字[]中,以形成引号对\和空白字符(%d32)。使用整个范围32-126(十进制)。类似的要求显示为“qtext”和“ctext”。也允许/使用许多控制字符。RFC 5322第31页第4.1节中出现了一个此类控制字符列表,称为obs NO WS CTL。

obs-NO-WS-CTL  =   %d1-8 /            ; US-ASCII control
                   %d11 /             ;  characters that do not
                   %d12 /             ;  include the carriage
                   %d14-31 /          ;  return, line feed, and
                   %d127              ;  white space characters

如第3.5节开头所述,允许使用所有这些控制字符:

.... MAY be used, the use of US-ASCII control characters (values
     1 through 8, 11, 12, and 14 through 31) is discouraged ....

因此,这样的包含规则“过于宽泛”。或者,在其他意义上,预期规则“过于简单化”。

谷歌用他们的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

姓名:

abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!#$%&'*+-/=?^_`{|}~.

服务器:

abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-.

Gmail只允许+符号作为特殊字符,在某些情况下(.),但Gmail不允许任何其他特殊字符。RFC说你可以使用特殊字符,但你应该避免用特殊字符向Gmail发送邮件。

如维基百科链接所示

电子邮件地址的本地部分可以使用以下任意ASCII字符:大写和小写拉丁字母A至Z和A至Z;数字0至9;特殊字符!#$%&'*+-/=^_`{|}~;点前提是除非被引用,否则它不是第一个或最后一个字符,并且除非被引用(例如。John..Doe@example.com不允许,但允许使用“John…Doe”@example.com);空格和“(),:;<>@[\]字符允许有限制(它们只允许在带引号的字符串中,如下面的段落所述,此外,反斜杠或双引号前面必须有反斜杠);注释允许在本地部分的两端加括号;例如john.smith(注释)@example.com和(注释)john.smith@example.com都相当于john.smith@example.com.除上述ASCII字符外,RFC 6531允许使用U+007F以上的国际字符(编码为UTF-8),尽管邮件系统可能会限制在分配本地部分时使用哪些字符。带引号的字符串可以作为点分隔的实体存在于本地部分中,或者当最外面的引号是本地部分的最外面的字符时(例如,abc.“defghi”.xyz@example.com或“abcdefghixyz”@example.com。相反,abc“defghi”xyz@example.com不是;abc\“def\”也不是ghi@example.com). 但是,引号字符串和字符并不常用。RFC 5321还警告“希望接收邮件的主机应避免定义本地部分需要(或使用)引号字符串格式的邮箱”。本地邮局主管会受到特殊对待,不区分大小写,应转发给域电子邮件管理员。从技术上讲,所有其他本地部件都区分大小写,因此jsmith@example.com和JSmith@example.com指定不同的邮箱;然而,许多组织将大小写字母视为等同字母。尽管在技术上有效的特殊字符范围很广;在实践中,组织、邮件服务、邮件服务器和邮件客户端通常不接受所有这些。例如,Windows Live Hotmail仅允许使用字母数字、点(.)、下划线(_)和连字符(-)创建电子邮件地址。常见的建议是避免使用一些特殊字符,以避免电子邮件被拒绝的风险。