我有一台运行IIS和PHP的服务器。我有很多网页可以发送电子邮件,有些是我的,有些是给用户的。一切都很好。我在Comcast Business Class帐户上,这意味着我可以使用smtp.comcast.net作为我的SMTP服务器,使用端口25,而不使用任何类型的身份验证。它工作得很好。
现在快进到今天。我正在编写一些自定义C#代码来监视文件夹结构,如果它与某些参数匹配,基本上会给我发送新文件。在我的C#代码中,我尝试使用相同的设置,但它不起作用。 SmtpClient.Send()函数不会抛出异常,我的代码完成了例程,好像一切都很愉快和有效。但是,我等待,等待,我从未收到电子邮件。
SmtpClient smtp = new SmtpClient("smtp.comcast.net");
smtp.Port = 25;
smtp.EnableSsl = false;
smtp.UseDefaultCredentials = false;
smtp.Timeout = 2500;
smtp.Send(mail);
onStatusUpdate("Successfully sent email to " + mail.To + (mail.CC.Count > 0 ? " and CC'd " + mail.CC.ToString() : ""));
“mail”对象的类型为MailMessage,并使用To,From,subject,body和CC进行设置。还有HTML和纯文本替代视图。
我想最简单的问题是,是否有一种技巧可以在C#中使用PHP中不存在的oldschool port-25方式发送电子邮件?
我提到PHP的唯一原因是因为我知道我的防火墙没有阻塞端口25,我知道我的ISP已打开它,我知道我有合适的服务器,我知道应该工作。
答案 0 :(得分:0)
我不知道这是否会影响他们的商务舱帐户,但最近刚刚(< 2个月前)Comcast关闭了他们所有电子邮件帐户的25端口。尝试使用端口587
http://customer.comcast.com/help-and-support/internet/email-client-programs-with-xfinity-email/
答案 1 :(得分:0)
首先要查看的是您用于发送此邮件的外发邮件服务器的邮件服务器日志。这些应该告诉您邮件服务器是否甚至从C#程序接收用于排队的消息,如果是这样 - 当它尝试将消息传递到远程MTA时发生了什么。
答案 2 :(得分:0)
在我开始测试后大约5个小时,我立即获得了所有测试电子邮件,包括嵌入式HTML和其他所有内容。所以它正如它应该的那样工作。我猜,由于签名略有不同,他们会阻止它们,直到它们被视为非垃圾邮件。现在看来,当我发送电子邮件时,它会立即通过。
因此,康卡斯特有一些时间延迟过滤器显然可以解决这个问题。
答案 3 :(得分:0)
我最终将邮件添加到(到列表)
并为我分别发送邮件的每一封邮件发送foreach,
成功了!