我的AdminController.cs中的代码
await UserManager.SendEmailAsync(
user.Id, "Confirm your account",
"Please confirm your account by clicking <a href=\"" + callbackUrl + "\">here</a>"
);
似乎没有尝试发送电子邮件。
IdentityConfig.cs
public Task SendAsync(IdentityMessage message)
{
// Plug in your email service here to send an email.
SmtpClient client = new SmtpClient();
client.UseDefaultCredentials = true;
MailMessage mail = new MailMessage("noreply@website.com", message.Destination);
mail.Subject = message.Subject;
mail.Body = message.Body;
mail.IsBodyHtml = true;
return client.SendMailAsync(mail);
}
我在我的应用程序的其他位置使用以下代码,它可以正常工作。
IdentityMessage emailMessage = new IdentityMessage
{
Destination = recipient.Email,
Subject = "You have a new message - " + message.Subject,
Body = "<p>Message from: " + recipient.UserName + "</p>" + message.Body
};
EmailService emailService = new EmailService();
emailService.SendAsync(emailMessage);
我见过几个类似的问题但据我所知,我的设置应该有效。
任何建议都非常感谢。
谢谢!
答案 0 :(得分:1)
找到解决方案,问题实际上并不是我的想法。
我已经从开箱即用的电子邮件选项中更改了默认用户名,帐户控制器中有几个地方根据用户名查找用户ID但是通过电子邮件搜索,所以基本上是使用用户名进行搜索对于一封电子邮件,它开箱即用,但是因为我做了改动,所以它被打破了。
例如在&#34; ForgotPassword&#34;有以下查找:
UserManager.FindByEmailAsync(model.Email);
以前使用的是model.Username,导致我没有发送电子邮件。
答案 1 :(得分:0)
如果没有&#39; async await&#39; ,则不会显示错误
public async Task<ActionResult> EmailMethod()
{
IdentityMessage emailMessage = new IdentityMessage
{
Destination = recipient.Email,
Subject = "You have a new message - " + message.Subject,
Body = "<p>Message from: " + recipient.UserName + "</p>" + message.Body
};
EmailService emailService = new EmailService();
await emailService.SendAsync(emailMessage);
return View();
}
发送电子邮件时会发生什么样的错误?