zoukankan      html  css  js  c++  java
  • ASP.NET Core中使用MialKit实现邮件发送

    # 导包

      首先我们需要导入 MailKit NuGet包,NuGet安装包命令在下方拓展介绍中。

    # 引用命名空间

    using MailKit.Net.Smtp;
    using MimeKit;

    # 邮件发送帮助类

            /// <summary>
            /// 发送邮件
            /// </summary>
            /// <param name="Name">发件人名字</param>
            /// <param name="receive">接收邮箱</param>
            /// <param name="sender">发送邮箱</param>
            /// <param name="password">邮箱密码</param>
            /// <param name="host">邮箱主机</param>
            /// <param name="port">邮箱端口</param>
            /// <param name="subject">邮件主题</param>
            /// <param name="body">邮件内容</param>
            /// <returns></returns>
            public async Task<bool> SendMailAsync(string Name, string receive, string sender, string password, string host, int port, string subject, string body)
            {
                try
                {
              # MimeMessage代表一封电子邮件的对象
                    var message = new MimeMessage();
              # 添加发件人地址 Name 发件人名字 sender 发件人邮箱
                    message.From.Add(new MailboxAddress(Name, sender));
              # 添加收件人地址
                    message.To.Add(new MailboxAddress("", receive));
              # 设置邮件主题信息
                    message.Subject = subject;
              # 设置邮件内容
                    var bodyBuilder = new BodyBuilder() { HtmlBody = body };
                    message.Body = bodyBuilder.ToMessageBody();
                    using (var client = new SmtpClient())
                    {
                        // For demo-purposes, accept all SSL certificates (in case the server supports STARTTLS)
                        client.ServerCertificateValidationCallback = (s, c, h, e) => true;
                        // Note: since we don't have an OAuth2 token, disable  
                        // the XOAUTH2 authentication mechanism.  
                        client.AuthenticationMechanisms.Remove("XOAUTH2");
                        client.CheckCertificateRevocation = false;
                        //client.SslProtocols = System.Security.Authentication.SslProtocols.Tls12;
                        client.Connect(host, port, MailKit.Security.SecureSocketOptions.Auto);
                        // Note: only needed if the SMTP server requires authentication
                        client.Authenticate(sender, password);
                        await client.SendAsync(message);
                        client.Disconnect(true);
                        return true;
                    }
                }
                catch (Exception ex)
                {
                }
                return false;
            }

     借助这一个简单的邮件发送类我们就可以已经可以实现邮件发送功能了。

    # 拓展(NuGet常用命令) 

    1、安装指定版本:install-package <程序包名> -version <版本号>

    2、更新包:Update-Package <程序包名>

    3、重新安装所有Nuget包(整个解决方案都会重新安装)
      update-package -reinstall

    4、重新安装指定项目所有Nuget包
      update-package -project <项目名称> -reinstall

    5、正常卸载:uninstall-package <程序包名>

    6、强制卸载:Uninstall-Package <程序包名> -Force

    # 参考博文

    https://blog.csdn.net/sD7O95O/article/details/89334103

    https://www.cnblogs.com/qulianqing/p/7413640.html

    https://www.cnblogs.com/savorboard/p/aspnetcore-email.html

    https://www.cnblogs.com/daizhipeng/p/10955773.html

  • 相关阅读:
    HDU-3790 最短路径问题(双重权值)
    Graph (floyd)
    POJ-3259 Wormholes(判断负环、模板)
    HDU-1317 XYZZY
    HDU-1548 A strange lift(单源最短路 或 BFS)
    最小生成树(模板 prim)
    【面试】386- JavaScript 面试 20 个核心考点
    【Koa】385- koa框架的快速入门与使用
    【小程序】384- 如何一人五天开发完复杂小程序(前端必看)
    【React】383- React Fiber:深入理解 React reconciliation 算法
  • 原文地址:https://www.cnblogs.com/hzpeng/p/11724089.html
Copyright © 2011-2022 走看看