2016-09-24 212 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)是否未被服務器防火牆阻止(如果已在服務器中啓用)。

相關問題