我有一个小型 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 地址,但我仍然遇到相同的异常。
检查服务器日志显示没有连接迹象,这符合上述异常。
我在这里做错了什么?