2015-05-25 2 views
1

Я пытаюсь отправить многостраничную электронную почту с вложением календаря. Когда нет файлов вложений вложений, приглашение хорошо распознается по Outlook и показывает календарный блок событий. Но когда я добавил дополнительный файл ics в качестве вложения, не отображается календарный блок. Как я могу это исправить?Почта с содержимым ics не распознается по прогнозу

MailMessage message = new MailMessage(new MailAddress(_replyAddress), new MailAddress(to)) { Subject = subject, Body = body }; 
message.IsBodyHtml = isBodyHtml; 
message.BodyEncoding = Encoding.UTF8; 
message.SubjectEncoding = Encoding.UTF8; 
var attach = new System.Net.Mail.Attachment(stream, nameOfAttachFile, "application/ics"); 
ContentDisposition desposition = attach.ContentDisposition; 
desposition.Inline = false; 
desposition.FileName = nameOfAttachFile; 
message.Attachments.Add(attach); 

System.Net.Mime.ContentType mimeType = new System.Net.Mime.ContentType("text/calendar; method=REQUEST"); 
AlternateView icalView = AlternateView.CreateAlternateViewFromString(attachText, mimeType); 
icalView.TransferEncoding = TransferEncoding.QuotedPrintable; 
message.AlternateViews.Add(icalView); 

client.Send(message); 

Календарь строки:

   "BEGIN:VCALENDAR", 
          "PRODID:-//Microsoft Corporation//Outlook 14.0 MIMEDIR//EN", 
          "VERSION:2.0", 
          "CALSCALE:GREGORIAN", 
          "METHOD:REQUEST", 
          "BEGIN:VEVENT", 
          "DTSTART;TZID=Europe/London:" + message.date.Date.ToString("yyyyMMdd\\T")+message.time.Substring(0,5).Replace(":","")+"00", 
          "DTEND;TZID=Europe/London:" + message.date.Date.ToString("yyyyMMdd\\T")+message.time.Substring(6,5).Replace(":","")+"00", 
          "DTSTAMP:" + DateTime.Now.ToUniversalTime().ToString("yyyyMMdd'T'HHmmss'Z'"), 
          "LAST-MODIFIED:"+ DateTime.Now.ToUniversalTime().ToString("yyyyMMdd'T'HHmmss'Z'"), 
          "ORGANIZER;CN=" + message.userBookerFullName + ":mailto:" + message.userBookerEmail, 
          "UID:" + input.JobRef + "@example.com", 
          "STATUS:CONFIRMED", 
          "TRANSP:OPAQUE", 
          "LOCATION:" + message.studioAddress, 
          "DESCRIPTION:" + Description.Replace("\r\n","\\n").Replace(";","\\;").Replace(",","\\,"), 
          "SUMMARY:" + Subject, 
          "SEQUENCE:" + ((input.template == MessageTemplate.BookingChangeConfirmationWithCharges || 
              input.template == MessageTemplate.BookingChangeConfirmationWithoutCharges || 
              input.template == MessageTemplate.PresentersChangeInvitation 
             ) ? "1" : "0"), 
        "END:VEVENT", 
        "END:VCALENDAR" 

ответ

Смежные вопросы