亚洲乱色熟女一区二区三区丝袜,天堂√中文最新版在线,亚洲精品乱码久久久久久蜜桃图片,香蕉久久久久久av成人,欧美丰满熟妇bbb久久久

LOGO OA教程 ERP教程 模切知識(shí)交流 PMS教程 CRM教程 開(kāi)發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

SmtpClient發(fā)送郵件時(shí)附件名稱(chēng)亂碼

admin
2017年11月8日 0:20 本文熱度 7461

在用戶(hù)環(huán)境發(fā)現(xiàn)一個(gè)現(xiàn)象,使用System.Net.Mail.SmtpClient發(fā)送郵件,當(dāng)附件名包含中文且長(zhǎng)度較長(zhǎng)時(shí),最終的郵件里附件名會(huì)亂掉,寫(xiě)個(gè)簡(jiǎn)單的測(cè)試程序:

1
2
3
4
5
6
7
8
9
var mail = new MailMessage("from@test.com""to@test.com");
mail.Subject = "測(cè)試郵件亂碼";
var atta = new Attachment(@"C:\測(cè)試郵件中文出現(xiàn)亂碼20150115.rar");
mail.Attachments.Add(atta);
 
var smtp = new SmtpClient();
smtp.Host = "test.com";
smtp.Credentials = new NetworkCredential("from""test");
smtp.Send(mail);

使用Foxmail接收郵件,然后查看郵件原始信息,發(fā)現(xiàn)附件部分的MIME居然是這樣的:


這個(gè)怪異的name導(dǎo)致了在郵件客戶(hù)端里顯示亂碼。換不同的機(jī)器測(cè)試,有些機(jī)器是正常的,說(shuō)明與軟件環(huán)境有關(guān)。正常的郵件應(yīng)該是這樣的:


研究了一下,發(fā)現(xiàn)是.Net Framework的BUG,詳見(jiàn)微軟網(wǎng)站:http://support.microsoft.com/kb/2402064, 當(dāng)附件名超過(guò)41個(gè)utf8 byte時(shí),會(huì)錯(cuò)誤的進(jìn)行2次編碼導(dǎo)致的。 補(bǔ)丁見(jiàn) https://connect.microsoft.com/VisualStudio/Downloads/DownloadDetails.aspx?DownloadID=31723。


如果服務(wù)器未升級(jí),可以暫時(shí)修改程序來(lái)避開(kāi)這個(gè)BUG,主要是手工指定附件的名稱(chēng):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
var mail = new MailMessage("from@test.com""to@test.com");
mail.Subject = "測(cè)試郵件亂碼";
string file = @"C:\測(cè)試郵件中文出現(xiàn)亂碼20150115.rar";
var atta = new Attachment(file);
string name = Path.GetFileName(file);
string base64 = Convert.ToBase64String(Encoding.UTF8.GetBytes(name));
atta.ContentDisposition.FileName = string.Format("=?utf-8?B?{0}?=", base64);   //指定附件的filename
atta.Name = "attachment";           //指定MimePart的Name,不包含中文,這樣就不會(huì)被BUG影響
atta.NameEncoding = Encoding.UTF8;
mail.Attachments.Add(atta);
 
var smtp = new SmtpClient();
smtp.Host = "test.com";
smtp.Credentials = new NetworkCredential("from""test");
smtp.Send(mail);

此時(shí)收到的郵件是這樣的,注意劃紅線(xiàn)部分:



該文章在 2017/11/8 0:20:10 編輯過(guò)
關(guān)鍵字查詢(xún)
相關(guān)文章
正在查詢(xún)...
點(diǎn)晴ERP是一款針對(duì)中小制造業(yè)的專(zhuān)業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國(guó)內(nèi)大量中小企業(yè)的青睞。
點(diǎn)晴PMS碼頭管理系統(tǒng)主要針對(duì)港口碼頭集裝箱與散貨日常運(yùn)作、調(diào)度、堆場(chǎng)、車(chē)隊(duì)、財(cái)務(wù)費(fèi)用、相關(guān)報(bào)表等業(yè)務(wù)管理,結(jié)合碼頭的業(yè)務(wù)特點(diǎn),圍繞調(diào)度、堆場(chǎng)作業(yè)而開(kāi)發(fā)的。集技術(shù)的先進(jìn)性、管理的有效性于一體,是物流碼頭及其他港口類(lèi)企業(yè)的高效ERP管理信息系統(tǒng)。
點(diǎn)晴WMS倉(cāng)儲(chǔ)管理系統(tǒng)提供了貨物產(chǎn)品管理,銷(xiāo)售管理,采購(gòu)管理,倉(cāng)儲(chǔ)管理,倉(cāng)庫(kù)管理,保質(zhì)期管理,貨位管理,庫(kù)位管理,生產(chǎn)管理,WMS管理系統(tǒng),標(biāo)簽打印,條形碼,二維碼管理,批號(hào)管理軟件。
點(diǎn)晴免費(fèi)OA是一款軟件和通用服務(wù)都免費(fèi),不限功能、不限時(shí)間、不限用戶(hù)的免費(fèi)OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved