【发布时间】:2016-02-03 09:43:56
【问题描述】:
我正在尝试通过表单帖子发送邮件,但是当表单发布时它尝试发送邮件然后超时。超时的代码是这样的:
MailMessage mail = new MailMessage();
mail.From = new MailAddress("someone@example.com");
mail.To.Add("someoneElse@example.com");
SmtpClient smtp = new SmtpClient();
smtp.Port = 465;
smtp.DeliveryMethod = SmtpDeliveryMethod.Network;
smtp.UseDefaultCredentials = false;
smtp.Host = "smtp.gmail.com";
mail.Subject = "Hello";
mail.Body = "World!";
smtp.Send(mail);
【问题讨论】:
-
“超时”是什么意思?有例外吗?它的全文是什么,包括调用堆栈?它是 IIS 或电子邮件客户端的例外吗?您确定这些设置将允许您通过 gmail 发送吗?首先在单元测试中尝试此代码,直到您设法发送电子邮件,然后将其放入您的网页中
-
另外,请查看有关通过 gmail 发送电子邮件的许多 SO 问题。我几乎可以肯定这已经得到了回答
-
@PanagiotisKanavos 这是错误:描述:在执行当前 Web 请求期间发生未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。异常详细信息:System.Net.Mail.SmtpException:操作已超时。
-
首先,这只是消息,而不是完整的异常(调用 ToString())。其次,网络超时通常是因为地址或端口错误。几年前,Gmail 放弃了对 TLS (587) 的 SSL(端口 465)支持