我在本地IIS网站,是无法从System.Net.Mail发送邮件使用SmtpClient邮件运行一个asp.net MVC应用程序。我试图将邮件发送到我的hotmail地址,我去一个套接字异常。任何想法是什么问题呢?

using(var message = new MailMessage())
            {
                message.From = new MailAddress(AdminEmail);
                message.To.Add(new MailAddress(to));
                message.Subject = subject;
                message.Body = body;
                message.IsBodyHtml = false;

                var mailClient = new SmtpClient();
                mailClient.Send(message);
            }

下面是例外:

{System.Net.Sockets.SocketException: No connection could be made because the target machine actively refused it 127.0.0.1:25
   at System.Net.Sockets.Socket.DoConnect(EndPoint endPointSnapshot, SocketAddress socketAddress)
   at System.Net.Sockets.Socket.InternalConnect(EndPoint remoteEP)
   at System.Net.ServicePoint.ConnectSocketInternal(Boolean connectFailure, Socket s4, Socket s6, Socket& socket, IPAddress& address, ConnectSocketState state, IAsyncResult asyncResult, Int32 timeout, Exception& exception)}

我觉得默认的应用程序池没有获得intepub \ wwwroot的。这里是试图测试连接时出现错误:

在服务器被配置为使用通过身份验证带有内置帐户访问指定的物理路径。但是,IIS管理器无法验证是否内置帐户可以访问。确保应用程序池标识具有读取访问物理路径。如果此服务器加入到域,并且应用程序池标识是网络服务或本地系统,验证\ $具有读访问物理路径。然后重新测试这些设置。

有帮助吗?

解决方案

根据您的回答上面乔我的意见

,你没有在本地计算机上启用SMTP。 Vista中不附带SMTP。

因此,你要么必须安装一个第三方SMTP应用程序,将在Vista上运行,或使用其他应用程序通过发送,在这种情况下,您的Hotmail帐户可能允许您通过它发送传出。我不使用Hotmail的所以不知道这是否会或没有,但它应该是这样的smtp.hotmail.com和您的凭据。我的主要帐户是Gmail帐户,所以可通过smtp.gmail.com,当然,我的凭据使用它。

其他提示

有关在本地机器上的发展,您也可以使用投递文件夹:

http://www.codersbarn.com /post/2008/11/30/ASPNET-Contact-Form.aspx

而不是试图设置SMTP本地,你为什么不只是配置SMTP连接直接通过Hotmail的发送,只需添加配置元素的web.config文件,使一切。

修改

我觉得这篇文章我写了一段时间背部可能会帮助你。

尝试显式设置SmtpClient的主机。

例如:结果 SmtpClient的MailClient =新SmtpClient();

mailClient.Host = “127.0.0.1”;

mailClient.Send(消息);

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top