.NET Core使用FluentEmail发送邮件

第一步:

         1.1  结合依赖注入使用

        在使用.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")
            //配置默认的smtp服务信息
            .AddSmtpSender(smtp);
        }        

第二步:

          2.1 接下来我们就演示一下如何使用FluentEmail发送邮件,由于我们实际业务中大多数都使用的SMTP的方式发送邮件,所以我们就以此为做演示,首先我们在项目中引入FluentEmail.Smtp包,目前最新版本为2.8.0

           <PackageReference Include="FluentEmail.Smtp" Version="2.8.0" />

第三步:

          3.1 它的编码使用方式非常简单而且非常简洁,主要通过链式编程的方式:

                 使用时定义:private readonly IFluentEmail fluentEmail;

                 构造函数如下:

                                  构造参数:[FromServices]IFluentEmail _email

                                  构造赋值:this.fluentEmail=_email;

                 发送邮箱配置:

          var email = fluentEmail
            //发送人
            .From("zhangsan@126.com")
            //收件人
            .To("lisi@qq.com")
            //抄送人
            .CC("admin@126.com")
            //邮件标题
            .Subject("邮件标题")
            //邮件内容
            .Body("邮件内容");
          //依据发送结果判断是否发送成功
          var result = email.Send();
          //或使用异步的方式发送
          //await email.SendAsync();
          if (result.Successful)
          {
            //发送成功逻辑
          }
          else
          {
            //发送失败可以通过result.ErrorMessages查看失败原因
          }
 
参考网站:https://www.jb51.net/article/197415.htm
posted @ 2020-11-29 13:14  黑暗时代地表人  阅读(255)  评论(0编辑  收藏  举报