我需要通過電子郵件在html中發送一些文本。但我需要做的不是在電子郵件正文中,而是在附件中。我用這個代碼段,形成一個附件:如何在附件中發送html?
public MailMessage GetMailMessage(string @from)
{
var m = new MailMessage(new MailAddress(@from), new MailAddress(_to)) {Subject = _subj};
var attach = new Attachment(new MemoryStream(
Encoding.UTF8.GetBytes(_htmlAttach)), _subj + ".html", MediaTypeNames.Text.Html);
attach.ContentDisposition.Inline = false;
attach.ContentType.Name = _subj + ".html";
m.Attachments.Add(attach);
return m;
}
但是,當我發這樣的郵件到我的Gmail郵箱我在文本收到一個純文本消息水木清華這樣的:
\ =?utf-8?B?dDlDd0lOQy8wTFhSZ05DNDBMN1F0Q0F4Pz0NCiA9P3V0Zi04P0I/TXpv?=\ \ =?utf-
8?B?ME5pQXlPUzR3T0M0eU1ERXhJQzBnTVRRNk1qQWdNamt1TURndU1qQXhN?=\ \ =?utf-8?B?UzVvZEcxcz89?="
Content-Transfer-Encoding: base64 Content-Disposition: attachment
PCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEvL0VO
IiAiaHR0cDovL3d3dy53My5vcmcvVFIvaHRtbDQvc3RyaWN0LmR0ZCI+DQo8aHRt
bCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIgeG1sOmxhbmc9 ImVuIj4NCjxoZWFkPg0KI
什麼在附件中發送html文件是否正確? Thnx提前。
UPD:這裏是原始郵件的一部分:
MIME-Version: 1.0
From: <[email protected]>
To: [email protected]
Date: Mon, 29 Aug 2011 03:29:05 -0700 (PDT)
Subject: xxx
Content-Type: multipart/mixed; boundary=--boundary_0_c99e5172-1766-4cfe-a6e0-7f6b0fa11061
----boundary_0_c99e5172-1766-4cfe-a6e0-7f6b0fa11061
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: quoted-printable
----boundary_0_c99e5172-1766-4cfe-a6e0-7f6b0fa11061
Content-Type: text/html;
name="=?utf-8?B?PT91dGYtOD9CPzBLUFFzdEMxMExUUXZ0QzgwTHZRdGRDOTBMalF0U0RR?=\
\
=?utf-8?B?dDlDd0lOQy8wTFhSZ05DNDBMN1F0Q0F4Pz0NCiA9P3V0Zi04P0I/TXpv?=\
\
=?utf-8?B?ME5pQXlPUzR3T0M0eU1ERXhJQzBnTVRRNk1qQWdNamt1TURndU1qQXhN?=\
\
=?utf-8?B?UzVvZEcxcz89?="
Content-Transfer-Encoding: base64
Content-Disposition: attachment
然後就以base64文本:
PCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEvL0VO
IiAiaHR0cDovL3d3dy53My5vcmcvVFIvaHRtbDQvc3RyaWN0LmR0ZCI+DQo8aHRt
bCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIgeG1sOmxhbmc9
ImVuIj4NCjxoZWFkPg0KICAgIDxtZXRhIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hh
而在最後:
----boundary_0_c99e5172-1766-4cfe-a6e0-7f6b0fa11061--
文件名看起來不對。 「Content-Type:text/html;」後面是否有換行符?你的樣本中的反斜槓,它們是字面的嗎?他們不應該在那裏。在反斜槓後換行符。最後,文件名看起來像是RFC2047編碼的多次傳遞;第一個短語解碼爲以'=?utf-8?B?'開始的內容......' – tripleee
這是**解碼的**文件名:= = utf-8?B?0KPQstC10LTQvtC80LvQtdC90LjQtSDQt9CwINC/0LXRgNC40L7QtCAx?= = ?utf-8?B?Mzo0NiAyOS4wOC4yMDExIC0gMTQ6MjAgMjkuMDguMjAxMS5odG1s?='(sic!)解碼後得到'Уведомлениезапериод13:46 29.08.2011 - 14:20 29.08.2011.html'。至少應該去掉雙重編碼。 – tripleee