私は、1 つの添付ファイルを含む電子メールを送信する 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:required@participant.foo");
sbCalendar.AppendLine("ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED:MAILTO:chair@foo.foo");
sbCalendar.AppendLine("CLASS:PUBLIC");
sbCalendar.AppendLine("ORGANIZER:MAILTO:organizer@foo.foo");
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("from@ddress.foo");
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);
これは機能し、想定されていることを実行し、機能する (Outlook によって認識される) vcalendar ファイルを送信します。
問題は、メールの本文に、messageBody パラメータの内容に加えて、次のような添付ファイルの内容も表示されることです。
差出人: 差出人 送信日: 2010 年 10 月 5 日火曜日午後 4 時 59 分 宛先: someemail
messageBody 内容はこちら
METHOD: REQUEST BEGIN:VCALENDAR PRODID:-//DP//NET MIMEDIR//ENVERSION:1.0 METHOD:REQUEST BEGIN:VEVENT DTSTAMP:20101006T135934Z DTSTART:20101006T135934Z DTEND:20101006T135934Z LOCATION:Minstead DESCRIPTION;ENCODING=first meetingPRINTUABLE概要:カレンダーとスケジューリングの学習 優先度:3 UID:721d9e3c-9010-47f5-9ad0-83c38cb0cbb7 ATTENDEE;ROLE=REQ-PARTICIPANT;PARTSTAT=NEEDS-ACTION:MAILTO:someemail ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED:MAILTO:someemail CLASS:PUBLIC ORGANIZER:MAILTO:someemail SEQUENCE:0 STATUS:TENTATIVE END:VEVENT END:VCALENDAR
そのテキストを取り除き、messageBody パラメーターの内容のみを表示し、vCalendar ファイルをメール メッセージに添付したいと考えています。これどうやってするの?これは見通しの問題ですか、それともコーディングの問題ですか?
編集: Microsoft Outlook でメッセージを表示することにのみ関心があります。メッセージのソースを調べました (Outlook で右クリック > ソースを表示)。削除したいテキストはメッセージの<body
> </body
> html タグ内にあります)