1

Stackoverflowでこれに関するすべてのトピックにもかかわらず。私はこの問題の解決策を見つけることができません:

私はこの例外があります:

SMTPサーバーに安全な接続が必要であるか、クライアントが認証されていません。サーバーからの応答は次のとおりです。5.5.1認証が必要です。詳細については、

このコードの使用:

    var fromAddress = new MailAddress(user.Email, "From Name");
    var toAddress = new MailAddress("myadress@gmail.com", "To Name");
    const string fromPassword = "fromPassword";
    const string subject = "Subject";
    const string body = "Body";

    var smtp = new SmtpClient
    {
        Host = "smtp.gmail.com",
        Port = 587,
        EnableSsl = true,
        DeliveryMethod = SmtpDeliveryMethod.Network,
        UseDefaultCredentials = false,
        Credentials = new NetworkCredential(fromAddress.Address, fromPassword),
        Timeout = 20000
    };
    using (var message = new MailMessage(fromAddress, toAddress)
    {
        Subject = subject,
        Body = body
    })
    {
        smtp.Send(message);
    }

何が足りないのですか?ご協力いただきありがとうございます

4

3 に答える 3

1

このコードは私のために働いた

  SmtpClient sc = new SmtpClient("smtp.gmail.com");
  NetworkCredential nc = new NetworkCredential("username","password");
  //username doesn't include @gmail.com         
   sc.UseDefaultCredentials = false;
   sc.Credentials = nc;
   sc.EnableSsl = true;
   sc.Port = 587;
     try
      {
       sc.Send(mm);
      } 
     catch (Exception ex)
      {
        EventLog.WriteEntry("Error Sending", EventLogEntryType.Error);
      }
于 2013-05-13T07:46:20.357 に答える
1

あなたは何も見逃していません。パスワードを間違えた疑いがあります。「fromPassword」から本来あるべきものに変更するのを忘れていませんか?

これは、同じタスクのよりクリーンな実装です

于 2012-04-19T13:45:29.453 に答える
1

パスワードを間違って入力したか、(より可能性が高い) Google の2 段階認証を有効にした後で通常のパスワードを使用しようとしている可能性があります。

アプリケーション固有のパスワードを生成して使用する必要があります

于 2013-05-13T09:41:48.827 に答える