轉自:http://www.cnblogs.com/shenj/archive/2008/09/11/1289491.html
邮件无法 发送到 SMTP 服务器。传输错误代码为 0x80040217
C#上试了很久都发不了邮件.. 最后找到这个.有其他方法的留言.
邮件无法发送到 SMTP 服务器。传输错误代码为 0x80040217。服务器响应为 not available
行 143: SmtpMail.SmtpServer = "smtp.21cn.com";
行 144: //发送邮件
行 145: SmtpMail.Send(mailMsg);
行 146: #endregion
行 147 : Response.Write("<script language=javascript>alert(' 发送成功,我们会在三个工作日内给您做出回复 !');");
【解 决方法 】 1. make sure you properly configured your SMTP server in Internet Service Manager
2. try
SmtpMail.SmtpServer = "127.0.0.1";
or some other mail server, but you might need to grant ASPNET more permissions, for example, make ASP.NET runs under SYSTEM by changing machine.config
以上是思归回答,回答当然是正确!不要再相 信网上其他的是是而非的回答了,归根到底,问题的关键就是没有SMTP服务响应(大家可以了解一下SMTP协议),其实出错的提示已说的很清楚了,“服务 器响应为 not available ”,没有本地 SMTP 服务中转到远程的邮箱 服务器,所以思归建意你 SmtpMail.SmtpServer = "127.0.0.1"; 来中转,但很快会现下面的问题。你不要着急,下面也会提出解决的方法。
服 务器拒绝了一个或多个收件人地址。服务器响应为: 550 5.7.1 Unable to relay for david.weihw@gmail.com
异常详细信息 : System.Runtime.InteropServices.COMException: 服务器拒绝了一个或多个收件人地址。服务器响应为 : 550 5.7.1 Unable to relay for david.weihw@gmail.com
源错误 :
行 199: SmtpMail.SmtpServer="127.0.0.1"; 行 200:// SmtpMail.SmtpServer="smtp.163.com"; 行 201: SmtpMail.Send(mail); 行 202: 行 203: ret=true; |
【解决方法 】
打开 IIS 服务器,默认 SMTP 虚拟服务器 —> 属性
如下图:
添加可以通过此虚拟服务进行中继的计算机。
添加可以通过此虚拟服务进行中继的计算机。
以下是在 XP sp2 , IIS 5.1 下测试通过,而且是 ADL 上网的。如 果您是其他环境,请留心。不过原理就 SMTP 是通过邮箱 服务器来中转的。
这个网址还提供了其他发邮件问题的解决方法 http://www.systemwebmail.com/faq/3.8.aspx ,不过是 E 文的。关于他的翻译见的我的接下来的 BLOG