【发布时间】:2013-03-02 23:46:51
【问题描述】:
我有一个小型 tcp 服务器,除其他外,它用于通过 SMTP 服务器发送邮件。
问题是,当我在我的开发机器上运行它时它可以正常工作(远程连接到 smtp 服务器),但是当我在与 SMTP 服务器(Windows Server 2008 R2)相同的机器上运行应用程序时,我得到以下例外:
System.Net.Mail.SmtpException:发送邮件失败。 ---> System.IO.IOException:无法从传输连接读取数据:net_io_connectionclosed。
SMTP 服务器配置为仅允许来自 127.0.0.1 和 tcp 应用程序绑定的 IP 地址以及我的开发机器的中继。它还被配置为只允许来自同一 IP 列表的连接。
发送邮件的C#位如下:
var mail = new MailMessage();
mail.To.Add(recipient);
mail.From = new MailAddress("me@mydomain.com");
mail.Subject = "subject";
mail.Body = "message";
var smtpClient = new SmtpClient(MailServerAddress, Constants.MAIL_SERVER_PORT);
smtpClient.Send(mail);
MailServerAddress 在应用程序首次运行时定义。
我尝试将其设置为 127.0.0.1 和 SMTP 服务器配置的 IP 地址,但仍然遇到相同的异常。
检查服务器日志显示没有连接迹象,这符合上述异常。
我在这里做错了什么?
【问题讨论】:
-
您是通过 IIS SMTP 服务器发送的吗?
标签: c# smtp windows-server-2008-r2