2017-07-31 65 views
0

在發送電子郵件後,SMTP是否需要在C#中處理?即使沒有附件,是否需要使用C#處理SMTP?

我得到SMTP認證錯誤,第二次應用程序啓動時。我想知道是否需要處理SMTP。第一次在新電腦上不會發生,但如果同一個窗口打開兩次,則會出現驗證錯誤。這裏是下面的代碼。

try{ 
          MailMessage mail = new MailMessage(); 
          SmtpClient SmtpServer = new SmtpClient("smtp.gmail.com"); 

          mail.From = new MailAddress("[email protected]"); 
          mail.To.Add("[email protected]"); 
          mail.Subject = "FeedBack"; 
          mail.Body = "Text "; 

          SmtpServer.Port = 587; 
          SmtpServer.EnableSsl = true; 
          SmtpServer.UseDefaultCredentials = false; 
          SmtpServer.Credentials = new System.Net.NetworkCredential("[email protected]", "mypassword"); 

          SmtpServer.Send(mail); 
          SmtpServer.Dispose(); 
         } 
         catch (Exception) 
         { 
          Application.Exit(); 
          this.Close(); 
         } 
        } 
+2

好的一般經驗法則似乎是,如果一個類提供了一個dispose方法,它有一些需要處理的東西,你應該使用它!我不明白你會如何得到一個認證錯誤,雖然你有硬編碼的證書工作_sometimes _...你能提供實際的錯誤信息嗎? – Bridge

+1

如果你不想手動使用'using(SmtpClient SmtpServer = new SmtpClient(「smtp.gmail.com」)){/ *你的代碼在這裏* /}'語句。 – dcg

+0

@Bridge實際錯誤消息'SMTP服務器需要安全連接或客戶端未經過身份驗證。服務器響應是:5.5.1需要身份驗證' – Patrick

回答

0

根據您的錯誤信息,我可以建議該post. 還是應該允許使用您的郵件帳戶對谷歌不夠安全的應用。我複製了你的代碼並修改了我的Gmail帳戶。它的工作沒有錯誤。你可以按照these steps允許你的表單應用程序訪問你的Gmail帳戶。

+0

我已經按照這些步驟進行了操作,並且最初解決了我的問題,現在不是這樣。這是什麼時候反饋表單再次打開後,儘管這些帖子中列出的所有步驟已經完成,但它仍會給我提供相同的驗證錯誤。 每當一臺新電腦在第一次運行時安裝該軟件,它就可以正常工作,但在第二次運行時會拋出此消息。 – Patrick

相關問題