2012-02-22 25 views
1

我正在創建一個電子郵件幫助器,發送電子郵件,這是工作正常,所有,但我需要通過當前用戶的用戶名和密碼。電子郵件幫手認證

有什麼辦法可以做到這一點?

我已經使用了Environment.UserName;,這個用戶名正確,但我不知道如何獲取密碼。

這是我正在做的電子郵件幫手。

public void SendEmail(int port, string host, string displayName, string subject, string body, string addressFrom, string addressTo, string password, string username) 
     { 
      MailMessage messageToSend = new MailMessage(); 
      messageToSend .Subject = subject; 
      messageToSend .Body = body; 
      messageToSend .From = new MailAddress(addressFrom, displayName); 
      messageToSend .To.Add(addressTo); 
      messageToSend .Priority = MailPriority.High; 
      messageToSend .IsBodyHtml = true; 
      SmtpClient SMTPclient = new SmtpClient(Host, Port); 
      SMTPclient .EnableSsl = false; 
     SMTPclient.Credentials = new NetworkCredential(Username, Password); 
      SMTPclient.Send(message); 
     } 
+1

你有新的' NetworkCredential(用戶名,密碼)'和方法參數'string password,string username'用小寫。這是一個錯字嗎? – 2012-02-22 09:47:08

回答

0

您無法檢索當前記錄的用戶密碼!
Windows存儲密碼的散列,而不是密碼本身。

1

沒有辦法,你可以得到密碼,但你其實並不需要密碼,您需要credentials for current user,您可以獲取和分配給您的SMTPclient如下

SMTPclient.Credentials = CredentialCache.DefaultNetworkCredentials; 
+0

我嘗試過,但它不起作用,試圖發送電子郵件時出現此錯誤:郵箱不可用。服務器響應是:5.7.1客戶端沒有權限發送此發件人。 – johnnie 2012-02-22 10:59:01

+0

因此,在這種情況下請檢查當前用戶是否具有服務器上的權限。 – Maheep 2012-02-22 11:03:00

+0

@ johnnie是您的SMTP和MS Exchange?除此之外,5.7.1錯誤代碼聽起來像是試圖通過SMTPd傳遞消息,但它不會讓您這樣做,只是因爲它配置爲這樣做。我認爲您的IP地址/網絡掩碼未設置爲SMTP配置中允許的中繼列表。你是否使用不同的SMTP服務器來嘗試你的代碼? – kayess 2015-08-14 10:23:06