有些用户在我的系统中输入了一些电子邮件地址。我想确保他们的电子邮件地址来自有效的 TLD。根据在 [http://en.wikipedia.org/wiki/List_of_Internet_top-level_domains]哪些 TLD 适用于电子邮件地址?它们都有效吗?还是只有具有特定 IDN、DNSSEC 或 SLD 值的 TLD 才有效?
如果这个问题很愚蠢,我很抱歉。我只是想了解哪些 TLD 对电子邮件地址有效。感谢您的帮助!
答案1
有效 TLD 列表(来自 ICANN)可在此处找到. 这是最权威的说法。
# Version 2012122000, Last Updated Thu Dec 20 07:07:02 2012 UTC
AC
AD
AE
AERO
AF
AG
AI
AL
AM
AN
AO
AQ
AR
ARPA
AS
ASIA
AT
AU
AW
AX
AZ
BA
BB
BD
BE
BF
BG
BH
BI
BIZ
BJ
BM
BN
BO
BR
BS
BT
BV
BW
BY
BZ
CA
CAT
CC
CD
CF
CG
CH
CI
CK
CL
CM
CN
CO
COM
COOP
CR
CU
CV
CW
CX
CY
CZ
DE
DJ
DK
DM
DO
DZ
EC
EDU
EE
EG
ER
ES
ET
EU
FI
FJ
FK
FM
FO
FR
GA
GB
GD
GE
GF
GG
GH
GI
GL
GM
GN
GOV
GP
GQ
GR
GS
GT
GU
GW
GY
HK
HM
HN
HR
HT
HU
ID
IE
IL
IM
IN
INFO
INT
IO
IQ
IR
IS
IT
JE
JM
JO
JOBS
JP
KE
KG
KH
KI
KM
KN
KP
KR
KW
KY
KZ
LA
LB
LC
LI
LK
LR
LS
LT
LU
LV
LY
MA
MC
MD
ME
MG
MH
MIL
MK
ML
MM
MN
MO
MOBI
MP
MQ
MR
MS
MT
MU
MUSEUM
MV
MW
MX
MY
MZ
NA
NAME
NC
NE
NET
NF
NG
NI
NL
NO
NP
NR
NU
NZ
OM
ORG
PA
PE
PF
PG
PH
PK
PL
PM
PN
POST
PR
PRO
PS
PT
PW
PY
QA
RE
RO
RS
RU
RW
SA
SB
SC
SD
SE
SG
SH
SI
SJ
SK
SL
SM
SN
SO
SR
ST
SU
SV
SX
SY
SZ
TC
TD
TEL
TF
TG
TH
TJ
TK
TL
TM
TN
TO
TP
TR
TRAVEL
TT
TV
TW
TZ
UA
UG
UK
US
UY
UZ
VA
VC
VE
VG
VI
VN
VU
WF
WS
XN--0ZWM56D
XN--11B5BS3A9AJ6G
XN--3E0B707E
XN--45BRJ9C
XN--80AKHBYKNJ4F
XN--80AO21A
XN--90A3AC
XN--9T4B11YI5A
XN--CLCHC0EA0B2G2A9GCD
XN--DEBA0AD
XN--FIQS8S
XN--FIQZ9S
XN--FPCRJ9C3D
XN--FZC2C9E2C
XN--G6W251D
XN--GECRJ9C
XN--H2BRJ9C
XN--HGBK6AJ7F53BBA
XN--HLCJ6AYA9ESC7A
XN--J6W193G
XN--JXALPDLP
XN--KGBECHTV
XN--KPRW13D
XN--KPRY57D
XN--LGBBAT1AD8J
XN--MGB9AWBF
XN--MGBAAM7A8H
XN--MGBAYH7GPA
XN--MGBBH1A71E
XN--MGBC0A9AZCG
XN--MGBERP4A5D4AR
XN--MGBX4CD0AB
XN--O3CW4H
XN--OGBPF8FL
XN--P1AI
XN--PGBS0DH
XN--S9BRJ9C
XN--WGBH1C
XN--WGBL6A
XN--XKC2AL3HYE2A
XN--XKC2DL3A5EE0H
XN--YFRO4I67O
XN--YGBI2AMMX
XN--ZCKZAH
XXX
YE
YT
ZA
ZM
ZW
答案2
更新:我会检查两个字符的 TLD 以及 com、org、net、edu、gov 和 mil。除了通常发送垃圾邮件的国家/地区外,这些都会被接受。在检查 TLD 时,该域已通过反向 DNS 合规性验证。无效的 TLD 将无法通过 rDNS 检查。
我见过的少数新(虚荣)顶级域名一直在发送垃圾邮件。这些域名经常被用来进行雪鞋垃圾邮件攻击。
仅验证电子邮件地址的 TLD 可能只能发现少数错误。检查地址的域部分的 MX 会更成功。验证电子邮件地址(而不是发送选择加入电子邮件)可能会导致您被阻止。
原来的: 有效 TLD 列表随时可能更改,因此您需要能够快速更新列表。一旦 TLD 开始出售,跟踪将变得非常困难。
通常在这种情况下,我会使用 DNS 验证域名。您可能需要检查记录MX
以排除像 这样的域名www.example.com
。虽然只拥有邮件域名的记录是有效的A
,但大多数有效的电子邮件域名都会有一个或多个MX
记录。此外,许多 TLD 注册商会返回不存在的子域名的记录。对于有效域名,响应应该非常快。无效或缺失的域名可能需要一段时间才能返回,因为解析器会超时。根据您的解析器,如果您检查而不是A
,结果可能会更快。example.com.
example.com
答案3
我知道这是一个老问题,但是在谷歌上搜索 TLD 列表时这个问题排名很高,所以我想我会发布一个更新的答案。
与@BillThor 一样,我也喜欢使用 DNS 检查(例如,email.split('@')[1]
验证电子邮件时是否有名称的 MX 记录。
目的不是强迫用户输入真实的电子邮件地址……在这种情况下,您通常会发送一封验证电子邮件。相反,您是在尝试帮助用户,以防出现拼写错误等……进行尽可能多的验证,让用户的生活更轻松。任何不想提供真实电子邮件的用户都有许多免费的“一次性电子邮件”服务可用来避免这种情况。
对于常规域名验证(与电子邮件验证相反),检查 TLD 时,请务必记住某些 TLD 有不同的规则。这就是 iana 列表不理想的地方。例如,domain.co.uk 是一个有效域名。domain.uk 不是。 uk
在 iana 列表中,co.uk
不是。
更新:好像今年除了 .co.uk 之外还允许使用 .uk...但我将其作为一个例子。
这是因为每个 TLD 都由 iana 分配给负责管理该 TLD 的特定“注册中心”,并且他们可以创建自己的规则(例如 .co.uk 示例)。
我发现验证 TLD 的最佳来源是这里:https://publicsuffix.org/ 您可以非常轻松地编写每日/每周/每月更新脚本,然后针对列表运行代码。此列表包括公共和私有 TLD 以及每个 TLD 的一些基本对应规则。
欲了解更多背景信息,您还可以查看这个过时的 Mozilla 维基页面:https://wiki.mozilla.org/TLD_List
当然,仅验证 TLD 并不意味着该域名有效、已注册或输入正确……但最初的问题是关于确定域名是否具有有效的 TLD。
除此之外...您应该验证/核实电子邮件吗?
如果您收集用户的电子邮件(例如,表单中的必填字段),那么您真的应该验证并确认电子邮件是否属于用户(例如,通过发送带有短代码的电子邮件供用户进入您的网站)。
- 验证它看起来/闻起来像一个正确的电子邮件地址(例如,顶级域名/域名是否有效并且具有 MX 记录)。如果您的用户在表单中出现拼写错误,这会立即向您的用户提供反馈。
- 如果您打算存储该电子邮件并将其用于登录、营销等,请验证该电子邮件。
电子邮件验证是许多公司懒得去做的。我的“蜜罐” Gmail 地址收到来自各大公司的大量营销和交易电子邮件,这些邮件使用各种语言,用户错误地向他们提供了我的电子邮件地址,而公司没有对其进行验证。许多此类交易电子邮件都没有包含“这不是我,请删除我的电子邮件地址”链接……他们说,由于你们的关系,他们有权向你发送交易电子邮件(没有……他们收到了错误的地址,也没有进行验证)。
这不仅在某些司法管辖区存在法律问题,而且可能对客户的隐私构成巨大风险。当然,对于我这个收件人来说,这也非常烦人。以下是一些不验证电子邮件时会发生什么的真实示例(这是我脑海中浮现的许多示例中的几个)...
- 美国本田。有人买了一辆新的本田 Pilot 并给了我电子邮件地址。我收到本田的邀请,登录他们的 hondacare 帐户来管理在线服务、启用本田应用程序来解锁车辆等。
- macys。订单确认包括直接(无需登录)链接来管理和取消订单。包括姓名、地址、电话和部分信用卡详细信息。
- 坦桑尼亚标准银行。交易通知、余额通知、个人联系信息。
- SNCF(法国铁路系统) - 我收到电子邮件,允许我查看、编辑、取消旅客的车票。
- 大量我没有报名参加的营销活动。
如果不联系每家公司的支持团队,弄清楚如何与真人交谈,并详细解释我不是客户,他们需要从客户数据库中删除我的电子邮件,就没有简单的方法可以删除我的数据。我不再麻烦了。支持人员可能会删除我的电子邮件,但他们不会解决问题以防止其他人也遭遇同样的情况。
我是一个好心人,但对于身份窃贼来说,这是一个金矿,他们可以使用 Gmail 注册许多常见的“拼写错误”电子邮件地址,然后等待不验证电子邮件的公司泄露数据。
不要成为那些公司之一。务必验证您的电子邮件地址。如果您无法在某个短时间内(几天)验证它们,请从数据库中删除它们并且不要使用它们(即除了验证电子邮件之外不再有电子邮件)。如果您不愿意验证电子邮件地址...首先不要收集它们。