无须SMTP服务器中转直接发送电子邮件
2009-01-21 20:00:52 来源:WEB开发网剖析邮件传送过程
废话说太多请别介意,现在言归正传,要直接将邮件送到对方(POP或IMAP)服务器上,而不经过SMTP邮件服务器转交,其实也不难,你只要改用Unix/Linux操作系统,直接SendMail命令就能完成,但在Windows下想要实现这个功能恐怕得花一点心思了。我们首先要从协议RFC821 - Simple Mail Transfer Protocol入手来分析。
首先我们看一下Email的递送过程:
邮件原文 → 编码 → SMTP客户端 → SMTP转交服务器 → 远程SMTP服务器(对方邮局)。
“特快专递”的实现思路
邮件编码后被递送到一个SMTP转交服务器上,该服务器对信件分检(到同一邮局的被放在一起)后,根据优先级以及信件的先后次序被发送到远程邮局的SMTP服务器上。换句话说,只要我们知道了SMTP转交服务器是如何确定远程邮局SMTP服务器的地址的,就可以直接递送到远程邮局服务器。SMTP转交服务器又是知道远程邮局的地址呢?这就是域名解析所完成的工作了,就好比我们在IE浏览器输入“www.viction.net”这个域名,IE浏览器又如何知道目标服务器的IP地址呢?也是域名解析服务器的功劳。
电子邮件地址由两部分组成,例如:chrys@163.com,这里的chrys是邮箱名(即用户名,一个用户对应一个邮箱),163.com是邮箱服务器地址,邮箱名和邮箱服务器地址之间以“@”作为分隔。
我们只要向域名服务器发送查询“163.com”的远程邮局服务器地址便可找到远程邮局SMTP服务器的IP 地址,该查询指令被称作MX(Mail Exchange)邮件交换服务器的地址查询。远程邮局SMTP服务器的地址可能不止一个,这时,你可根据信件优先级的不同来选择对应的远程邮局,我为了安全起见会对每一个远程邮局服务器按照等级高低逐一尝试,只要将邮件成功地发送到其中一个邮局我们的任务就完成了。
更多精彩
赞助商链接