前提・実現したいこと
現在、独習ASP.NET Webフォームという技術書を用いてASP.NET の学習をすすめております。
その技術書にでてくるASP.NET Identityの章の電子メールによる本人確認の実装がどうしてもエラーになるので質問させていただきたいです。
電子メールによる本人確認とは、ユーザーの新規登録時に登録されたアドレスにメールを送信し、そこに記載されたリンクからユーザーは本登録をおこなうことです。
開発環境 windows10, visual studio2019, .Net Framework4.8
発生している問題・エラーメッセージ
新規登録時、以下のエラー発生。
SMTPサーバーが正しく設定されていないのかと思ったが、どのように設定したらいいかわからなかった。
System.Net.Mail.SmtpException: 'SMTP サーバーにセキュリティで保護された接続が必要であるか、またはクライアントが認証されていません。 サーバーの応答:5.7.57 Client not authenticated to send mail. Error: 535 5.7.3 Authentication unsuccessful [TYCPR01CA0047.jpnprd01.prod.outlook.com]'
該当のソースコード
エラー発生箇所
manager.SendEmailの行でエラー発生しております。
string code = manager.GenerateEmailConfirmationToken(user.Id); string callbackUrl = IdentityHelper.GetUserConfirmationRedirectUrl(code, user.Id, Request); manager.SendEmail(user.Id, "アカウントの確認", "このリンクをクリックすることによってアカウントを確認してください <a href=\"" + callbackUrl + "\">こちら</a>.");
web.config
smtpサーバーのpassword??、userName??port??状態です。
略 <system.net> <mailSettings> <smtp from="test@outlook.com"> <network host="smtp.outlook.com" port="587" password="test0011" userName="test"/> </smtp> </mailSettings> </system.net> 略
App_Start/IdentityConfig.cs
using System.Net.Mail; 略 public class EmailService : IIdentityMessageService { public Task SendAsync(IdentityMessage message) { // 電子メールを送信するには、電子メール サービスをここにプラグインします。 var mail = new MailMessage("test@outlook.com", message.Destination, message.Subject, message.Body); mail.IsBodyHtml = true; var client = new SmtpClient(); return client.SendMailAsync(mail); } } 略
試したこと
ここに問題に対して試したことを記載してください。
補足情報(FW/ツールのバージョンなど)
わからないことだらけで申し訳ありません。
回答1件
あなたの回答
tips
プレビュー