【发布时间】:2016-09-28 08:51:28
【问题描述】:
MailMessage message = new MailMessage();
message.Subject = "test";
message.Body = "test";
message.To.Add("test@gmail.com");
message.From = new MailAddress("bob@internalhost.com");
SmtpClient smtp = new SmtpClient();
smtp.DeliveryMethod = SmtpDeliveryMethod.Network;
smtp.UseDefaultCredentials = false;
smtp.Host = "172.22.0.20";
smtp.Port = 25;
smtp.Send(message);
知道为什么我可能会收到错误
无法解析远程名称。
显然不需要解析,因为我已经指定了 IP 地址。我可以在端口 25 上 ping IP 甚至 telnet 并成功发送电子邮件。但是,我无法发送电子邮件。
我运行了wireshark 跟踪,看起来没有任何流量正在发送到 172.22.0.20
【问题讨论】:
-
添加并检查它是否适用于真或假
smtp.EnableSsl = false -
还需要加
NetworkCredential nc = new NetworkCredential(EmailFrom, tEmailFromPassword); -
@LeeTickett,您的设置非常独特,可以匿名访问 SMTP 服务器。即使您指定了
smtp.UseDefaultCredentials = false。它将尝试设置凭据以访问 SMTP。使用smtp.Credentials = new NetworkCredential(),您明确表示该请求将匿名进行。我猜在你的情况下smtpconnection 通过错误的路径进入,你会收到误导性的错误消息。 -
可能是一个红鲱鱼,但 smpt 主机是一个字符串,你给它分配了一个数字:
smtp.Host = 172.22.0.20;- 不确定你是如何编译的,如果问题再次发生,请包括完整的代码和错误消息/StackTrace。 -
如果您在工作中这样做,您是否在网络防火墙后面?防火墙或防病毒软件是否会导致问题?您可能想尝试与您的系统管理员讨论此问题。您也可以尝试在家中使用家用计算机运行代码。如果仍然无法正常工作,请(暂时)禁用您的防病毒软件并重试。
标签: c# .net windows smtpclient