邮件无法发送到 SMTP 服务器。传输错误代码为 0x80040217

来源:互联网 发布:windows rs1好用吗 编辑:程序博客网 时间:2024/06/01 10:09

轉自: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 sp2IIS 5.1下测试通过,而且是ADL上网的。如果您是其他环境,请留心。不过原理就SMTP是通过邮箱服务器来中转的。

这个网址还提供了其他发邮件问题的解决方法http://www.systemwebmail.com/faq/3.8.aspx,不过是E文的。关于他的翻译见的我的接下来的BLOG

原创粉丝点击