1. <ul id="0c1fb"></ul>

      <noscript id="0c1fb"><video id="0c1fb"></video></noscript>
      <noscript id="0c1fb"><listing id="0c1fb"><thead id="0c1fb"></thead></listing></noscript>

      99热在线精品一区二区三区_国产伦精品一区二区三区女破破_亚洲一区二区三区无码_精品国产欧美日韩另类一区

      RELATEED CONSULTING
      相關(guān)咨詢
      選擇下列產(chǎn)品馬上在線溝通
      服務(wù)時間:8:30-17:00
      你可能遇到了下面的問題
      關(guān)閉右側(cè)工具欄

      新聞中心

      這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
      SmtpClient發(fā)送郵件時附件名稱亂碼-創(chuàng)新互聯(lián)

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

      10年積累的網(wǎng)站設(shè)計、成都做網(wǎng)站經(jīng)驗,可以快速應(yīng)對客戶對網(wǎng)站的新想法和需求。提供各種問題對應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識你,你也不認(rèn)識我。但先網(wǎng)站制作后付款的網(wǎng)站建設(shè)流程,更有武義免費網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。
      var mail = new MailMessage("from@test.com", "to@test.com");
      mail.Subject = "測試郵件亂碼";
      var atta = new Attachment(@"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居然是這樣的:

      SmtpClient發(fā)送郵件時附件名稱亂碼

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

      SmtpClient發(fā)送郵件時附件名稱亂碼

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

      如果服務(wù)器未升級,可以暫時修改程序來避開這個BUG,主要是手工指定附件的名稱:

      var mail = new MailMessage("from@test.com", "to@test.com");
      mail.Subject = "測試郵件亂碼";
      string file = @"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 = "p_w_upload";           //指定MimePart的Name,不包含中文,這樣就不會被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);

      此時收到的郵件是這樣的,注意劃紅線部分:

      SmtpClient發(fā)送郵件時附件名稱亂碼

      另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。


      分享標(biāo)題:SmtpClient發(fā)送郵件時附件名稱亂碼-創(chuàng)新互聯(lián)
      標(biāo)題網(wǎng)址:http://www.ef60e0e.cn/article/dgccio.html
      99热在线精品一区二区三区_国产伦精品一区二区三区女破破_亚洲一区二区三区无码_精品国产欧美日韩另类一区
      1. <ul id="0c1fb"></ul>

        <noscript id="0c1fb"><video id="0c1fb"></video></noscript>
        <noscript id="0c1fb"><listing id="0c1fb"><thead id="0c1fb"></thead></listing></noscript>

        温州市| 潞城市| 民权县| 枝江市| 台南市| 海口市| 呼伦贝尔市| 黄骅市| 龙井市| 绥阳县| 安龙县| 镇沅| 贵港市| 波密县| 涡阳县| 海林市| 皋兰县| 城步| 秭归县| 潞西市| 二手房| 馆陶县| 普定县| 深州市| 通州市| 丰台区| 潍坊市| 昆山市| 萨嘎县| 沅江市| 邹平县| 亚东县| 海原县| 无锡市| 正安县| 镶黄旗| 昌江| 保康县| 久治县| 岱山县| 万全县|