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

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

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

Blazorは、マイクロソフトが開発している.NETベースのWebアプリフレームワークです。C#でフロントエンドもバックエンドも一貫して書くことが可能。クライアントサイド(WebAssembly)とサーバーサイド形式のホスティングモデルがあります。

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

ASP.NET

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

Q&A

0回答

1319閲覧

Blazor WebAssemblyでユーザ登録後のメール送信について

yisland

総合スコア28

blazor

Blazorは、マイクロソフトが開発している.NETベースのWebアプリフレームワークです。C#でフロントエンドもバックエンドも一貫して書くことが可能。クライアントサイド(WebAssembly)とサーバーサイド形式のホスティングモデルがあります。

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

ASP.NET

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

0グッド

0クリップ

投稿2021/06/20 03:28

前提・実現したいこと

ASP.NET Identity
Blazor WebAssemblyでユーザ登録後のメール送信処理を行いたいと思っています。

該当のソースコード

Server側の処理

var code = await _userManager.GenerateEmailConfirmationTokenAsync(user); code = WebEncoders.Base64UrlEncode(Encoding.UTF8.GetBytes(code)); var callbackUrl = Url.Page( "/ConfirmEmail", pageHandler: null, values: new { area = "Identity", userId = user.Id, code = code }, protocol: Request.Scheme); await _emailSender.SendEmailAsync(parameters.UserName, "Confirm your email", $"Please confirm your account by <a href='{HtmlEncoder.Default.Encode(callbackUrl)}'>clicking here</a>.");

発生している問題・エラーメッセージ

上記のコードを書いてメール送信を行おうと思いましたが、
callbackUrlがnullで返ってきます。
解決方法をご存知の方がいらしたらお教えください。
宜しくおねがいします。

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

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

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

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

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

退会済みユーザー

退会済みユーザー

2021/06/20 04:21

そのコードはどこに実装したのですか? RCL に含まれる Register.cshtml.cs の中の既存のコードですか?
yisland

2021/06/20 04:47

サーバー側のApiControllerです。
退会済みユーザー

退会済みユーザー

2021/06/20 05:04

> サーバー側のApiControllerです。 何でしょう? テンプレートで自動生成されたプロジェクトの Controllers フォルダに自分で追加したのですか? そうだとすると動くとは思えないのですが。 私が上に書いた「RCL に含まれる Register.cshtml.cs」の意味が分かりますか? 質問に書かれたコードはその中の既存のコードの一部ですが、そうなんですか?
yisland

2021/06/20 05:26

分かりにくくて申し訳ありません。 Register.cshtml.csは使ってません。 確かに質問に書いたコードはRegister.cshtml.csに書かれてる内容ですが、 やりたいことは、サーバー側にPostしてCreateAsyncでユーザ登録した後に メールを送る方法が知りたいです。
退会済みユーザー

退会済みユーザー

2021/06/20 05:40 編集

> Register.cshtml.csは使ってません。 > やりたいことは、サーバー側にPostしてCreateAsyncでユーザ登録した後にメールを送る方法が知りたいです。 メールを送るのは、Register ページの初期画面でユーザーが ID とパスワードを入力して POST し、 Register.cshtml.cs の OnPostAsync メソッドで登録に成功したときの話ですよね? であれば、Register ページの Register.cshtml.cs の OnPostAsync メソッドで行う以外にあり得ないはずなのですが。 ますます意味が分からないのですが・・・
yisland

2021/06/20 05:49

テンプレートは何も使っていません。 登録画面はrazorで作ってあって、登録ボタンが押された時に サーバー側にPostして登録処理をやってます。 参考にしたソース https://github.com/iammukeshm/Blazor.Learner
退会済みユーザー

退会済みユーザー

2021/06/20 06:05

> テンプレートは何も使っていません。 そういうことは最初の質問の一行目に書いておいてほしかったですね。 それでは自分にとっては質問者さんの独自実装と同じ話で、何がどうなっているのか全く分かりませんので何のコメントもできません。参考にされているソースを読むのも負担が大きすぎますので無理です。 Visual Studio のテンプレートで作ったプロジェクト以外の話は自分はついていけませんので撤退します。お役に立てずすみませんが、他の方の回答をお待ちください。
okazuki0130

2021/06/26 22:33

これは、再現するための最小限の手順がないと誰も答えられない気がします。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問