今天一天早,公司需要将之前的.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 的發送方法,希望對大家有幫助!!如有問題請留言!!
每一天都是嶄新的,我們的目标有多遠,我們就能走多遠,堅持!!