using MailKit.Net.Smtp; using Microsoft.Extensions.Options; using MimeKit; using NETCore.MailKit.Core; using NETCore.MailKit.Infrastructure.Internal; namespace Ds.Module.Mailkit { internal class DsSendEmail { private readonly EmailOptions options; private readonly IEmailService _EmailService; public DsSendEmail(IOptions options, IEmailService emailService) { this.options = options.Value; _EmailService = emailService; } public async void SendEmail(string entity) { //设置发送人的邮件地址和名称,在接收人接收到邮件提示时会显示该信息 var sendInfo = new SenderInfo { SenderEmail = options.FromAddress, SenderName = "投诉", }; await _EmailService.SendAsync(options.ToAddress, "投诉", "邮件内容", false, sender: sendInfo); } /// /// 发送邮件 /// /// /// /// /// /// /// public static bool _SendEmail( Dictionary dicToEmail, string title, string content, string name = "", string fromEmail = "", string host = "smtp.qq.com", int port = 587, string userName = "", string userPwd = "123123") { var isOk = false; try { if (string.IsNullOrWhiteSpace(title) || string.IsNullOrWhiteSpace(content)) { return isOk; } //设置基本信息 var message = new MimeMessage(); message.From.Add(new MailboxAddress(name, fromEmail)); foreach (var item in dicToEmail.Keys) { message.To.Add(new MailboxAddress(item, dicToEmail[item])); } message.Subject = title; message.Body = new TextPart("html") { Text = content }; //链接发送 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; //采用qq邮箱服务器发送邮件 client.Connect(host, port, false); // Note: since we don't have an OAuth2 token, disable // the XOAUTH2 authentication mechanism. client.AuthenticationMechanisms.Remove("XOAUTH2"); //qq邮箱,密码(安全设置短信获取后的密码) ufiaszkkulbabejh client.Authenticate(userName, userPwd); client.Send(message); client.Disconnect(true); } isOk = true; } catch (Exception ex) { throw ex.InnerException; } return isOk; } } }