2010-01-29 42 views
4

我想構建一個小WPF電子郵件發件人教程,但我不想分享它,如果它有這個明顯的錯誤。我怎樣才能ping一個SMTP服務器,以便我可以檢查帳戶/密碼是否有效?

目前,這是發生了什麼事。

  1. 用戶輸入用戶名和密碼。
  2. 標籤'loginstatus'更改爲「登錄」,無論它是否爲gibeerish。
  3. 郵件正文併發送到字段已啓用。
  4. 用戶按下「發送」按鈕,如果有一個異常(例如,錯誤的用戶名/密碼),消息框將顯示該消息,並且登錄狀態會變回註銷狀態。

這是非常非常錯誤的,我想修復它。

如何才能ping通查看憑證是否正確(無需發送測試電子郵件)。

我使用smtp.gmail.com端口587

編輯 這裏是我如何發送電子郵件。

var client = new SmtpClient("smtp.gmail.com", 587) 
     { 
      Credentials = new NetworkCredential(username, password), 
      EnableSsl = true 
     }; 

     try 
     { 
      client.Send(fromEmail, toEmail, subject, body); 
     } 
     catch (Exception e) 
     { 
      MessageBox.Show(e.Message);     
     }  
+0

您目前如何發送電子郵件?我認爲SMTP-with-login需要先登錄,並在MAIL FROM命令之前通知您無效憑證。 – Thomas 2010-01-29 15:39:11

+0

@John McClane:不幸的是,你不能只使用SmtpClient類來完成日誌部分,因爲所有的邏輯都在System.Net.Mail命名空間的內部類中。 – 2010-01-29 15:50:14

回答

1

你不能用System.Net.Mail做到這一點。您必須自己推出或使用第三方產品(無恥插件:如我的 - www.aspnetmx.com

0

如果您可以控制SMTP通信,則只能執行登錄部分來測試用戶名和密碼而不發送消息。

+0

我該如何做登錄部分? – 2010-01-29 15:40:54

+1

由於您使用提交端口(587),所需的命令將是EHLO,STARTTLS和AUTH。手動實現它們非常昂貴,因爲您必須使用STARTTLS將連接升級到SSL。請參閱http://tools.ietf.org/html/rfc5321(EHLO),http://tools.ietf.org/html/rfc3207(STARTTLS)和http://tools.ietf.org/html/rfc2554(AUTH ) – 2010-01-29 15:55:34

相關問題