今天在服务器上搭建了一个SMTP虚拟服务器,用于发送电子邮件。本来原先使用的是126的邮箱smtp服务进行发送,但是后来才发现这个服务每天的发送量是有限制的,所以也就作罢,自己搭一个SMTP服务器来发送邮件吧。
搭建SMTP虚拟服务器很简单,只需要在IIS组件中增加SMTP Service即可:
安装完成之后,在计算机管理中,查看SMTP虚拟服务器的属性:
先选择使用的IP地址,然后设置“访问”中的“访问控制”:
为了提高安全性,可以设置成匿名访问,否则明文在网上传输不安全,然后再设置成只允许本机使用SMTP服务。
再设置“连接控制”,设置成只允许本机访问:
最后设置“中继限制”:
如果不设置中继的计算机为本机地址,则发送邮件时会返回以下错误,550 5.7.1 Unable to relay for :
这就把SMTP邮件服务器的设置完成了,可以开始发送邮件测试了。
测试时选择发件人为:xxxxxxx@126.com,收件人选择为:yyyyyyyy@126.com,发送时提示发送成功,但是邮件一会儿就被退回来了,错误信息如下:
553 Requested action not taken: no smtp MX only,mx7,JcmowEBJG0vqkVdSFTfaBA--.1408S2 1381470699
这个错误大概就是因为发件人和收件人在同一个域中(这里为126.com),但是又选择了另一个SMTP服务器进行发送,所以就被126退回来了。
所以就随便填写一个其他的发件人邮箱地址,比如xxxxx@other126.com,重新测试,成功收到邮件。
所以:
1,出现553, no smtp MX only的错误,就修改发件人邮件地址使用另外一个域。
2,出现550, Unable to relay for的错误,就设置中继的计算机。