我们可以尝试使用以下代码来实现在点击后确认电子邮件:
public async Task ConfirmEmail(string userId, string code)
{
if (userId == null || code == null)
{
return View("Error");
}
var result = await UserManager.ConfirmEmailAsync(userId, code);
if (result.Succeeded)
{
return View("ConfirmEmail");
}
else
{
return View("Error");
}
}
如果出现点击确认链接后没有设置电子邮件确认的错误,我们需要在SendGrid中进行以下更改:
var apiKey = Environment.GetEnvironmentVariable("NAME_OF_THE_ENVIRONMENT_VARIABLE_FOR_YOUR_SENDGRID_KEY");
var client = new SendGridClient(apiKey);
var from = new EmailAddress("test@example.com", "Example User");
var subject = "Confirm Your Email";
var to = new EmailAddress(email, name);
var plainTextContent = "";
var htmlContent = @"Hi " + name + ",
" +
"Please confirm your account by clicking here.
";
var msg = MailHelper.CreateSingleEmail(from, to, subject, plainTextContent, htmlContent);
var response = await client.SendEmailAsync(msg);
上述代码应该能够解决问题,使得在点击链接后可以成功确认电子邮件。