擅长:python、mysql、java
<p>我的答案中没有代码,我想描述一下过程,并着重介绍错误处理。在</p>
<p>电子邮件地址的格式为<code>user@domain.com</code></p>
<p>要检查域部分,必须从DNS获取MX记录。如果(且仅当)没有MX,则应使用A记录。不过,我认为这是一个配置错误的邮件系统。在</p>
<p>在进行DNS查找时,可能会出现两组错误:暂时性错误(例如超时)和持久性错误(例如NXDOMAIN)。在出现暂时性错误的情况下,稍后应重复查找。在</p>
<p>通常有多个MX记录。它们具有数字优先级。数字越小=优先级越高。邮件总是从较高的MX号码传送到较低的MX号码。在</p>
<p>为了检查地址的用户部分,您必须联系具有最高优先级的服务器。所有其他服务器都是备份服务器,很常见的是它们不能访问用户数据库。他们只接受自己域名的所有邮件。在</p>
<p>你的寄件人地址很有可能会因为任何原因被拒绝。使用为错误消息保留的空地址<code><></code>。在</p>
<p>同样,在与SMTP服务器通信时存在两组错误。幸运的是,SMTP响应有一个3位数的代码。第一个数字是2表示成功,4表示暂时性错误(稍后重试),5表示永久性失败。在</p>
<p>最后要注意的是:如果你不打算真正发送电子邮件,那么在退出之前先做一个smtprset。在</p>