zoukankan      html  css  js  c++  java
  • 7.dotnet core 如何发邮件

    需要用到的Nuget包 

    "MailKit": "1.8.1",

    方法

      /// <summary>
            /// 发送邮件(支持Html发送,支持添加一个附件)
            /// </summary>
            /// <param name="subject">邮件标题</param>
            /// <param name="email">收件人地址</param>
            /// <param name="content">邮件内容</param>
            /// <param name="filepath">文件的相对路径</param>
            public static void SendEmail(string subject, string email,string content,string filepath=null)
            {
                var message = new MimeMessage();
                //发信人
                message.From.Add(new MailboxAddress("发信人姓名", "发信人邮箱"));
                //收信人
                message.To.Add(new MailboxAddress("", email));
                //标题
                message.Subject = subject;
                //产生一个支持Html的TextPart
                var body = new TextPart(TextFormat.Html)
                {
                    Text = content
                };
                //先产生一个
                var multipart = new Multipart("mixed");
                //添加正文内容
                multipart.Add(body);
                if (!string.IsNullOrWhiteSpace(filepath))
                {
                    //生产一个绝对路径
                    //filepath = "Upload//NewsPhoto//readme.txt";
                    var absolutePath = Path.Combine(_hostingEnv.WebRootPath, string.Format(filepath));
                    //附件
                    var attachment = new MimePart()
                    {
                        //读取文件(只能用绝对路径)
                        ContentObject = new ContentObject(File.OpenRead(absolutePath), ContentEncoding.Default),
                        ContentDisposition = new ContentDisposition(ContentDisposition.Attachment),
                        ContentTransferEncoding = ContentEncoding.Base64,
                        //文件名字
                        FileName = Path.GetFileName(absolutePath)
                    };
                    //添加附件
                    multipart.Add(attachment);
                }    
                //正文内容
                message.Body = multipart;
                using (var client = new SmtpClient())
                {
                    //连接到Smtp服务器
                    client.Connect("smtp服务器地址", 端口, false);
                    //登陆
                    client.Authenticate("账号", "密码");
                    //发送
                    client.Send(message);
                    //断开
                    client.Disconnect(true);
                }
            }

    以上的这个方法可以发Html的文本并附带附件 

  • 相关阅读:
    C语言面试题分类->宏定义
    c语言位运算
    C语言一个程序的存储空间
    收藏的链接-English
    侧滑关闭Activity的解决方案——SwipeBackLayout
    实现ViewPager的联动效果
    由Toolbar造成的ListView最后一项显示不全
    收藏的链接-Stub
    收藏的链接-Git
    收藏的链接
  • 原文地址:https://www.cnblogs.com/quan01994/p/6003161.html
Copyright © 2011-2022 走看看