天天看點

.net Core1.0 郵件發送

  今天一天早,公司需要将之前的.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 的發送方法,希望對大家有幫助!!如有問題請留言!!

每一天都是嶄新的,我們的目标有多遠,我們就能走多遠,堅持!!

繼續閱讀