.net 之邮件发送帮助类 MailKit 的使用

 

1. nuget 安装 MailKit 的引用

源码: https://github.com/jstedfast/MimeKit

 

2.MailKitHelper 的具体代码如下,

public class MailKitHelper
    {
        /// <summary>
        ///发送邮件
        /// </summary>
        /// <param name="toAddressList">接收人</param>
        /// <param name="title">标题</param>
        /// <param name="content">内容</param>
        /// <param name="attachments">附件</param>
        /// <returns></returns>
        public static void SendMail(List<KeyValuePair<string, string>> toAddressList, string title, string content, List<KeyValuePair<string, byte[]>> attachments = null)
        {
            string server = ConfigurationCache.GetField<string>(ConfigurationCache.Email_SmtpServer);
            int port = ConfigurationCache.GetField<int>(ConfigurationCache.Email_SmtpPort);
            string account = ConfigurationCache.GetField<string>(ConfigurationCache.Email_FromAccount);
            string pwd = ConfigurationCache.GetField<string>(ConfigurationCache.Email_FromAccountPwd);

            var mailMessage = new MimeMessage();
            var fromMailAddress = new MailboxAddress("ScheduleMaster", account);
            mailMessage.From.Add(fromMailAddress);
            var toMailAddress = toAddressList.Select(x => new MailboxAddress(x.Key, x.Value));
            mailMessage.To.AddRange(toMailAddress);

            var bodyBuilder = new BodyBuilder() { HtmlBody = content };
            if (attachments != null)
            {
                foreach (var item in attachments)
                {
                    bodyBuilder.Attachments.Add(item.Key, item.Value);
                }
            }
            mailMessage.Body = bodyBuilder.ToMessageBody();
            mailMessage.Subject = title;
            using (var smtpClient = new MailKit.Net.Smtp.SmtpClient())
            {
                smtpClient.Timeout = 10 * 1000;   //设置超时时间
                smtpClient.Connect(server, port, MailKit.Security.SecureSocketOptions.Auto);//连接到远程smtp服务器
                smtpClient.Authenticate(account, pwd);
                smtpClient.Send(mailMessage);//发送邮件
                smtpClient.Disconnect(true);
            }
        }
    }

3.常用的各大邮件服务端口号如下: 

邮箱类型 POP3服务器 SMTP服务器
【QQ邮箱】 pop.qq.com(端口:110) smtp.qq.com(端口:25)
【sina.com】 pop3.sina.com.cn(端口:110) smtp.sina.com.cn(端口:25)
【sinaVIP】 pop3.vip.sina.com (端口:110) smtp.vip.sina.com (端口:25)
【sohu.com】 pop3.sohu.com(端口:110) smtp.sohu.com(端口:25)
【126邮箱】 pop.126.com(端口:110) smtp.126.com(端口:25)
【139邮箱】 POP.139.com(端口:110) SMTP.139.com(端口:25)

【163.com】
pop.163.com(端口:110) smtp.163.com(端口:25)
【QQ企业邮箱】 pop.exmail.qq.com (SSL启用 端口:995) smtp.exmail.qq.com(SSL启用 端口:587/465)
【yahoo.com】 pop.mail.yahoo.com smtp.mail.yahoo.com
【yahoo.com.cn】 pop.mail.yahoo.com.cn(端口:995) smtp.mail.yahoo.com.cn(端口:587)
【HotMail】 pop3.live.com(端口:995) smtp.live.com(端口:587)
【 Gmail】 pop.gmail.com(SSL启用端口:995) smtp.gmail.com(SSL启用 端口:587)
【263.net】 pop3.263.net(端口:110) smtp.263.net(端口:25)
【263.net.cn】 pop.263.net.cn(端口:110) smtp.263.net.cn(端口:25)
【21cn.com】 pop.21cn.com(端口:110 smtp.21cn.com(端口:25)
【Foxmail】 POP.foxmail.com(端口:110) SMTP.foxmail.com(端口:25)
【china.com】 pop.china.com(端口:110) smtp.china.com(端口:25)
【tom.com】 pop.tom.com(端口:110) smtp.tom.com(端口:25)
posted @ 2022-06-27 13:57  云水边静沐暖阳丶  阅读(563)  评论(0编辑  收藏  举报