.net邮件发送问题

来源:互联网 发布:白人女友啪啪 知乎 编辑:程序博客网 时间:2024/06/08 09:44

注意:下面的方法可供参考,后来发现因为模拟环境使用的邮件服务器地址的问题,用的是开发环境的地址。

在使用System.Net.Mail发送邮件时,遇到一个问题,当发送的邮箱地址不为自己公司邮箱地址的时候会出现如下如下错误:

Mailbox unavailable. The server response was: 5.7.1 Unable to relay fortest@dongbao.com.cn

百度了一个解决方案,是设置iis上虚拟邮件服务的。

http://stackoverflow.com/questions/3165721/mailbox-unavailable-the-server-response-was-5-7-1-unable-to-relay-for-abcxyz

设置了但是还是没有效果。

又百度了一个解决方法,是在创建SmtpClient时,指定发送邮件使用IIS拾取目录进行发送。主要步骤就是先将邮件放到【PickUp】目录下,然后IIS进行发送。

        public  EMail()        {            objSmtpMail = new SmtpClient(PublicConfig.SmtpServer, Convert.ToInt16(PublicConfig.SmtpPort));            objSmtpMail.UseDefaultCredentials = true;//设置发送邮件通过拾取目录的方式            objSmtpMail.DeliveryMethod = SmtpDeliveryMethod.PickupDirectoryFromIis;        }

不过在配置好后,发现在模拟环境是可以的,但是本地邮件发送成功但是并没有收到,经过查找发现没收到的邮件都跑到【Queue】这个文件夹里面了,通过对比后发现,还需要在iis里面设置一个中继邮件地址,就是通过这个地址发送邮件。如下图,设置一个可以使用的中继主机即可。




0 0