当前位置: 首页 > 编程语言 > C#

为什么outlook嗅探器没有处理我的icalendar邀请?Share

时间:2023-04-11 02:48:42 C#

为什么我的icalendar邀请没有被outlook嗅探器处理?嗅探器不处理由我的ASP.net应用程序生成的邀请,作为带有.ics附件的电子邮件发送到Outlook2010。因此,它们不会在日历中显示为暂定,并且在预览窗格中不可用。.ics附件似乎有效,可以在Outlook中双击打开。发送到Gmail的相同邀请无需担心。我已经排除了针对同一问题的一些解决方案...我的邀请和Gmail之间最明显的区别是没有DKIM签名,但其他人没有这个也取得了成功。更一般地说,有没有人找到任何关于嗅探器的操作、日志记录或故障排除的Microsoft文档?这是我的.ics附件。BEGIN:VCALENDARVERSION:2.0CALSCALE:GREGORIANMETHOD:REQUESTBEGIN:VEVENTDTSTART:20140617T083644ZDTEND:20140617T093644ZDTSTAMP:20140617T083647ZORGANIZER;CN=sby@dimo-gestion.fr:moto-ENDE.INDIVEID@dimo-gestion.fr:mo-to-ENDGEstionID@dimo-dtend:20140617T093644Z组织者;ROLE=REQ-PARTICIPANT;PARTSTAT=NEEDS-ACTION;RSVP=FALSE;CN=bbsimonbb@gmail.com;X-NUM-GUESTS=0:mailto:bbsimonbb@gmail.comCREATED:20140617T083647ZDESCRIPTION:飞往斯莱戈的描述LAST-MODIFIED:20140617T083647ZLOCATION:SEQUENCE:0STATUS:CONFIRMEDSUMMARY:FlytoSligoTRANSP:OPAQUEUID:20140617T083647ZEND:VEVENTEND:VCALENDAR此处指定的属性X-MS-OLK-FORCEINSPECTOROPEN没有帮助。我的文件通过了这个问题中提到的三个iCalendar验证程序,我的天哪,互联网正在堵塞那些无法获得Outlook邀请的人。这里,这里和这里。共识似乎是您需要在日历MIME部分的标题中的内容类型之后添加“;method=REQUEST”。问题是,.netSystem.Net.Mail库似乎不提供设置此行的低级别访问。狩猎仍在继续。好的,我已经破解了。对我有用的解决方案是这两个建议的组合。文本/日历部分必须是消息的唯一部分,并且method=REQUEST必须出现在Content=Type标头中。要在.net中实现此目的,您可以按如下方式使用AlternateViews...MailMessagemsg=newMailMessage();msg.From=newMailAddress("gonzo@work");msg.To.Add("gonzo@home");System.Net.Mime.ContentTypemimeType=newSystem.Net.Mime.ContentType("text/calendar;method=REQUEST");AlternateViewicalView=AlternateView.CreateAlternateViewFromString(icalendarString,mimeType);icalView.TransferEncoding=TransferEncoding.SevenBit;味精.AlternateViews.Add(icalView);客户端。发送(消息);好处是,在没有文本、附件或其他替代视图的情况下,.net足够智能,可以构建仅包含一个部分的消息。使用alternateView仍然是必要的,因为它是控制Content-type标头的唯一方法。对于想要在.net中设置简单单部分邮件的Content-Type的任何其他人,此技巧可能会有用。然后,生成的电子邮件如下所示...MIME版本:1.0发件人:gonzo@work收件人:gonzo@home主题:飞往斯莱戈内容类型:文本/日历;method=REQUESTContent-Transfer-Encoding:7bitBEGIN:VCALENDARVERSION:2.0PRODID:-//www.notilus.com//DimoGestionNotilus//FRCALSCALE:GREGORIANMETHOD:REQUESTX-MS-OLK-FORCEINSPECTOROPEN:TRUE开始:VEVENTDTSTART:20140619T080132ZDTEND:20140619T090132ZDTSTAMP:20140619T080132ZORGANIZER;CN=gonzo@work:mailto:gonzo@workATTENDEE;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT;PARTSTAT=NEEDS-ACTIONAL@;RSVCNP=gonSEhome;X-NUM-GUESTS=0:mailto:gonzo@homeCREATED:20140619T080132ZDESCRIPTION:飞往斯莱戈的描述SEQUENCE:0RMEDlySUARliMMtoCONFIDTRANSP:OPAQUEUID:20140619T080132ZEND:VEVENTEND:VCALENDAR非常感谢gmail,毫不费力地构建了一个工作示例,以及非凡的“显示原始”选项。如上所述,Google以某种方式设法正确处理更复杂的消息,但您需要成为Google程序员才能弄清楚这一点。这很可能与您的邮件MIME结构有关。您可能必须将icalendar流放入multipart/alternative(参见http://tools.ietf.org/html/rfc6047#section-4.2),或者更糟的是,multipart/mixed与multipart/alternative以适应所有客户端。以上就是C#学习教程:为什么我的icalendar邀请没有被outlook嗅探器处理?如果所有分享的内容对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: