我们有一个.NET应用程序,可以手动生成会议邀请以发送给用户。我们使用的流程如下:
这适用于传统的Outlook 2007 / Exchange设置(附件不可见,并且邮件被视为会议请求),但是一旦我们升级到Outlook 2010 / Office 365,就无法识别嵌入式ICS数据消息显示为附加了ICS文件的常规消息。删除附件会生成正确识别的消息。我们不确定是导致更改的新Outlook版本还是Office 365,但它必须是其中之一。
有没有人知道为什么会改变它以及我们如何解决它?
答案 0 :(得分:2)
我们遇到了类似的问题。在我们的案例中,我们的邮件服务器从Exchange 2003升级到Exchange 2010,我们公司将一些人的电子邮件帐户迁移到2010年。我们仍然使用outlook 2007作为前端。我们有一个.NET应用程序,可以将会议邀请创建为Alernative View并将其发送给收件人。那些已迁移电子邮件帐户的人不再接收邀请作为会议请求,而只是普通电子邮件。那些留在2003年交换中的人没有问题作为会议请求获得邀请。我在网上搜索,发现Exchange 2010改变了它处理.ics文件的方式,它比以前的版本更具限制性。最糟糕的是它没有遵循RFC标准,并且微软认为,试图找出哪个部分阻止他们的交换2010正确解释.ics并不是他们的关注。所以我的解决方法是不发送.ics作为替代视图,而是将其作为附件发送。当在已迁移到2010的电子邮件帐户中收到该附件时,用户可以看到该附件,并且用户可以单击该附件以将其导入其日历。
答案 1 :(得分:0)
Outlook / Exchange期望邮件类型为文本/日历,而不是文本/多部分。
答案 2 :(得分:0)
最近在使用System.Net.Mail时遇到此问题:
此问题的根本原因是: 当您的电子邮件包含附件时,MailMessage将生成如下消息:
multipart/mixed
multipart/alternative
text/plain
text/calendar;method=REQUEST
multipart/mixed
content-type (with a content-disposition:attachment)
但是Outlook365期望该消息为:
multipart/mixed
multipart/alternative
text/plain
text/calendar;method=REQUEST
content-type (with a content-disposition:attachment)
Outlook收到错误的附件格式时。某些方法,它将忽略日历部分。
我的解决方案:我决定使用MailKit而不是System.Net.Mail发送电子邮件。通过使用此库,我可以控制邮件格式。