报错如下:Can not send email!System.Net.Mail.SmtpException: 发送邮件失败。 ---> System.Net.WebException: 无法连接到远程服务器 ---> System.Net.Sockets.SocketException: 由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败。 210.***.***.***:25
描述:Smtp定时自动发邮件 有时成功 有时失败,过个几分钟 又会发送成功,但是成功几次以后又报端口25错误。但以前在本地服务器时,同样的代码,没有这种情况。
解决办法: 1 首先检查 云端 比如 阿里 腾讯 亚马逊 是否开放了 25端口 或者 发邮件的其他端口 举栗7000端口,没开通的请申请开通。
2 邮件服务器 是否 把 云端 自动发邮件机器的 域名或者IP 加入了白名单
3 邮件服务器 防火墙 是否 开通25端口 或者 发邮件的其他端口
我遇到的情况是:自动发邮件机器在云上、邮件服务器依旧在本地机房, 按照1和2都放开,依旧报错,然后本地邮件服务器防火墙 开通25端口,还是没用。
以前成功 是因为 邮件服务器和定时发邮件的应用服务器都在同一局域网中,不走防火墙,所以没有问题。现在虽然 防火墙开通25端口,但是估计防火墙中有啥特殊判断,所以依旧报错。
折腾了一下午,最后是 新开个端口 绕过本地邮件服务器的 防火墙就好了 ,举个栗子:云端 定时自动发邮件的肉机 发邮件端口改用7000端口 不用25常用端口,然后本地邮件服务器也开通7000端口发邮件,问题解决
//设置邮箱的地址或IP