2016-09-24 177 views
-1

我正在使用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; 
     } 
+1

您是否尝试过在您的Google帐户中启用对安全性较低的应用的访问权限? –

+0

是的,它的启用。 –

+0

如果您可以使用相同的代码从本地系统发送电子邮件,并且无法从服务器发送邮件,那么问题似乎不在您的代码中。问题可能在于如何调用服务器上的方法或服务器如何连接到Internet(可能是防火墙问题)。 –

回答

0

可以有很多原因that.By看你的代码,我建议你首先验证天气产生的任何异常,当这些代码在服务器执行(日志除外)。这将有助于调查此外,检查您在代码中使用的端口(587)是否未被服务器防火墙阻止(如果已在服务器中启用)。

相关问题