【发布时间】:2015-08-16 12:02:55
【问题描述】:
我制作了一个 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 客户端收到电子邮件时,它不会提供日历选项,例如接受、拒绝等。相反,用户必须下载 ical 文件。这很奇怪,因为如果我从 gmail 向使用 Outlook 的用户发送邀请,它会为他们提供默认日历选项,例如批准、拒绝等。
我是否遗漏了 iCal 文件中的某些内容,或者我是否需要在电子邮件内容中添加某种特殊的元数据/标题才能使 Outlook 正常工作?
【问题讨论】:
-
在 Outlook 中向其他客户端发送日历邀请,并在接收端查看电子邮件源。这将向您显示 Outlook 期望在收到的日历请求中看到什么。
-
您应该显示所有电子邮件标题以帮助我们调试您的问题。仅 iCalendar 附件是不够的。
标签: php email calendar outlook icalendar