web-dev-qa-db-ja.com

5.7.57 SMTP-MAIL FROMエラー時に匿名メールを送信するクライアントが認証されませんでした

Webアプリケーションを使用してメールを送信する必要があります。 The SMTP server requires a secure connection or the client was not authenticated. The server response was:を示す以下のコードを考えると

5.7.57 SMTP;クライアントは、MAIL FROM中に匿名メールを送信するために認証されませんでした。

適切な解決策を見つけるのを助けてください。ありがとうございました。

コード:

protected void btnsubmit_Click(object sender, EventArgs e)
 {

   Ticket_MailTableAdapters.tbl_TicketTableAdapter tc;
   tc = new Ticket_MailTableAdapters.tbl_TicketTableAdapter();
   DataTable dt = new DataTable();
   dt = tc.GetEmail(dpl_cate.SelectedValue);
   foreach (DataRow row in dt.Rows)
    {
    string eml = (row["Emp_Email"].ToString());
    var fromAddress = "emailAddress";
    var toAddress = eml;
    const string fromPassword = "*****";
    string body = "Welcome..";
 // smtp settings
    var smtp = new System.Net.Mail.SmtpClient();
       {
         smtp.Host = "smtp.office365.com";
         smtp.Port = 587;
         smtp.EnableSsl = true;

         smtp.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network;
         smtp.Credentials = new NetworkCredential(fromAddress, fromPassword);
         smtp.UseDefaultCredentials = false;
         smtp.Timeout = 600000;
       }
  // Passing values to smtp object
     smtp.Send(fromAddress, toAddress, subject, body);
     }
  } 
 }
41
Reshma

私は優れたプログラマーではないかもしれませんが、Fromアドレスを適切な電子メールアドレスではない「emailAddress」として渡しているようです。Office365の場合、fromはOffice365システムの実際のアドレスである必要があります。

電子メールアドレスを送信元およびOffice 365パスワードとしてハードコーディングした場合、それを検証できます。もちろんそこに放置しないでください。

20
Joe Vargas

@ Reshma-あなたがまだそれを理解していない場合、ここに私が試したものの下にあり、同じ問題を解決しました。

  1. 設定したNetworkCredentialsが正しいことを確認してください。たとえば、私の場合、オフィスSMTPであったため、ユーザーIDはNetworkCredentialで実際の電子メールIDではなくドメイン名とともに使用する必要がありました。

  2. 最初に「UseDefaultCredentials」をfalseに設定してから、Credentialsを設定する必要があります。その後、「UseDefaultCredentials」を設定すると、NetworkCredentialがヌルにリセットされます。

それが役に立てば幸い。

20
Navneet

私はこれにあまりにも多くの時間を費やし、解決策は非常に簡単でした。 「MX」をホストおよびポート25として使用する必要がありました。

        var sClient = new SmtpClient("domain-com.mail.protection.Outlook.com");
        var message = new MailMessage();

        sClient.Port = 25;
        sClient.EnableSsl = true;
        sClient.Credentials = new NetworkCredential("user", "password");
        sClient.UseDefaultCredentials = false;

        message.Body = "Test";
        message.From = new MailAddress("[email protected]");
        message.Subject = "Test";
        message.CC.Add(new MailAddress("[email protected]"));

        sClient.Send(message);
11
Ron Rebennack

私は同じ問題を抱えています。

解決したドメインを追加します。

mySmtpClient.Credentials = New System.Net.NetworkCredential("[email protected]", "password", "domain.com")
10
Zvi Redler

上記のコメントに記載されている主な2つの理由

  1. 設定したNetworkCredentialsは正しいはずです。実際にアカウントにサインインしてみてください。
  2. 最初にUseDefaultCredentialsをfalseに設定してから、資格情報を設定するか、smtp.UseDefaultCredentials = false;smtp.Credentials assignmentの上に配置する必要があります。
6
Ankush

これは古い質問ですが、これはこのエラーに対するgoogleの最初の結果であるため、この問題の進行状況を更新すると思いました。

私もこの問題に何時間も費やしました。最終的に、コードが電子メールの送信に成功するまで、Office 365アカウントのパスワードを数回変更する必要がありました。

コードを変更する必要はありませんでした。

4
Spitz

Office 365を使用している場合は、次の手順を実行します。

  1. azure power Shellを使用してパスワードの有効期限を確認します:Get-MsolUser -All | DisplayName、LastPasswordChangeTimeStampを選択します
  2. 古いパスワードではなく、新しいパスワードを使用してパスワードを変更します。最終的に古いパスワードに戻ることができますが、2回変更する必要があります。

それが役に立てば幸い!

2
Matteo Conta

私の場合、Office 365のFROMアカウントで2要素認証が有効になりました。無効にすると、メールは正常に送信されました。

2
Daniela

Office365のパスワードを変更してからテストメールを送信しようとしたところ、私にとって魅力的なものでした。

フロントエンド(データベースメールオプション)と設定をsmtp.office365.comポート番号587として使用し、安全な接続オプションをチェックしました。基本認証を使用して、資格情報を保存します。これが誰かに役立つことを願っています。

1
voz

プロパティを追加した後に作業を開始しました:

mail.smtp.starttls.enable=true

を使用して:

mail.smtp.Host=smtp.office365.com
mail.smtp.port=587
mail.transport.protocol=smtp
mail.smtp.auth=true
mail.smtp.starttls.enable=true
[email protected]
mail.smtp.password=xxx
[email protected]
0
Justas

User defauilt credencialsを「True」に設定しますsmtp.UseDefaultCredentials = True;

その前に、資格情報を入力しますsmtp.Credentials = new NetworkCredential(fromAddress、fromPassword);

これはうまくいくはずです

私の場合、2つの文字列(to、from)を受け取り、同じエラーを受け取るMailMessageコンストラクタを使用していました。デフォルトのコンストラクターを使用し、MailAddressオブジェクトをMailMessageのToプロパティに追加すると、正常に機能しました。

0
horatius83