使用 mvc 生成确认电子邮件 [关闭]
Posted
技术标签:
【中文标题】使用 mvc 生成确认电子邮件 [关闭]【英文标题】:Use mvc to generate confirmation email [closed] 【发布时间】:2017-05-23 14:24:52 【问题描述】:我正在尝试实现在用户注册我的页面时发送邮件的功能,以及重置密码。
我一直在研究,但我找不到好的资源。我发现的所有内容都基于旧示例,使用sendgrid v2.0
(一个非常旧的版本)。
有人在去年开发了这个功能并有一些指南吗?
我研究过这样的指南:https://www.asp.net/identity/overview/features-api/account-confirmation-and-password-recovery-with-aspnet-identity
【问题讨论】:
aspsnippets.com/Articles/… 这会帮助你 感谢您抽出宝贵时间帮助我 【参考方案1】:这有两个部分,您对问题的所在还不够清楚。本质上,要发送电子邮件,您需要:
-
SMTP 服务器
创建电子邮件并利用 SMTP 服务器发送电子邮件的代码
您提到了 sendgrid,它只是一个 SMTP 服务器(或者实际上是一个 SMTP 服务器网格,因此得名);这只是一种实际发送电子邮件的方式。当然还有其他选择。您可以在 Windows Server 中启用内置 SMTP 服务器,或者如果您在公司环境中运行,您可以使用 Exchange。您甚至可以使用 Gmail 的 SMTP 服务器之类的东西,但如果您将其用于测试或本地开发以外的任何用途,您很可能会被禁止。
就创建电子邮件的实际代码而言,您有SmtpClient
,尽管我不建议直接在 MVC 应用程序中使用它。最好使用 Postal 之类的东西,它为您提供更高级别的 API 并利用 Razor 视图来制作您的电子邮件等。在后台,它也使用SmtpClient
。
【讨论】:
感谢回答【参考方案2】:我不确定这是否会对您有所帮助,但我最近在我开发的用于发送批准请求电子邮件的 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;
它的实现方式与您在 Web 表单中的实现方式完全相同。
【讨论】:
感谢您的回答!慢慢来以上是关于使用 mvc 生成确认电子邮件 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
如何在 asp.net core mvc 中配置确认电子邮件令牌的生命周期