使用 mvc 生成确认邮件

Use mvc to generate confirmation email

我正在尝试实现在用户注册我的页面时发送邮件以及重置密码的功能。 我一直在研究,但找不到好的资源。我发现的所有内容都基于旧示例,使用 sendgrid v2.0(非常旧的版本)。 谁在去年开发了这个功能并且有一些指导? 我研究过这样的指南:https://www.asp.net/identity/overview/features-api/account-confirmation-and-password-recovery-with-aspnet-identity

我不确定这是否对您有帮助,但我最近在我开发的用于发送批准请求电子邮件的 MVC 站点中实现了以下内容。

我从控制器操作中调用了以下方法:

 public static void SendMail(MailMessage Msg)
    {
        SmtpClient _SMTP = new SmtpClient(SMTP, SMTP_Port);
        _SMTP.UseDefaultCredentials = false;
        _SMTP.Credentials = new System.Net.NetworkCredential(User, Password);
        _SMTP.Send(Msg);
    }

邮件消息是使用以下方法创建的:

 public static MailMessage BuildEnqNotificationMessage(string _To, string _Body)
    {
        MailMessage Msg = new MailMessage();
        Msg.From = new MailAddress(FromAddress, FromFriendly);
        Msg.Subject = "New Sales Enquiry";
        Msg.To.Add(_To);
        Msg.Body = _Body;
        Msg.IsBodyHtml = true;
        return Msg;
    }

它的实现方式与您在网络表单中的实现方式完全相同。

这有两个部分,您还不够清楚哪里有问题。本质上,要发送电子邮件,您需要:

  1. 一个 SMTP 服务器
  2. 创建电子邮件并利用 SMTP 服务器发送它的代码

您提到了 sendgrid,它只是一个 SMTP 服务器(或者实际上是一个 SMTP 服务器网格,因此得名);这只是一种实际发送电子邮件的方式。当然还有其他选择。您可以在 Windows 服务器中启用内置 SMTP 服务器,或者如果您在公司环境中 运行,则可以使用 Exchange。您甚至可以使用 Gmail 的 SMTP 服务器之类的东西,但如果您将其用于测试或本地开发以外的任何用途,您可能会被禁止。

就创建电子邮件的实际代码而言,您有 SmtpClient,但我不建议直接在 MVC 应用程序中使用它。最好使用 Postal 之类的东西,它可以为您提供更高级别的 API 并利用 Razor 视图来制作您的电子邮件等。在引擎盖下,它也利用 SmtpClient