使用mvc生成确认电子邮件

时间:2017-01-09 10:39:07

标签: c# asp.net-mvc email-validation

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

2 个答案:

答案 0 :(得分:1)

这有两个部分,你对于你遇到问题的地方还不够清楚。基本上,要发送您需要的电子邮件:

  1. SMTP服务器
  2. 创建电子邮件并使用SMTP服务器发送电子邮件的代码
  3. 您提到了sendgrid,它只是一个SMTP服务器(或者实际上是SMTP服务器的网格,因此名称);它只是实际发送电子邮件的一种方式。当然还有其他选择。您可以在Windows Server中启用内置SMTP服务器,或者如果您在企业环境中运行,则可以使用Exchange。您甚至可以使用Gmail的SMTP服务器,但如果您将其用于测试或本地开发以外的任何其他内容,则可能会被禁止使用。

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

答案 1 :(得分:0)

我不确定这是否会对您有所帮助,但我最近在我开发的用于发送批准请求电子邮件的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);
    }

使用以下方法创建Mailmessage:

 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;
    }

这与您在webforms中实现它的方式完全相同。