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

Php 格式化outlook的电子邮件/邀请以自动呈现为日历事件,php,email,calendar,outlook,icalendar,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

我制作了一个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正常工作?

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

在outlook中向其他客户端发送日历邀请,并查看接收端的电子邮件源。这将显示outlook希望在传入的日历请求中看到的内容。您应该显示所有电子邮件标题,以帮助我们调试您的问题。仅仅依附iCalendar是不够的。