附件与c#中的ics文件

时间:2016-02-04 08:55:20

标签: c# attachment icalendar mailmessage

我正在尝试使用C#将ICS(日历)文件发送给使用Office365读取它的人。 只发送ICS工作正常。但我必须附上一个文件。 此时,收到的邮件没有日历,或者日历附加到电子邮件中,无法使用,或者附件丢失。 我尝试了两种不同的方式:
1.使用ATTACH在VEVENT内发送附件; ENCODING = BASE64; VALUE = BINARY; X-FILENAME = file.txt:,但这并未显示Office365中的任何附件(如此处:Attaching a file to an iCalendar
2.将附件作为单独的文件发送,并使用ATTACH:CID:将其附加到VEVENT,但这次日历文件显示为附件

如果我可以格式化邮件消息,第二种方式应该工作:

multipart/mixed
  multipart/alternative
    text/plain
    text/calendar;method=REQUEST
  text/calendar (with a content-disposition:attachment)

(如Multipart email with text and calendar: Outlook doesn't recognize ics中所述)
如果我使用Outlook365发送日历邀请,则消息看起来就是这样。(但不附带日历作为附件,附加图像或文档)

但是使用System.Net.Mail.MailMessage,我可以生成这样的消息

multipart/mixed
  multipart/alternative
    text/plain
    text/calendar;method=REQUEST
  multipart/mixed
    text/plain (with a content-disposition:attachment)

Outlook 2007桌面版显示日历和附件,因此Outlook365对格式的要求非常严格。

但是,如何使用.NET类发送没有额外multipart / mixed部分的电子邮件? MailMessage类为Attachments集合生成一个新的部分,其内容类型为multipart / mixed,并将它们添加到顶层。

0 个答案:

没有答案