2012-02-22 12 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

を次のようにあなたが '新しいを持っているあなたのSMTPclientに割り当てられていることができcredentials for current userを、必要としますNetworkCredential(Username、Password) 'とメソッドパラメータ' string password、string username'を小文字で指定します。それはタイプミスですか? –

答えて

0

現在ログインしているユーザーのパスワードを取得する方法はありません。
Windowsには、パスワードそのものではなく、パスワードのハッシュが格納されます。

1

あり、パスワードを取得することができる方法はありませんが、あなたが実際にパスワードを必要としない、あなたはあなたが得ると

SMTPclient.Credentials = CredentialCache.DefaultNetworkCredentials; 
+0

私はそれを試みましたが、動作しません。メールを送信しようとするとこのエラーが発生します。メールボックスを利用できません。サーバーの応答は次のとおりです。5.7.1クライアントにこの送信者として送信する権限がありません。 – johnnie

+0

その場合、現在のユーザーにサーバーのアクセス許可があることを確認します。 – Maheep

+0

@ johnnieはあなたのSMTPのMS Exchangeですか?それ以外の5.7.1エラーコードは、あなたがそのSMTPdを介してメッセージを中継しようとしているように聞こえますが、そうするように設定されているため、あなたにはできません。私はあなたのIPアドレス/ネットマスクは、SMTPの設定で許可されたリレーのリストに設定されていないと思う。別のSMTPサーバーを使用してコードを試しましたか? – kayess

関連する問題