2010-12-20 83 views
30

我收到此錯誤SMTP服務器要求安全連接或客戶端沒有經過認證

The SMTP server requires a secure connection or the client was not authenticated. The server response was: 5.7.0 Must issue a STARTTLS command first. e17sm974159fak.34 

的Web.config

<mailSettings> 
    <smtp deliveryMethod="Network" 
       from="[email protected]"> 
     <network defaultCredentials="false" host="smtp.gmail.com" port="587" 
        userName="[email protected]" password="12345678" /> 
    </smtp>   
</mailSettings> 

代碼文件

public void Submit() 
     { 
      EnsureCurrentlyValid(); 
      // Send via email 
      var message = new StringBuilder(); 
      message.AppendFormat("Date: {0:yyyy-MM-dd hh:mm}\n", DateTime.Now); 
      message.AppendFormat("Email from: {0}\n", Name); 
      message.AppendFormat("Email: {0}\n", Email); 
      message.AppendFormat("Message: {0}\n", Message); 
      SmtpClient smtpClient = new SmtpClient(); 
      MailMessage m = new MailMessage(
       "[email protected]", // From 
       "[email protected]", // To 
       "Suggestion/Comments", // Subject 
       message.ToString()); // Body 

      smtpClient.Send(m); 
     } 
+0

Hello @ coure2011,如果你得到了你的問題的解決方案,那麼請幫助我,因爲我得到同樣的錯誤。 – Abhishek 2016-07-23 06:35:46

回答

49

嘗試設置EnableSsl屬性爲true:

smtpClient.EnableSsl = true; 

AFAIK此屬性只能在代碼中設置,不能在配置文件中指定。

+0

另請參閱:http://stackoverflow.com/questions/32260/sending-email-in-net-through-gmail – 2010-12-20 18:17:47

21

其實你可以通過添加enableSsl =「true」來處理你的web.config文件。這對我有用,我不需要在代碼中做任何事情。

例如

<network host="smtp.gmail.com" enableSsl="true" ... /> 
+6

enableSSl僅在.net 4+ – AndyM 2012-03-26 10:07:10

相關問題