今天一天早,公司需要将之前的.net Core项目增加一个预处理机制,就是当程序出现异常后给我们的开发人员发送邮件,因为今天写些关于.netCore上发送邮件。
根据查阅资料发现在目前的Core1.0还没有直接发送邮件的类库,因此使用MailKit包来进行邮件的发送!
1.首先使用Nuget将 NETCore.MailKit 引用到程序中,然后调用该程序包进行发送,具体方法在下面!
1 #region 发送邮件 2 /// <summary> 3 /// 发送邮件 4 /// </summary> 5 /// <param name="email"></param> 6 /// <param name="subject"></param> 7 /// <param name="message"></param> 8 public static void SendEmail(string email, string subject, string message) 9 { 10 var emailMessage = new MimeMessage(); 11 emailMessage.From.Add(new MailboxAddress(emailAddressName, emailUserName)); 12 string[] emailArray = email.Split(','); 13 foreach (var item in emailArray) 14 { 15 emailMessage.To.Add(new MailboxAddress(item)); 16 } 17 emailMessage.Subject = subject; 18 emailMessage.Body = new TextPart("plain") { Text = message }; 19 using (var client = new SmtpClient()) 20 { 21 client.Connect(emailHost, 465, true); 22 client.Authenticate(emailUserName, emailPassword); 23 client.Send(emailMessage); 24 client.Disconnect(true); 25 } 26 } 27 /// <summary> 28 /// 异步发送邮件 29 /// </summary> 30 /// <param name="email"></param> 31 /// <param name="subject"></param> 32 /// <param name="message"></param> 33 /// <returns></returns> 34 public static async Task SendEmailAsync(string email, string subject, string message) 35 { 36 var emailMessage = new MimeMessage(); 37 emailMessage.From.Add(new MailboxAddress(emailAddressName, emailUserName)); 38 emailMessage.To.Add(new MailboxAddress("mail", email)); 39 emailMessage.Subject = subject; 40 emailMessage.Body = new TextPart("plain") { Text = message }; 41 42 using (var client = new SmtpClient()) 43 { 44 await client.ConnectAsync(emailHost, 25, SecureSocketOptions.None).ConfigureAwait(false); 45 await client.AuthenticateAsync(emailUserName, emailPassword); 46 await client.SendAsync(emailMessage).ConfigureAwait(false); 47 await client.DisconnectAsync(true).ConfigureAwait(false); 48 } 49 }
以上就是调用MailKit 的发送方法,希望对大家有帮助!!如有问题请留言!!