.Net Core郵件發送之MailKit

一 、在.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("郵件發送成功");
}

 

 

更多:

.NetCore中EFCore for MySql整理

Asp.Net Core WebAPI入門整理(三)跨域處理

Asp.Net Core中Json序列化處理整理

相關文章
相關標籤/搜索