我有一个.NET应用程序,它以.ics文件的形式发送会议请求。以下是我正在做的一些事情,以使其发挥作用。
添加备用视图并附加生成的.ics文件
AlternateView alternate = new AlternateView(vcsAttachment," text / calendar; method = REQUEST;"); msg.AlternateViews.Add(候补);
CreateAlternateViewFromString
AlternateView alternate1 = AlternateView.CreateAlternateViewFromString(body),null," text / html"); msg.AlternateViews.Add(alternate1);
安排会议显示预期的“接受”,“拒绝”按钮。 http://screencast.com/t/lU08FiXowhc
这里的问题是:
更新同一会议请求或取消会议请求时,收件人正在收到附件的电子邮件不支持日历message.ics
http://screencast.com/t/kD89nbTa
以下是为安排会议而生成的.ics。
BEGIN:VCALENDAR
PRODID:-//Microsoft Corporation//Outlook 11.0 MIMEDIR//EN
VERSION:2.0
METHOD:REQUEST
BEGIN:VEVENT
ATTENDEE;ROLE=REQ-PARTICIPANT;RSVP=TRUE:MAILTO:participant@company.com
ORGANIZER;CN="Organizer":MAILTO:organizer@test.ccc
DTSTART:20141231T010000Z
DTEND:20141231T010000Z
TRANSP:OPAQUE
SEQUENCE:0
UID:Company-interview-123
DTSTAMP:20141223T232322Z
SUMMARY:Interview Scheduled for Job
DESCRIPTION:test
LOCATION:Test Location
PRIORITY:5
X-MICROSOFT-CDO-IMPORTANCE:1
CLASS:PUBLIC
BEGIN:VALARM
TRIGGER:-PT15M
ACTION:DISPLAY
DESCRIPTION:Reminder
END:VALARM
END:VEVENT
END:VCALENDAR
为重新安排会议请求而生成的.ics文件。
BEGIN:VCALENDAR
PRODID:-//Microsoft Corporation//Outlook 11.0 MIMEDIR//EN
VERSION:2.0
METHOD:REQUEST
BEGIN:VEVENT
ATTENDEE;ROLE=REQ-PARTICIPANT;RSVP=TRUE:MAILTO:participant@company.com
ORGANIZER;CN="Organizer":MAILTO:organizer@test.ccc
DTSTART:20141231T010000Z
DTEND:20141231T010000Z
TRANSP:OPAQUE
SEQUENCE:1
UID:Company-interview-123
DTSTAMP:20141223T232538Z
SUMMARY:Updated Interview Scheduled for Job
DESCRIPTION:test
LOCATION:Test Location
PRIORITY:5
X-MICROSOFT-CDO-IMPORTANCE:1
CLASS:PUBLIC
BEGIN:VALARM
TRIGGER:-PT15M
ACTION:DISPLAY
DESCRIPTION:Reminder
END:VALARM
END:VEVENT
END:VCALENDAR
我在这里遗漏了什么吗?对于其他电子邮件客户端,其工作正常,我可以查看会议请求。
答案 0 :(得分:2)
我也遇到问题"不支持calender message.ics"当iCalendar ORGANIZER 的地址不等于电子邮件(会议请求) FROM 地址时。在第二种情况下确保它们在重新安排时是相同的。
更新:将iCalendar作为 AlternativeView发送的测试代码显示您提供的两条iCalendar消息本身都很好。请参阅OWA的截图:
答案 1 :(得分:2)
在我们的.NET应用程序中,.ics日历事件存在此问题。
@Eugene D. Gubenkov提供的解决方案,用于使 FROM 地址与 ORGANIZER 地址相同,但在Amazon Simple Email Service(SES)上不起作用用于发送电子邮件,因为之前 FROM 地址必须在Amazon SES中得到批准。
我们通过将值设置为 SentBy 属性(https://github.com/rianjs/ical.net/blob/master/v2/ical.NET/DataTypes/Organizer.cs)来解决此问题。
CalendarEvent calendarEvent = new CalendarEvent();
string organizer = "email-organizer@example.com";
string defaultFromEmailAddress = "email-from@example.com";
calendarEvent.Organizer = new Organizer()
{
Value = new Uri("mailto:" + organizer),
SentBy = new Uri("mailto:" + defaultFromEmailAddress)
};
更改后,生成的.ics如下:
BEGIN:VCALENDAR
METHOD:REQUEST
PRODID:-//github.com/rianjs/ical.net//NONSGML ical.net 4.0//EN
VERSION:2.0
BEGIN:VEVENT
ATTENDEE;RSVP=TRUE:mailto:email-organizer@example.com
ATTENDEE;RSVP=TRUE:mailto:attendee1@example.com
ATTENDEE;RSVP=TRUE:mailto:attendee2@example.com
DESCRIPTION:Description for this meeting
DTEND:20190927T163000Z
DTSTAMP:20190927T111043Z
DTSTART:20190927T153000Z
LOCATION:Slack
ORGANIZER;SENT-BY="mailto:email-from@example.com":mailto:
email-organizer@example.com
PRIORITY:0
SEQUENCE:0
SUMMARY:Description for this meeting
TRANSP:OPAQUE
UID:194e3146-ba93-4e32-9175-6aecbe87b682
X-ALT-DESC;FMTTYPE=text/html:<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//
EN\">\n<html>\n<head>\n <meta charset="utf-8" />\n <title></title>\
n</head>\n<body>\n <label>Meeting T
itle: Meeting to test ics calendar</label>\n <br />\n <label>Date:
09.27.2019 - 09.27.2019</label>\n <br />\n <label>Time: 5:30 PM - 6
:30 PM</label>\n <br />\n <label>Location: Slack</label>\n <br /
>\n <p>Please respond to the event to process the invitation and updat
e your calendar. Additional meeting details and the agenda may be found <
a href="http://URLToMeetingDetailsPage">here</a>
</p></body>\n</html>
END:VEVENT
END:VCALENDAR
主要区别是在此行中添加了 SENT-BY
ORGANIZER;SENT-BY="mailto:email-from@example.com":mailto:email-organizer@example.com
Outlook中“日历”事件的屏幕截图: Calendar event in Outlook
答案 2 :(得分:0)
不得将ICS文件作为附件发送。它必须是具有正确设置的内容类型标题的邮件的唯一MIME部分。
答案 3 :(得分:0)
@nimi:重申这一事实,发现这种奇怪的行为是特定于Office 365帐户的。 这是指向Office 365社区帮助热线网站中打开的支持服务单的链接: MS Community issue link 目前还没有来自MS支持人员的任何更新,所以目前唯一的解决方案似乎是将 ORGANIZER:mailto:地址设置为与 FROM相同: 电子邮件地址。