.NET Core使用FluentEmail发送邮件 (3)

在使用.Net Core的实际开发中,依赖注入已经成为了必不可少的开发模式。如果你正在使用.Net Core开发项目,但是你还没有接触依赖注入,那么需要你先自行反省一下。FluentEmail作为一款与时俱进的组件,也可以结合依赖注入使用,使用这种方式我们可以在注册的时候统一的配置一些默认的设置。这波操作就不需要额外引入一些别的包了,如果你需要使用Smtp就引入FluentEmail.Smtp包,如果你需要使用Razor模板就引入FluentEmail.Razor包,关于注入的这一部分的功能其实是包含在FluentEmail.Core包里面的

public void ConfigureServices(IServiceCollection services) { SmtpClient smtp = new SmtpClient { //smtp服务器地址(我这里以126邮箱为例,可以依据具体你使用的邮箱设置) Host = "smtp.qq.com", UseDefaultCredentials = true, DeliveryMethod = SmtpDeliveryMethod.Network, //这里输入你在发送smtp服务器的用户名和密码 Credentials = new NetworkCredential("zhangsan@qq.com", "zhangsan") }; //注入的时候可以添加一些默认的设置 services //设置默认发送用户 .AddFluentEmail("zhangsan@qq.com") //添加razor模板支持 //.AddRazorRenderer($"{Directory.GetCurrentDirectory()}/Views") .AddRazorRenderer() //配置默认的smtp服务信息 .AddSmtpSender(smtp); }

在需要发送邮件的类中直接注入IFluentEmail,不必惊慌咱们上面使用的Email这个类其实就是实现了IFluentEmail这个接口,所以使用方式上是完全一致的

public async Task<IActionResult> SendEmail([FromServices]IFluentEmail email) { var result = await email//发送人 //发送人 .From("zhangsan@126.com") //收件人 .To("lisi@qq.com") //抄送人 .CC("admin@126.com") //邮件标题 .Subject("邮件标题") //邮件内容 .Body("邮件内容").SendAsync(); return View(); }

如果你需要发送Razor视图模板相关的内容,也还是那个熟悉的配方那个熟悉的味道,没有任何的不同,只是省略了一些我们在注册的时候添加的一些默认配置

public async Task<IActionResult> SendEmail([FromServices]IFluentEmail email) { var template = "你好@Model.Name先生, 请核实您的电话号码是否为@Model.Phone"; var result = await email//发送人 .From("lisi@126.com") .To("zhangsan@qq.com") .Subject("手机号核实") //传递自定义POCO类 //.UsingTemplate<UserInfo>(template, new UserInfo { Name = "张三", Phone吗 = "100110119120" }) //或传递匿名对象 .UsingTemplate(template, new { Name = "张三", Phone吗 = "100110119120" }) .SendAsync(); return View(); } 总结

    关于FluentEmail的基本使用方式我们就介绍到这里,我个人感觉它自身的功能还是非常强大的,而且使用起来非常的简单。说实话在之前我没接触到FluentEmail之前,我经常在园子里看到其他语言集成发送邮件的组件,确实非常强大,比如在springboot中集成spring-boot-starter-mail真的是非常的便捷。后来无意中接触到了FluentEmail心里还是蛮欣慰的,一是它强大的功能和易用性,其次是可以去结合.Net Core进一步优化了它的使用方式,至少在.Net和.Net Core中我们也拥有一款非常便捷的邮件发送组件。FluentEmail的作者也呼吁更多的开发者能够了解并参与到FluentEmail开发和实践中去,最后再次贴上它的GitHub地址https://github.com/lukencode/FluentEmail,有兴趣的可以去了解学习一下顺便别忘了给个Star。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wsfsds.html