gpt4 book ai didi

c# - 为什么 outlook 嗅探器不处理我的日历邀请?

转载 作者:行者123 更新时间:2023-11-30 16:59:08 27 4
gpt4 key购买 nike

由我的 ASP.net 应用程序生成的邀请,作为带有 .ics 附件的电子邮件发送到 Outlook 2010,嗅探器未处理。因此,它们不会在日历中显示为暂定,并且在预览 Pane 中不可用。 .ics 附件似乎有效,可以通过双击在 Outlook 中打开。发送到 Gmail 的相同邀请会得到处理,无需担心。对于同一问题,我已经排除了一些可接受的解决方案...

  • Outlook 已正确配置,并且可以毫无问题地处理 Gmail 邀请
  • 消息以 Content-Type 发送:multipart/mixed,附件为文本/日历。
  • DTEND 跟随 DTSTART !
  • 邀请包括组织者和与会者。

我的邀请和 Gmail 之间最明显的区别是没有 DKIM 签名,但其他人没有这个也成功了。更一般地说,有没有人找到任何关于嗅探器的操作、日志记录或故障排除的微软文档?

这是我的 .ics 附件。

BEGIN:VCALENDAR
VERSION:2.0
CALSCALE:GREGORIAN
METHOD:REQUEST
BEGIN:VEVENT
DTSTART:20140617T083644Z
DTEND:20140617T093644Z
DTSTAMP:20140617T083647Z
ORGANIZER;CN=sby@dimo-gestion.fr:mailto:sby@dimo-gestion.fr
ATTENDEE;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT;PARTSTAT=NEEDS-ACTION;RSVP=
FALSE;CN=bbsimonbb@gmail.com;X-NUM-GUESTS=0:mailto:bbsimonbb@gmail.com
CREATED:20140617T083647Z
DESCRIPTION:Description of flying to Sligo
LAST-MODIFIED:20140617T083647Z
LOCATION:
SEQUENCE:0
STATUS:CONFIRMED
SUMMARY:Fly to Sligo
TRANSP:OPAQUE
UID:20140617T083647Z
END:VEVENT
END:VCALENDAR

属性 X-MS-OLK-FORCEINSPECTOROPEN,指定 here , 没有帮助。

我的文件通过了 this 中提到的三个 iCalendar 验证器问题

天哪,互联网上挤满了无法将邀请发送到 Outlook 的用户。 Here , here , 和 here .

共识似乎是您需要在日历 MIME 部分的标题中的内容类型之后添加“; method=REQUEST”。问题是,.net System.Net.Mail 库似乎不提供设置此行的低级别访问。狩猎仍在继续。

最佳答案

好的,我已经破解了。对我有用的解决方案是结合这两个建议 here .文本/日历部分必须是消息的唯一部分,method=REQUEST 必须出现在 Content-Type header 中。

要在 .net 中实现此目的,您可以按如下方式使用 AlternateViews...

MailMessage msg = new MailMessage();
msg.From = new MailAddress("gonzo@work");
msg.To.Add("gonzo@home");

System.Net.Mime.ContentType mimeType = new System.Net.Mime.ContentType("text/calendar; method=REQUEST");
AlternateView icalView = AlternateView.CreateAlternateViewFromString(icalendarString, mimeType);
icalView.TransferEncoding = TransferEncoding.SevenBit;
msg.AlternateViews.Add(icalView);
client.Send(msg);

好的一点是,在没有正文、附件或其他替代 View 的情况下,.net 足够聪明,可以只用一个部分 来构建邮件。使用 alternateView 仍然是必要的,因为它是控制 Content-type header 的唯一方法。对于想要在 .net 中设置简单单部分邮件的 Content-Type 的任何其他人来说,这个技巧可能很有用。然后,生成的邮件看起来像这样......

MIME-Version: 1.0
From: gonzo@work
To: gonzo@home
Subject: Fly to Sligo
Content-Type: text/calendar; method=REQUEST
Content-Transfer-Encoding: 7bit

BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//www.notilus.com//Dimo Gestion Notilus//FR
CALSCALE:GREGORIAN
METHOD:REQUEST
X-MS-OLK-FORCEINSPECTOROPEN:TRUE
BEGIN:VEVENT
DTSTART:20140619T080132Z
DTEND:20140619T090132Z
DTSTAMP:20140619T080132Z
ORGANIZER;CN=gonzo@work:mailto:gonzo@work
ATTENDEE;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT;PARTSTAT=NEEDS-ACTION;RSVP=
FALSE;CN=gonzo@home;X-NUM-GUESTS=0:mailto:gonzo@home
CREATED:20140619T080132Z
DESCRIPTION:Description of flying to Sligo
X-ALT-DESC;FMTTYPE=text/html:<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//E
N">\n<html>\n<body>\n<table border="1"><tr><td>\n<b>HTML</b> Description o
f flying to Sligo\n</td></tr><tr><td>\n<ul><li>HTML has certain advantages
</li></ul>\n</td></tr></table>\n</body>\n</html>
LAST-MODIFIED:20140619T080132Z
LOCATION:
SEQUENCE:0
STATUS:CONFIRMED
SUMMARY:Fly to Sligo
TRANSP:OPAQUE
UID:20140619T080132Z
END:VEVENT
END:VCALENDAR

非常感谢 gmail,它毫不费力地构建了一个工作示例,并提供了奇妙的“显示原始”选项。如上所述,谷歌以某种方式设法正确处理了更复杂的消息,但您需要成为谷歌程序员才能弄明白。

关于c# - 为什么 outlook 嗅探器不处理我的日历邀请?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24259827/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com