返回信息流用的是 HtmlEmail 类
不通过发邮件验证的话 还有其他方法么 比如通过服务器返回的信息?
这是一条镜像帖。来源:北邮人论坛 / java / #17248同步于 2011/2/19
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Java机器人发帖
如何验证给定的emai地址是否存在
lockhart
2011/2/19镜像同步6 回复
订阅后,新回复会通过你的通知中心匿名送达。
6 条回复
SMTP工作的流程,当第三步如果服务器返回250时,就说明这个EMAIL地址是真实存在的
(1)建立TCP 连接。
(2)客户端发送HELO命令以标识发件人自己的身份,然后客户端发送MAIL命令;服务器端正希望以OK作为响应,表明准备接收。
(3)客户端发送RCPT命令,以标识该电子邮件的计划接收人,可以有多个RCPT行;服务器端则表示是否愿意为收件人接收邮件。
但是这样做有个问题,现在几乎所有的SMTP服务器都会要求身份认证,也就是你必须拥有一个这个服务器的邮箱才能连接成功,如果是任意的email都想要验证存在性的话,有点困难啊
【 在 lockhart (lockhart) 的大作中提到: 】
: 用的是 HtmlEmail 类
: 不通过发邮件验证的话 还有其他方法么 比如通过服务器返回的信息?
"但是这样做有个问题,现在几乎所有的SMTP服务器都会要求身份认证,也就是你必须拥有一个这个服务器的邮箱才能连接成功,如果是任意的email都想要验证存在性的话,有点困难啊 "这个理解有点问题哈。
我来解释一下:
一般地,对于某个邮箱地址aa@bb.cc,注意,在查找邮件服务器的时候并不是直接解析bb.cc的ip地址,这样的解析是不合法的,而应该由bb.cc去查询mx记录,即得到真正的邮件服务器的ip地址。这样得到真正的邮件服务器之后呢,是不需要身份验证的,这个非常重要,是区分于常规的smtp服务的基本特征。
举个例子:
比如我们现在要自己写个邮件服务器,那么我们现在要往aa@163.com发送邮件。
这时候呢,我们并不是对smtp.163.com的服务器进行投递,这样是不行的,因为需要身份验证。正确的办法是,通过@后面的域名163.com进行mx查询,得到邮件交换记录,
即:163mx02.mxmail.netease.com,对这个服务器进行直接smtp协议交换,就不需要任何验证。
【 在 ox 的大作中提到: 】
: SMTP工作的流程,当第三步如果服务器返回250时,就说明这个EMAIL地址是真实存在的
: (1)建立TCP 连接。
: (2)客户端发送HELO命令以标识发件人自己的身份,然后客户端发送MAIL命令;服务器端正希望以OK作为响应,表明准备接收。
: ...................
这岂不是可以完全无限制的发邮件了。。
【 在 jmpesp (心爱走天涯 ) 的大作中提到: 】
: "但是这样做有个问题,现在几乎所有的SMTP服务器都会要求身份认证,也就是你必须拥有一个这个服务器的邮箱才能连接成功,如果是任意的email都想要验证存在性的话,有点困难啊 "这个理解有点问题哈。
: 我来解释一下:
: 一般地,对于某个邮箱地址aa@bb.cc,注意,在查找邮件服务器的时候并不是直接解析bb.cc的ip地址,这样的解析是不合法的,而应该由bb.cc去查询mx记录,即得到真正的邮件服务器的ip地址。这样得到真正的邮件服务器之后呢,是不需要身份验证的,这个非常重要,是区分于常规
: ...................
【 在 ox 的大作中提到: 】
: 这岂不是可以完全无限制的发邮件了。。
邮件服务器就是这么个原理的哈
只不过有时候会采用一些反垃圾机制
比如查询通过ip逆向解析来验证发送者是否合法等等