2016-07-22 71 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; 
    }