質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
SMTP

SMTP(Simple Mail Transfer Protocol)はIPネットワークでemailを伝送する為のプロトコルです。

web.config

web.configはASP.NETウェブアプリケーションの主な設定や構成ファイルを格納するXMLファイルです。

Webサイト

一つのドメイン上に存在するWebページの集合体をWebサイトと呼びます。

メール

メールは、コンピュータネットワークを利用し、 情報等を交換する手段のことです。

ASP.NET

ASP.NETは動的なWebサイトやWebアプリケーション、そしてWebサービスを構築出来るようにする為、Microsoftによって開発されたウェブアプリケーション開発フレームワークです。

Q&A

解決済

1回答

2404閲覧

電子メールによる本人確認について

yo---shi

総合スコア1

SMTP

SMTP(Simple Mail Transfer Protocol)はIPネットワークでemailを伝送する為のプロトコルです。

web.config

web.configはASP.NETウェブアプリケーションの主な設定や構成ファイルを格納するXMLファイルです。

Webサイト

一つのドメイン上に存在するWebページの集合体をWebサイトと呼びます。

メール

メールは、コンピュータネットワークを利用し、 情報等を交換する手段のことです。

ASP.NET

ASP.NETは動的なWebサイトやWebアプリケーション、そしてWebサービスを構築出来るようにする為、Microsoftによって開発されたウェブアプリケーション開発フレームワークです。

0グッド

0クリップ

投稿2021/03/13 14:49

編集2021/03/14 04:53

前提・実現したいこと

現在、独習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/ツールのバージョンなど)

わからないことだらけで申し訳ありません。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2021/03/14 01:14 編集

開発環境(OS, Visual Studio, .NET Framework, ASP.NET Identity のバージョンなど)を書いてください。 > 現在、独習ASP.NET Webフォームという技術書を用いてASP.NET の学習をすすめております。 閲覧者・回答者がその本を持っていることは期待しないでください(実際自分は持ってません)。その本に書いてあることは質問者さんが質問に書かないと閲覧者・回答者は知り得ないので、質問に書いてあるより前の種々設定の関係は分かりません。なので、SmtpClient によるメール送信の部分のみの問題であることを質問者さんが切り分けして、できればメール送信部分のみ切りだしてコンソールアプリのサンプルを作りそれを質問にアップして説明するという配慮が必要です。サンプルは無理でも、少なくとも切り分けできていることは必須なのですが、できていますか?
退会済みユーザー

退会済みユーザー

2021/03/14 05:56

上のコメントの、「 少なくとも切り分けできていることは必須なのですが、できていますか?」に返事がありませんが、どうなんですか? > smtpサーバーのpassword??、userName??port??状態です。 と質問に書いてありましたが、そういう基本のキのところが何も分かってないから答えようがないということですか?
guest

回答1

0

ベストアンサー

環境がないので試していませんが...

smtp.outlook.com は、SSL 接続が必要だったと思います。

エラーメッセージだけで判断すると、<network> 要素enableSsl="true"が必要な気がします。

投稿2021/03/14 02:01

CHERRY

総合スコア25171

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yo---shi

2021/03/14 05:02

エラーメッセージだけで判断すると、<network> 要素 に enableSsl="true"が必要な気がします。 =>試しましたが、同じ結果でした。SSL 接続が必要ない場合、outlookの部分は、どのようなものがありますでしょうか?適当な文字列でもいいのですか?
CHERRY

2021/03/14 05:22 編集

> SSL 接続が必要ない場合、outlookの部分は、どのようなものがありますでしょうか?適当な文字列でもいいのですか? ん? メールサーバーの設定部分は、ご自身で契約しているお使いのメールサーバーの情報を設定する必要がありますが、outlook.com をお使いということではないのですか? どのように記載すれば良いかは、お使いのメールサーバーによりますので、何をお使いかわからないと回答は難しいと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問