Bri*_*n C 10 icalendar outlook calendar
我正在使用节点包生成 .ics 日历邀请ical-generator,并通过 mandrill 在电子邮件中发送附件。
.ics 日历邀请包含特定时间和日期的一项活动的信息。
生成文件示例:
BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//sebbo.net//ical-generator//EN
METHOD:REQUEST
NAME: xxxx Events
X-WR-CALNAME: xxxxx
BEGIN:VEVENT
UID:5wzd@xxx.com
SEQUENCE:0
DTSTAMP:20180318T202459Z
DTSTART:20180330T230000Z
DTEND:20180330T230000Z
SUMMARY:test
LOCATION:test
DESCRIPTION:test
ORGANIZER;CN="info":mailto:info@xxxx.com
END:VEVENT
END:VCALENDAR
Run Code Online (Sandbox Code Playgroud)
现在,用户会收到作为电子邮件附件的日历邀请,如果他们打开附件并单击“添加到日历”(在 Outlook 中),则可以将该事件添加到其日历中。
我需要进行哪些更改,以便邮件客户端自动解析日历邀请并将其添加到用户的日历中(在 meetup 和 eventbrite 等网站的电子邮件确认中可以找到类似的功能)。
不确定我是否了解电子邮件客户端、日历系统或 .ics 文件如何工作的上下文知识,以建立一个解决此问题的框架
非常感谢任何建议或资源指示!谢谢你!
Fer*_*nda 12
为了自动添加事件,您需要考虑三点:
电子邮件标头
为了让电子邮件客户端正确解析附加的 .ics 文件,您应该将计划方法和 MIME 信息添加到电子邮件标头。这是由iCalendar 基于消息的互操作性协议 (RFC 2447)指定的。
因此,您的标头应包含Content-Type、 Content-Transfer-Encoding和Content-Disposition,如下例所示:
Content-Type: text/calendar; charset=utf-8; method=REQUEST; name=invite.ics'
Content-Transfer-Encoding: Base64
Content-Disposition: attachment; filename=invite.ics
Run Code Online (Sandbox Code Playgroud)
iCalendar方法
当在 MIME 消息实体中使用时,“METHOD”的值必须与 Content-Type“method”相同。它只能在 iCalendar 对象中出现一次。该字段的值由iCalendar 传输独立互操作协议 (iTIP) (RFC 5546)定义。为了请求召开会议,该值应该是“REQUEST”。
METHOD:REQUEST
Run Code Online (Sandbox Code Playgroud)
“VEVENT”日历组件的与会者信息
此属性是特定“参加者”相对于事件的状态。它用于安排,并由每个参加者的“ATTENDEE”属性中的“PARTSTAT”参数定义。
ATTENDEE;PARTSTAT=ACCEPTED;CN="Jane
Doe";EMAIL=jdoe@gmail.com:MAILTO:jdoe@gmailcom
Run Code Online (Sandbox Code Playgroud)
以下是最小 .ics 文件的示例:
BEGIN:VCALENDAR
VERSION:2.0
CALSCALE:GREGORIAN
METHOD:REQUEST
BEGIN:VEVENT
UID:<unique-id>@<site>.com
DTSTAMP:20210605T073803Z
DTSTART;TZID=America/Guayaquil:20210614T030000
DTEND;TZID=America/Guayaquil:20210614T040000
SUMMARY:My Event
ORGANIZER;CN="Juan Perez":mailto:jperez@organizer.com
ATTENDEE;PARTSTAT=ACCEPTED;CN="Jane
Doe";EMAIL=jdoe@gmail.com:MAILTO:jdoe@gmailcom
URL;VALUE=URI:https://<site>.com/event/5960492994476830083
END:VEVENT
END:VCALENDAR
Run Code Online (Sandbox Code Playgroud)
欲了解更多详情,请看我的要点。
您能做的最好的事情就是确保 ics 文件设置良好,其中包含文本/日历标题等。
提供系统不能强制用户设备如何处理文件,它完全在接收者及其设备设置的控制范围内。例如,我将我的 Windows 电脑设置为在文本编辑器中打开 ics 文件,而我的 iPhone 将尝试添加到日历(icloud 的),但我实际上使用谷歌日历。Gmail 过去不会自动添加邀请,除非邀请已发送到 Gmail 地址,而我将其他域用于个人/家庭与工作,这些都转到 Gmail。我不确定这是否仍然是一个问题。我不想添加自动功能。
根据您开发的系统类型,您可能需要考虑让收件人订阅一次个人 ics URL,而不是一直发送单独的邀请。如果订阅,那么未来的活动/课程等将自动显示。我喜欢系统这样做,但很多时候他们不这样做。EG:单独报名参加的课程。
| 归档时间: |
|
| 查看次数: |
18753 次 |
| 最近记录: |