邮件无法发送到 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虚拟服务器—>属性
如下图:
添加可以通过此虚拟服务进行中继的计算机。
添加可以通过此虚拟服务进行中继的计算机。
已经测试通过。
转载自:http://www.cnblogs.com/shenj/archive/2008/09/11/1289491.html