登録時に電子メールアドレスを確認するためにデフォルトのmvcコードを使用しますが、電子メールが送信されるとHTMLを表示しません。 テンプレートMVCコード:デフォルトのasp.net mvcテンプレートを使用すると、HTMLが正しく電子メールに挿入されない
string code = await UserManager.GenerateEmailConfirmationTokenAsync(user.Id);
var callbackUrl = Url.Action("ConfirmEmail", "Account", new { userId = user.Id, code = code }, protocol: Request.Url.Scheme);
await UserManager.SendEmailAsync(user.Id, "Confirm your account", "Please confirm your account by clicking <a href=\"" +
callbackUrl + "\">here</a>");
メール非同期を送信:
public Task SendAsync(IdentityMessage message)
{
// Plug in your email service here to send an email.
SmtpClient client = new SmtpClient();
return client.SendMailAsync("email here",
message.Destination,
message.Subject,
message.Body);
return Task.FromResult(0);
}
SO上の他の質問のいくつかを見たとき私は身体を設定することができるように、私は少し私の送信コードを変更HTMLを許可しますが、私はまだ同じ問題があります
public Task SendAsync(IdentityMessage message)
{
MailMessage msg = new MailMessage();
msg.IsBodyHtml = true;
msg.Body = message.Body;
// Plug in your email service here to send an email.
SmtpClient client = new SmtpClient();
return client.SendMailAsync("email here",
message.Destination,
message.Subject,
msg.Body);
return Task.FromResult(0);
}
なぜこのようなことが起こっているのですか?
TIA
あなたはアンカーリンクについてわからない場合、あなたはこのように体内にトークンURLを渡すことができます: 'UserManager.SendEmailAsync(ユーザーを待っています。 Id、 "あなたのアカウントを確認する"、 "ここをクリックしてあなたのアカウントを確認してください:" + callbackUrl)。最後のコードサンプルでは、古いパターンを使用するのではなく、 'return client.SendMailAsync(msg)'を使ってみてください。 –