2016-07-22 73 views
0

我使用下面的C#代碼,SMTP郵件發送請求zhcon失敗somtime

string Subject = "test12";  
    MailMessage mail = new MailMessage(); 
    mail.To.Add(item.ToString()); 
    mail.From = new MailAddress(EmailUserName); 
    mail.Subject = Subject; 
    mail.Body = PopulateBody();  
    mail.IsBodyHtml = true; 
    SmtpClient client = new SmtpClient(EmailHost, EmailPort);   
    client.EnableSsl = true; 
    NetworkCredential credentials = new NetworkCredential(EmailUserName, EmailPassword); 

    client.UseDefaultCredentials = false; 
    client.Credentials = credentials; 
    client.Send(mail); 

我收到錯誤Client.send(郵件)方法

我曾嘗試:

系統.Security.Authentication.AuthenticationException:到SSPI調用失敗,請參見內部異常。 ---> System.ComponentModel.Win32Exception:不支持請求的函數 ---內部異常堆棧跟蹤--- 在System.Net.Security.SslState.StartSendAuthResetSignal(ProtocolToken消息,AsyncProtocolRequest異步請求,異常異常) 在

+0

作爲一個身份驗證錯誤,我會建議檢查您的連接信息是否正確(用戶名,密碼,主機名等) – Takarii

回答

0

我會嘗試沒有認證首先檢查,給出了一個不同的錯誤,並嘗試不使用SSL。

protected bool NotifyByMail(string server, string strFrom, string strTo, string strSubject, string strBodyText, bool isBodyTextHtml = false) 
    { 
     if (string.IsNullOrEmpty (server) 
      || string.IsNullOrEmpty (strFrom) 
      || string.IsNullOrEmpty (strTo) 
      || string.IsNullOrEmpty (strSubject) 
      || string.IsNullOrEmpty (strBodyText)) 
      return false; 

     try { 
      MailAddress from = new MailAddress (strFrom); 
      MailAddress to = new MailAddress (strTo); 
      MailMessage message = new MailMessage (from, to); 

      message.Subject = strSubject; 
      message.Body = strBodyText; 
      message.IsBodyHtml = isBodyTextHtml; 

      SmtpClient client = new SmtpClient (server); 

     // Include credentials if the server requires them. 
     //client.Credentials = new System.Net.NetworkCredential ("********", "*******");// System.Net.CredentialCache.DefaultNetworkCredentials; 

      client.Send (message); 
      return true; 
     } 
     catch (Exception exception) { 
        // TODO ErrorHandling 
     } 

     return false; 
    }