15

GmailのSMTPを介してメールを送信するための私のコード:

SmtpClient client = new SmtpClient("smtp.gmail.com", 587);
client.EnableSsl = true;
client.UseDefaultCredentials = false;
client.Credentials = new NetworkCredential("my_user_name", "my_password");

MailMessage message =
     new MailMessage(new MailAddress("from...@gmail.com"), new MailAddress("to...@gmail.com"));
message.Body = "body";
message.Subject = "subject";
client.Send(message);

このコードはローカルマシンで機能し、Azureで「Webサイト」として公開すると機能します。

しかし、 「クラウドサービス」で公開すると、次の例外が発生します。

 System.Net.Mail.SmtpException: The SMTP server requires a secure connection
 or the client was not authenticated. The server response was:
 5.5.1 Authentication Required. Learn more at

この効果をもたらす可能性のある「クラウドサービス」とWindowsAzureの「Webサイト」との違いはありますか?

ありがとう!

4

6 に答える 6

14

私はこの正確な問題を経験しました。<system.net>ただし、構成設定を使用していて、適切な資格情報、ホスト、ポートなどを使用しているにもかかわらず、問題が発生しました。

問題は、GoogleがAzureからの認証要求を拒否していたことでした。これは、コードでSMTPクライアントに使用していたGmailアカウントにログインすることでわかりました。Gmailアカウントにログインすると、赤いバーのヘッダーに気づきました。

あなたのアカウントでは一般的ではない場所から誰かがサインインしました。あなたでない場合は、すぐにパスワードを変更してください。

警告に加えて、次のようなメールを受け取りました。

最近、誰かがアプリケーションを使用してGoogleアカウントxxxxx@gmail.comにサインインしようとしました。これがハイジャック犯があなたのアカウントにアクセスしようとした場合に備えて、サインインの試みを阻止しました。サインインの試行の詳細を確認してください。

  • 2012年8月27日月曜日午後10時33分59秒GMT
  • IPアドレス:168.62.48.183
  • 場所:アメリカ合衆国

このサインインの試みに気付かない場合は、他の誰かがあなたのアカウントにアクセスしようとしている可能性があります。アカウントにサインインして、すぐにパスワードをリセットする必要があります。方法については、 http://support.google.com/accounts?p=reset_pwをご覧ください。

これがあなたであり、このアプリケーションにアカウントへのアクセスを許可したい場合は、 http://support.google.com/mail?p=client_loginにリストされているトラブルシューティング手順を完了してください

よろしくお願いいたします。Googleアカウントチーム

提供されたリンクにリストされている手順を実行した後、Azure WebサイトはGmailアカウントに正常にログインし、GmailをSMTPクライアントとして使用することができました。

于 2012-08-27T23:37:16.563 に答える
8

Web.configで次のSMTP設定を使用します。

<system.net>
    <mailSettings>
        <smtp deliveryMethod="Network">
            <network defaultCredentials="false" enableSsl="true" host="smtp.gmail.com" port="587" userName="xxxxxxx@gmail.com" password="xxxxxxxxxxx"/>
        </smtp>
    </mailSettings>
</system.net>

間違ったクレデンシャルを渡していると思います。ユーザー名に@gmail.comサフィックスを使用し、bodyhtmlプロパティもtrueに設定してみてください...

これがあなたのために働くことを願っています..それは私にとって常に正しく働きます..

このSOスレッドで回答のコメントを確認してください。

于 2012-06-13T17:17:14.457 に答える
8

Googleのトラブルシューティングページで説明されているように、次のリンクにアクセスしてローカルコンピューターからログインすると、AzureWebサイトから電子メールを送信するときのエラーが修正されました。

http://www.google.com/accounts/DisplayUnlockCaptcha

于 2016-06-14T11:03:29.033 に答える
4

SSLが有効になっていないか、資格情報が正しくないために、SMTPサーバーによって接続が拒否されたようです。以下のように、web.configでSSLとネットワーククレデンシャルを設定する必要があります。

<system.net>
 <mailSettings>
    <smtp deliveryMethod="Network">
        <network enableSsl="true" host="smtp.gmail.com" port="25" userName="xxxxxxx@gmail.com" password="xxxxxxxxxxx"/>
    </smtp>
 </mailSettings>
</system.net>

このSOディスカッションで詳細情報を入手できます: C#-GmailSMTPを介してWINDOWSAzureでメールを送信することはできません

于 2012-06-13T16:56:59.750 に答える
0

前に述べたように、ユーザー名には「 @googlemail.com 」が含まれている必要があります。私のコード(java)では、ポート465を使用してGoogleメールを介してメールを送信しています。

于 2012-06-13T17:24:22.227 に答える
0

Gmailアカウントで「アプリパスワード」を作成する

Gmailアカウントに移動します

[セキュリティ]セクション

1.- Googleアクセスに移動します

2. -2段階の検証を許可する

3.-新しいアプリパスワードを作成します

4.-Web.configまたはソースコードで通常のパスワードの代わりにそのパスワードを使用します

于 2021-04-06T19:51:12.233 に答える