我正在開發一個帶有一個附件的電子郵件的asp.net c#應用程序。 附件是一個vCalendar文件。 下面的代碼:如何防止附件內容在郵件正文中顯示?
StringBuilder sbCalendar = new StringBuilder();
DateTime dtStart = eventDate;
DateTime dtEnd = eventDate;
sbCalendar.AppendLine("METHOD: REQUEST");
sbCalendar.AppendLine("BEGIN:VCALENDAR");
sbCalendar.AppendLine("PRODID:-//DP//NET");
sbCalendar.AppendLine("MIMEDIR//ENVERSION:1.0");
sbCalendar.AppendLine("METHOD:REQUEST");
sbCalendar.AppendLine("BEGIN:VEVENT");
sbCalendar.AppendLine("DTSTAMP:" + dtStart.ToUniversalTime().ToString("yyyyMMdd\\THHmmss\\Z"));
sbCalendar.AppendLine("DTSTART:" + dtStart.ToUniversalTime().ToString("yyyyMMdd\\THHmmss\\Z"));
sbCalendar.AppendLine("DTEND:" + dtEnd.ToUniversalTime().ToString("yyyyMMdd\\THHmmss\\Z"));
sbCalendar.AppendLine("LOCATION:" + eventLocation);
sbCalendar.AppendLine("DESCRIPTION;ENCODING=QUOTED-PRINTABLE:" + eventBody);
sbCalendar.AppendLine("SUMMARY:" + eventSubject);
sbCalendar.AppendLine("PRIORITY:3");
sbCalendar.AppendLine("UID:" + Guid.NewGuid().ToString());
sbCalendar.AppendLine("ATTENDEE;ROLE=REQ-PARTICIPANT;PARTSTAT=NEEDS-ACTION:MAILTO:[email protected]");
sbCalendar.AppendLine("ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED:MAILTO:[email protected]");
sbCalendar.AppendLine("CLASS:PUBLIC");
sbCalendar.AppendLine("ORGANIZER:MAILTO:[email protected]");
sbCalendar.AppendLine("SEQUENCE:0");
sbCalendar.AppendLine("STATUS:TENTATIVE");
sbCalendar.AppendLine("END:VEVENT");
sbCalendar.AppendLine("END:VCALENDAR");
byte[] byteArray = Encoding.UTF8.GetBytes(sbCalendar.ToString());
Stream contentStream = new MemoryStream(byteArray);
SmtpClient smtp = new SmtpClient("localhost");
MailMessage memo = new MailMessage();
memo.IsBodyHtml = true;
memo.From = new MailAddress("[email protected]");
foreach (string emailAddress in emailAddresses)
{
memo.To.Add(emailAddress);
}
memo.Body = messageBody;
memo.Subject = messageSubject;
Attachment attachment = new Attachment(contentStream, "termenLitigiu.ics", "text/calendar");
attachment.TransferEncoding = System.Net.Mime.TransferEncoding.Base64;
memo.Attachments.Add(attachment);
smtp.Send(memo);
這工作和做什麼是應該做的,它發出了一個工作vCalendar文件(由Outlook識別)。
的問題是,在郵件的正文中,除了消息體參數的內容,所附文件的內容同時出現,這樣的事情:
來源:發送發件人 :週二,10月05日,2010下午4:59 要:someemail
消息體的內容在這裏
方法:請求BEGIN :VCALENDAR PRODID: - // // DP NET MIMEDIR // ENVERSION:1.0 方法:REQUEST BEGIN:VEVENT DTSTAMP:20101006T135934Z DTSTART:20101006T135934Z DTEND:20101006T135934Z LOCATION:旅館距離Minstead 說明; ENCODING =引用打印:我的第一次會議摘要 :學習日曆和日程安排 PRIORITY:3 UID:721d9e3c-9010-47f5-9ad0-83c38cb0cbb7 ATTENDEE; ROLE = REQ-參與者; PARTSTAT =需要-ACTION:MAILTO:someemail ATTENDEE; ROLE = CHAIR; PARTSTAT = ACCEPTED:MAILTO:someemail CLASS :PUBLIC 組織者:MAILTO:someemail SEQUENCE:0 狀態:T ENTATIVE END:VEVENT END:VCALENDAR
我想擺脫文本的,並只顯示我的消息體參數的內容與剛剛附加到郵件消息vCalendar文件。 我該怎麼做?這是一個前景問題還是編碼問題?
編輯:我只對在Microsoft Outlook中顯示消息感興趣。我已經研究過該消息的來源(在Outlook中右鍵點擊>查看源代碼),我想擺脫的文本消息的找到解決的<body
></body
> HTML標記)