C#使用FluentEmail发送邮件

在实际的项目开发中,我们会遇到很多需要通过程序发送邮件的场景,比如邮件注册时发送验证码,系统异常报警等, 今天给大家介绍一下FluentEmail, FluentEmail是一款在GitHub上开源免费的支持.Net和.Net Core邮件发送组件,目前已有2.1k的star,它的功能非常强大且实用使用也比较简单。.

接下来我们就使用的SMTP的方式用FluentEmail发送邮件。

安装

首先我们使用Nuget安装FluentEmail包。

C#使用FluentEmail发送邮件

接下来我们就可以愉快的写代码了,它的编码使用方式非常简单而且非常简洁,下面我们使用链式编程的方式来发送邮件。首先我们要配置Smtp服务,我这里用的是qq的smtp服务,具体怎么配置,请查看其它文章。

接着我们设置smtp服务包括qq账号和密码等

     SmtpClient smtp = new SmtpClient
        {
            //smtp服务器地址
            Host = "smtp.qq.com",
            UseDefaultCredentials = true,
            DeliveryMethod = SmtpDeliveryMethod.Network,
            //这里输入你在发送smtp服务器的用户名和密码
            Credentials = new NetworkCredential("*****@qq.com", "*******")
        };

最后我们使用FluentEmail发送邮件填写我们的发送人,收件人,抄送人,邮件标题,邮件内容,邮件发送方式是支持HTML格式的,

这个我们通过点击查看Body的方法声明即可得知第二个参数是用来表示内容是否为html格式,默认为false

IFluentEmail Body(string body, bool isHtml = false);
public  bool SendEmail()
        {
            //设置默认发送信息
            Email.DefaultSender = new SmtpSender(smtp);
            var email = Email
                //发送人
                .From("1075094220@qq.com")
                //收件人
                .To("1075094220@qq.com")
                //抄送人
                .CC("1075094220@qq.com")
                //邮件标题
                .Subject("邮件标题")
                //邮件内容
                // .Body("邮件内容");
                .Body("<h1 align=\"center\">黑哥</h1><p>黑哥给你发来了消息</p>",true);
            //依据发送结果判断是否发送成功
            var result = email.Send();
            //或使用异步的方式发送
            //await email.SendAsync();
            if (result.Successful)
            {
                //发送成功逻辑
                return true;
            }
            else
            {
                //发送失败可以通过result.ErrorMessages查看失败原因
                return false;
            }
        }

最后我们可以根据result.Successful结果判断是否发送成功,具体发送失败原因可以通过result.ErrorMessages 来查看。

关于FluentEmail的基本使用方式我们就介绍到这里,我个人感觉它自身的功能还是非常强大的,而且使用起来非常的简单 最后再次贴上它的GitHub地址https://github.com/lukencode/FluentEmail,有兴趣的可以去了解学习一下顺便别忘了给个Star。