Asp.net mvc 5 MVC应用程序生成的带有事件邀请的电子邮件未与outlook.com中的日历同步

Asp.net mvc 5 MVC应用程序生成的带有事件邀请的电子邮件未与outlook.com中的日历同步,asp.net-mvc-5,icalendar,outlook.com,Asp.net Mvc 5,Icalendar,Outlook.com,我正在创建ASP.NET MVC5应用程序。一个功能是发送带有活动邀请的电子邮件。在Gmail客户端中,这样生成的电子邮件工作正常。但在outlook.com中,即使电子邮件有正确的按钮-接受/暂定/拒绝-单击它们也不会将其同步到日历中 我在这里得到了一些启发: 以下是我当前的实现: 我正在使用DDay.ical库创建事件: IICalendar iCal = new iCalendar(); iCal.Version = "2.0"; iCal.Method = "REQUEST"; i

我正在创建ASP.NET MVC5应用程序。一个功能是发送带有活动邀请的电子邮件。在Gmail客户端中,这样生成的电子邮件工作正常。但在outlook.com中,即使电子邮件有正确的按钮-接受/暂定/拒绝-单击它们也不会将其同步到日历中

我在这里得到了一些启发:




以下是我当前的实现:

我正在使用DDay.ical库创建事件:

IICalendar iCal = new iCalendar();
iCal.Version = "2.0";
iCal.Method = "REQUEST";
iCal.ProductID = "my@product.com";

Event evt = iCal.Create<Event>();
evt.UID = Guid.NewGuid().ToString();
evt.Class = "PUBLIC";
evt.Created = new iCalDateTime(DateTime.Now);
evt.DTStamp = new iCalDateTime(DateTime.Now);
evt.Start = new iCalDateTime(DateTime.Now.AddHours(2));
evt.End = new iCalDateTime(DateTime.Now.AddHours(4));
evt.Location = "Party room";
evt.Description = "Awesome party";
evt.Summary = "Lets get wasted";
evt.Priority = 5;
evt.Transparency = TransparencyType.Transparent;

string res = new iCalendarSerializer().SerializeToString(iCal);
return res;
以下是.ics本身:

BEGIN:VCALENDAR
VERSION:2.0
METHOD:REQUEST
PRODID:my@product.com
BEGIN:VEVENT
CLASS:PUBLIC
CREATED:20151115T152442
DESCRIPTION:Awesome party
DTEND:20151115T192442
DTSTAMP:20151115T142442Z
DTSTART:20151115T172442
LOCATION:Party room
PRIORITY:5
SEQUENCE:0
SUMMARY:Lets get wasted
TRANSP:Transparent
UID:1735cdca-cb36-4e6b-a1ec-4fb4149f798a
END:VEVENT
END:VCALENDAR
当这封电子邮件发送到Gmail客户端时,我可以正确地看到邀请,并可以选择将活动添加到日历中,这很好

但在outlook.com中,即使电子邮件本身被正确识别为邀请,并且我可以看到“接受/暂定/拒绝”按钮,它也无法按预期工作。当我单击例如“接受”选项时,将创建新的响应电子邮件,当我发送电子邮件时,我希望事件将在我的日历中设置,但没有同步事件

有人能看看为什么outlook.com的日历中没有同步事件吗? 此外,outlook.com中是否有可能只在日历中设置事件,而不发送响应电子邮件邀请由系统自动生成,无需响应


谢谢

最后我找到了一个解决方案-在.ics中缺少VEVENT部分的组织者参数。Gmail能够处理这个问题,Outlook.com则不然。因此,诀窍是在设置DDay.iCal.Event对象时添加以下行:

evt.Organizer = new Organizer("organizer@mail.com");
其他一切都没有改变,因此在Gmail和Outlook.com中都可以使用的.ics的最终外观如下:

BEGIN:VCALENDAR
VERSION:2.0
METHOD:REQUEST
PRODID:my@product.com
BEGIN:VEVENT
CLASS:PUBLIC
CREATED:20151115T152442
DESCRIPTION:Awesome party
DTEND:20151115T192442
DTSTAMP:20151115T142442Z
DTSTART:20151115T172442
LOCATION:Party room
ORGANIZER:mailto:organizer@email.com
PRIORITY:5
SEQUENCE:0
SUMMARY:Lets get wasted
TRANSP:Transparent
UID:1735cdca-cb36-4e6b-a1ec-4fb4149f798a
END:VEVENT
END:VCALENDAR
现在它工作得很好

BEGIN:VCALENDAR
VERSION:2.0
METHOD:REQUEST
PRODID:my@product.com
BEGIN:VEVENT
CLASS:PUBLIC
CREATED:20151115T152442
DESCRIPTION:Awesome party
DTEND:20151115T192442
DTSTAMP:20151115T142442Z
DTSTART:20151115T172442
LOCATION:Party room
ORGANIZER:mailto:organizer@email.com
PRIORITY:5
SEQUENCE:0
SUMMARY:Lets get wasted
TRANSP:Transparent
UID:1735cdca-cb36-4e6b-a1ec-4fb4149f798a
END:VEVENT
END:VCALENDAR