【发布时间】:2014-01-14 08:26:06
【问题描述】:
我正在使用这个简单的代码来尝试发送电子邮件:
try
{
MailMessage newMail = new MailMessage();
newMail.To.Add("me@mydomain.com");
newMail.Subject = "test";
newMail.Body = "test";
newMail.From = new MailAddress("from@mydomain.com", "from");
newMail.IsBodyHtml = true;
SmtpClient SmtpSender = new SmtpClient();
SmtpSender.Send(newMail);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
连同我的 web.config 文件中的以下代码:
<system.net>
<mailSettings>
<smtp>
<network host="localhost" userName="me@mydomain.com" password="password" defaultCredentials="true"/>
</smtp>
</mailSettings>
我运行该页面,它没有错误地完成,但没有发送电子邮件。我做错了什么?
编辑:我已经根据我看过的许多示例更新了代码,现在正在使用一个名为 hMailServer 的本地 SMTP 客户端。我已经在 ASP.Net 之外测试了我的 hMailServer,它确实可以发送电子邮件。但是,使用上面的新代码还是不行,也不会抛出任何异常。
【问题讨论】:
-
您确定没有电子邮件发送,还是您的意思是电子邮件没有到达您的收件箱?电子邮件有很多可能出错的地方,其中很少有与代码有关。 SMTP 服务器的响应是什么?如果将其指向您控制的服务器进行调试(例如 smtp4dev),会发生什么?
-
尤其要查看您的 Gmail 发件箱。
-
我刚查了一下,发件箱里没有邮件。不幸的是,我不控制用于调试的服务器。
-
您是否位于不允许该端口出去的防火墙后面?
-
我也尝试过使用 25 端口,我怀疑它被阻止了,因为我们有一个 smtp 服务器。我尝试在我的代码中使用它,但结果相同;没有错误,没有电子邮件。