C# c语言中的电子邮件失败#
我正在asp.net mvc中尝试发送电子邮件代码,但我不断收到错误{“发送邮件失败”。}我已经参考了这里提出的许多问题,并尝试了建议的解决方案,但仍然收到相同的错误。我哪里出错了?C# c语言中的电子邮件失败#,c#,email,C#,Email,我正在asp.net mvc中尝试发送电子邮件代码,但我不断收到错误{“发送邮件失败”。}我已经参考了这里提出的许多问题,并尝试了建议的解决方案,但仍然收到相同的错误。我哪里出错了? 这是我的密码: private static void SendEmailWithErrors(string result) { SmtpClient smtpclient = new SmtpClient(); MailMessage message = new Mail
这是我的密码:
private static void SendEmailWithErrors(string result)
{
SmtpClient smtpclient = new SmtpClient();
MailMessage message = new MailMessage();
try
{
MailAddress fromAddress = new MailAddress("email address");
smtpclient.Host = "smtp.gmail.com";
smtpclient.Port = 587;
smtpclient.UseDefaultCredentials = true;
smtpclient.EnableSsl = true;
smtpclient.Credentials = new System.Net.NetworkCredential("email address", "password");
message.From = fromAddress;
message.To.Add("email address");
message.Subject = "Exception raised";
message.IsBodyHtml = false;
message.Body = result;
smtpclient.Send(message);
}
catch(Exception ex)
{
}
}
签入您发送邮件的电子邮件ID。可能有人向您发送警告邮件,表示有人试图非法访问您的邮件。只需确保降低电子邮件的安全性,以允许第三方应用程序访问它。对于Gmail,这是在隐私设置中完成的。
一旦from电子邮件地址的安全性降低,它应该可以正常工作。谢谢大家发布您的答案,我正在使用本地计算机,并且IP地址已在服务器计算机中配置,因此导致冲突。当我从服务器上运行应用程序时,代码工作正常。发送邮件失败是最常见的。你能发布堆栈跟踪吗?我假设它是例外,那么调试器会怎么说?例外是什么?您可以发布堆栈跟踪吗?按照@nXu的建议检查异常,您可能处于防火墙之下,它可能会阻止您访问邮件服务器。您可以尝试**EnableSsl=false**;它解决了我的问题。Gmail需要SSL(TLS),不要禁用它。顺便说一句,看看这个:
private static void SendEmail(string result)
{
var fromAddress = new MailAddress("from@gmail.com", "From Name");
var toAddress = new MailAddress("to@example.com", "To Name");
var smtp = new SmtpClient
{
Host = "smtp.gmail.com",
Port = 587,
EnableSsl = true,
DeliveryMethod = SmtpDeliveryMethod.Network,
UseDefaultCredentials = false,
Credentials = new NetworkCredential(fromAddress.Address, fromPassword)
};
using (var message = new MailMessage(fromAddress, toAddress)
{
Subject = "Mail Subject",
Body = result
})
{
smtp.Send(message);
}
}