一 、在.Net Core中MailKit中提供了郵件的基礎封裝html
它支持跨平臺,而且支持 IMAP, POP3, SMTP 等協議mysql
Nuget命令:git
Install-Package MailKit
官方Git地址:https://github.com/jstedfast/MailKitgithub
注:sql
1.目前版本v1.16.1跨域
2.SmtpClient中處理編碼有些問題,對於服務器的異常相應中文顯示亂碼服務器
2、使用實例:微信
MimeMessage message = new MimeMessage(); //發件人 message.From.Add(new MailboxAddress("張三丰", "xxx@qq.com")); //收件人 message.To.Add(new MailboxAddress("測試", "xxx@163.com")); //標題 message.Subject = "測試標題內容"; //產生一個支持HTml 的TextPart TextPart body = new TextPart(TextFormat.Html) { Text = "<h1>測試內容</h1>" }; //建立Multipart添加附件 Multipart multipart = new Multipart("mixed"); multipart.Add(body); //附件 string absolutePath = @"F:\桌面\新建文件夾\mysql1.sql"; MimePart attachment = new MimePart() { //讀取文件,只能用絕對路徑 ContentObject = new ContentObject(File.OpenRead(absolutePath), ContentEncoding.Default), ContentDisposition = new ContentDisposition(ContentDisposition.Attachment), ContentTransferEncoding = ContentEncoding.Base64, //文件名字 FileName = Path.GetFileName(absolutePath) }; multipart.Add(attachment); //正文內容,發送 message.Body = multipart; //message.Body = body; using (SmtpClient client = new SmtpClient()) { //Smtp服務器 client.Connect("smtp.qq.com", 587, false); //登陸,發送 //特別說明,對於服務器端的中文相應,Exception中有編碼問題,顯示亂碼了 client.Authenticate("xxx@qq.com", "xxx"); client.Send(message); //斷開 client.Disconnect(true); Console.WriteLine("發送郵件成功"); }
關於郵件中待手機號的識別測試以下:post
(特別說明:目前沒找到,客戶端發送qq羣郵件的方法。 暫時仍是隻發給我的。 )測試
MimeMessage message = new MimeMessage(); //發件人 message.From.Add(new MailboxAddress("xxx@qq.com")); //收件人 message.To.Add(new MailboxAddress("xxxx@qq.com")); //標題 message.Subject = "測試"; //內容 TextPart body = new TextPart(TextFormat.Html) { //a標籤正常的話會被 客戶端屏蔽掉 //Text = "<h1>測試內容</h1> <a href='tel:15154123615'>15154123615</a>" //a標籤不正常關閉,客戶端能夠一鍵撥打(支持在IOS的QQ端,QQ郵箱App端 緣由:這兩個客戶端對於手機號自動識別) //在微信提醒客戶端中就不支持 Text = "<h1>測試內容</h1> <a href='tel:15154123615'>15154123615</tel>" }; message.Body = body; using (SmtpClient client = new SmtpClient()) { //smtp服務器 client.Connect("smtp.qq.com", 587, false); //登陸帳號 client.Authenticate("xxxx@qq.com", "password"); client.Send(message); client.Disconnect(true); Console.WriteLine("郵件發送成功"); }
更多: