2011-06-25 8 views
5

私のasp.netアプリケーションから電子メールを送信しようとしています。それはWebサーバー上で、私はエラーが発生しました:SMTPサーバーが安全な接続を必要とするか、クライアントが認証されていません。サーバーの応答は:5.5.1認証が必要、SMTPサーバーが安全な接続を必要とするか、クライアントがasp.netから電子メールを送信中に認証されていないエラー

いずれかが役に立ちますか?ありがとう

+0

ローカルに同じsmtpサーバーで確認しましたか?あなたのsmtpサーバーがsslを有効にしていますか? –

+0

はい、私はenablesslを持っている=私のコードで真実 –

答えて

0

あなたはドメインの一部であり、SMTPサーバーもこのドメインにあります。この場合、Windows認証によって自動的に認証されている可能性があり、IISが実行されているユーザーは、おそらくそのコンピュータがローカルにいるローカルになっている可能性があります。ドメインユーザーの下でアプリケーションプールを実行し、偽装(テストされていませんが動作するはずです)を使用するか、電子メールを送信するときにプログラムによってSMTPサーバーに資格情報を追加することができます。

6

上でSSLを有効にするためのリンクがあることは、この

private void MailSendThruGmail() 
    { 
     MailAddress fromAddress = new MailAddress("[email protected]", "From Name"); 
     MailAddress toAddress = new MailAddress("[email protected]", "To Name"); 
     const string subject = "test"; 
     const string body = @"Using this feature, you can send an e-mail message from an application very easily."; 

     System.Net.Mail.MailMessage msg = new System.Net.Mail.MailMessage(fromAddress.Address, toAddress.Address, subject, body); 
     msg.IsBodyHtml = true; 

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

     try 
     { 
      client.Send(msg); 
     } 
     catch (Exception ex) 
     { 
      Console.WriteLine(ex.ToString()); 
     } 
    } 
3
を試してみてください

メールサーバーにアクセスし、ファイアウォールの設定を確認してください。その後gmailに行き、gmailのセキュリティで保護されたクライアントリストにあなたのサーバーアドレスをアカウント設定から追加します。

+0

ありがとうございました。受け入れられた回答の下の手順を使用して修正できました。おそらく、あなたの手順は他のシナリオで役立つかもしれません。ありがとう –

関連する問題