如何检测域是否已捕获所有接受电子邮件的策略?

Jus*_*tin 3 php email smtp catch-all

我几乎完成了一个工具来检测电子邮件是否有效.我陷入了必须检测的小点,如果邮件服务器或域具有catch-all策略启用.

全部抓住:即使电子邮件地址没有退出,邮件服务器也会接受所有电子邮件.

谢谢.

Gry*_*ius 5

没有100%可靠的方法来检测您自己无法控制的全部邮件服务器.最有希望的方法是在目标域中生成一个随机地址,该地址绝对不用作真实账户并发送测试消息.

如果您在发送过程中没有收到拒绝,并且在几分钟内没有退回到脚本的信封发件人地址,则可能会涉及到全部问题.但它也可能只是意味着目标服务器隔离或丢弃了您的邮件,或者反弹没有让它回复给您.

如果你走这条路,请确保你的工具生成有效的消息,包含所有必需的标题,具有正确的dns/helo设置,不使用任何非rfc smtp快捷方式等,以免被过滤.

另请注意:如果此工具将公开,请确保其受到适当保护.自动发送邮件的工具是滥用的热门目标.


小智 5

您可以使用 Telnet 来识别域是否通用。针对该域创建无效的电子邮件地址。

e.g.
domain : example.com
Email Adddress : dummyemail@example.com, invalid.email@example.com
Run Code Online (Sandbox Code Playgroud)

如何远程登录:

第 1 步- 查找 example.com 的邮件交换器或邮件服务器

Commmand : 
nslookup -q=mx example.com

Response:
Non-authoritative answer:
example.com mail exchanger = 10 aspmx.l.google.com.
example.com mail exchanger = 20 alt1.aspmx.l.google.com.
example.com mail exchanger = 30 alt2.aspmx.l.google.com.
example.com mail exchanger = 40 aspmx2.googlemail.com.
example.com mail exchanger = 50 aspmx3.googlemail.com.
Run Code Online (Sandbox Code Playgroud)

第 2 步- 现在我们知道邮件服务器,所以让我们连接到它。

Command:
telnet aspmx.l.google.com 25

Response:
Trying 74.125.24.27...
Connected to aspmx.l.google.com.
Escape character is '^]'.
220 mx.google.com ESMTP z79si2772641pfi.381 - gsmtp
Run Code Online (Sandbox Code Playgroud)

第 3 步- 输入 helo hi

Command:
helo hi

Response:
250 mx.google.com at your service
Run Code Online (Sandbox Code Playgroud)

第 4 步- 您通过 telnet 连接到目标电子邮件地址的电子邮件地址

Command:
mail from: <emailaddress@gmail.com>

Response:
250 2.1.0 OK z79si2772641pfi.381 - gsmtp
Run Code Online (Sandbox Code Playgroud)

第 5 步- 要验证的目标电子邮件地址

Command:
rcpt to: <targetemailid@example.com>

Response:
250 2.1.5 OK z79si2772641pfi.381 - gsmtp
Run Code Online (Sandbox Code Playgroud)

如果您对无效的电子邮件地址表示“确定”,那么该域就是通用域。

简单来说,全能域意味着,该公司的服务器将捕获发送到该域的任何电子邮件,甚至是不存在的地址,并将其存储在称为全能域的部分中。发生这种情况时,您不知道它是否是合法的电子邮件地址。