格式化Outlook的电子邮件/邀请以自动呈现为日历事件

时间:2015-06-02 15:33:20

标签: php email calendar outlook icalendar

我制作了一个PHP脚本,发送一封包含iCal文件的电子邮件,其中包含以下格式的内容:

BEGIN:VCALENDAR
VERSION:2.0
PRODID:MEETINGSENDER
CALSCALE:GREGORIAN
METHOD:REQUEST
BEGIN:VEVENT
DTSTART:20150616T130000Z
DTEND:20150616T140000Z
DTSTAMP:20150616T120000Z
ORGANIZER;CN=meetingorganizer@sampledomain.com:mailto:meetingorganizer@sampledomain.com
UID:21898556db8793bd3c@testdomain.com
ATTENDEE;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;RSVP= TRUE;CN=meetingorganizer@sampledomain.com;X-

NUM-GUESTS=0:mailto:meetingorganizer@sampledomain.com
ATTENDEE;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT;PARTSTAT=NEEDS-ACTION;RSVP= TRUE;CN=testattendee@company.com;X-NUM-

GUESTS=0:mailto:testattendee@company.com
ATTENDEE;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT;PARTSTAT=NEEDS-ACTION;RSVP= TRUE;CN=testattendee2@company.com.com;X-

NUM-GUESTS=0:mailto:testattendee2@company.com.com
CREATED:20150616T120000Z
DESCRIPTION:Thank you for requesting a meeting!
LAST-MODIFIED:20150616T120000Z
LOCATION:Phone Meeting
SEQUENCE:0
STATUS:CONFIRMED
SUMMARY:This is a test meeting
TRANSP:OPAQUE
END:VEVENT
END:VCALENDAR

当gmail客户端收到电子邮件时,会议呈现为日历项目,并为用户提供自动添加到日历的选项(而不是必须下载ICS文件并手动执行此操作)。

但是,当Outlook客户端收到电子邮件时,它不会提供日历选项,例如接受,拒绝等。而是用户必须下载该文件。这很奇怪,因为如果我使用outlook从gmail向用户发送邀请,它会为他们提供默认的日历选项,例如批准,拒绝等。

我是否遗漏了iCal文件中的内容,或者我是否需要在电子邮件内容中使用某种特殊的元数据/标题才能正常使用Outlook?

1 个答案:

答案 0 :(得分:0)

尝试使iCal成为具有文本/日历内容类型的邮件的唯一MIME部分。