2017-01-09 60 views
-3

我想实现一个功能,当用户注册我的页面时发送邮件,也重置密码。 我一直在研究,但我无法获得良好的资源。我发现的一切都是基于旧例子,使用sendgrid v2.0(一个非常旧的版本)。 任何在去年开发过此功能并具有一些指导的人员? 我研究过的指南是这样的:https://www.asp.net/identity/overview/features-api/account-confirmation-and-password-recovery-with-aspnet-identity使用MVC生成确认电子邮件

+1

http://www.aspsnippets.com/Articles/Send-user-Confirmation-email-after-Registration-with-Activation-Link-in-ASPNet.aspx 这将帮助您 – onur

+1

感谢您抽出宝贵时间帮我 – rockyargento

回答

1

这有两个部分,而且您对于发生问题的位置还不够清楚。从本质上讲,发送电子邮件,你需要:

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

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

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

+0

谢谢你的回答 – rockyargento

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

这实现了在完全相同的方式,你会实现它在web表单。

+0

谢谢你的回答!并花费你的时间 – rockyargento