修改
只是邮件服务器没有及时响应的问题,我尝试了第三个提供商,它工作正常。
结束编辑
我正在尝试向新用户发送用户注册电子邮件。
出于测试目的,我转而使用Gmail的SMTP服务器,因为我想我的邮件提供商可能会在某处阻止请求,但问题仍然存在。
我所知道的是SmtpClient.Send()
来电是超时的。这是我的代码:
public void SendEmail(string To, string Subject, string Body)
{
SmtpClient smtp = new SmtpClient(server, port);
smtp.Credentials =
new NetworkCredential("<my google account>", "<my google password>");
smtp.EnableSsl = true;
using (MailMessage msg =
new MailMessage("<my private email account>", To, Subject, Body))
{
msg.IsBodyHtml = true;
smtp.Send(msg);
}
}
这是堆栈跟踪:
发现了System.Net.Mail.SmtpException 的HResult = -2146233088
消息=操作已超时。 来源=系统
堆栈跟踪:在System.Net.Mail.SmtpClient.Send(MailMessage消息)
at Ortund.Utilities.Mail.SendEmail(String To,String Subject,String Body)
在e:\ Development \ Base \ Ortund.Utilities \ Mail.cs:第91行 在Ortund.Utilities.ServiceMail.SendUserRegistrationEmail(用户来源)
在r:\ Users \ Ortund \ Documents \ Visual Studio 2013 \ Projects \ OrtundWeb \ Utilities \ ServiceMail.cs:第102行
在OrtundWeb.Controllers.UserController.Post(用户来源)
在r:\ Users \ Ortund \ Documents \ Visual Studio 2013 \ Projects \ OrtundWeb \ Controllers \ UserController.cs:第63行
的InnerException:
不是特别有帮助......我想因为SSL或凭证可能连接失败所以我添加了这些没有变化...
任何人在这里都有任何建议,因为我完全没有想法。
答案 0 :(得分:0)
他们正在阻止尝试发送电子邮件的应用程序(因为它们应该如此)。只需从您自己的服务器发送电子邮件,并将replyTo属性设置为您的Gmail电子邮件地址,它看起来就像是来自您的帐户。
答案 1 :(得分:0)
我还使用GMail SMTP服务器进行测试。我在VB.NET中使用以下内容
'*****For testing using GMail smtp server****** Comment out for production
'Smtpclient to send the mail message
sSMTP = "smtp.gmail.com"
SmtpMail.Port = 587 '587 'For some reason vb.net doesn't like port 465. Access does.
SmtpMail.EnableSsl = True
SmtpMail.UseDefaultCredentials = False
SmtpMail.Timeout = 30000 'An Int32 that specifies the time-out value in milliseconds. The default value is 100,000 (100 seconds).
SmtpMail.Credentials = New System.Net.NetworkCredential("username", "gmail account name")