无法使用服务器上的SMTP发送电子邮件
问题描述:
我正在使用smtp客户端发送电子邮件,但问题是,当我试图从我的本地系统电子邮件发送成功发送电子邮件时,但我部署在服务器上比不发送电子邮件。这里是我的代码无法使用服务器上的SMTP发送电子邮件
try
{
MailMessage mail = new MailMessage();
mail.To.Add(receiver);
mail.From = new MailAddress("[email protected]");
mail.Subject = subject;
mail.Body = body;
mail.IsBodyHtml = true;
if (attachment != null)
{
mail.Attachments.Add(attachment);
}
SmtpClient smtp = new SmtpClient();
smtp.Host = "smtp.gmail.com";
smtp.Credentials = new System.Net.NetworkCredential("[email protected]", "xxxxxx");
smtp.EnableSsl = true;
smtp.UseDefaultCredentials = false;
smtp.DeliveryMethod = SmtpDeliveryMethod.Network;
smtp.Port = 587;
smtp.Send(mail);
return true;
}
catch
{
return false;
}
答
可以有很多原因that.By看你的代码,我建议你首先验证天气产生的任何异常,当这些代码在服务器执行(日志除外)。这将有助于调查此外,检查您在代码中使用的端口(587)是否未被服务器防火墙阻止(如果已在服务器中启用)。
您是否尝试过在您的Google帐户中启用对安全性较低的应用的访问权限? –
是的,它的启用。 –
如果您可以使用相同的代码从本地系统发送电子邮件,并且无法从服务器发送邮件,那么问题似乎不在您的代码中。问题可能在于如何调用服务器上的方法或服务器如何连接到Internet(可能是防火墙问题)。 –