这个想法是通过PHP邮件发送邮件到office365房间的电子邮件ID,其中包含会议开始时间和结束时间,现在一旦会议请求被Microsoft exchange接受,我需要在我的outlook中看到房间日历。
我已经尝试了Icalendar的方法,这是我通过php发送的ics格式。
'PRODID:-//Microsoft Corporation//Outlook 10.0 MIMEDIR//EN' . "rn" .
'VERSION:2.0' . "rn" .
'METHOD:REQUEST' . "rn" .
'BEGIN:VTIMEZONE' . "rn" .
'TZID:Eastern Time' . "rn" .
'BEGIN:STANDARD' . "rn" .
'DTSTART:20091101T020000' . "rn" .
'RRULE:FREQ=YEARLY;INTERVAL=1;BYDAY=1SU;BYMONTH=11' . "rn" .
'TZOFFSETFROM:-0400' . "rn" .
'TZOFFSETTO:-0500' . "rn" .
'TZNAME:EST' . "rn" .
'DTSTART:20090301T020000' . "rn" .
'RRULE:FREQ=YEARLY;INTERVAL=1;BYDAY=2SU;BYMONTH=3' . "rn" .
'TZOFFSETFROM:-0500' . "rn" .
'TZOFFSETTO:-0400' . "rn" .
'TZNAME:EDST' . "rn" .
'BEGIN:VEVENT' . "rn" .
'ORGANIZER;CN="'.$from_name.'":MAILTO:'.$from_address. "rn" .
'ATTENDEE;CN="'.$to_name.'";ROLE=REQ-PARTICIPANT;RSVP=TRUE:MAILTO:'.$to_address. "rn" .
'LAST-MODIFIED:' . date("YmdTGis") . "rn" .
'UID:'.date("YmdTGis", strtotime($startTime)).rand()."@".$domain."rn" .
'DTSTAMP:'.date("YmdTGis"). "rn" .
'DTSTART;TZID="Pacific Daylight":'.date("YmdTHis", strtotime($startTime)). "rn" .
'DTEND;TZID="Pacific Daylight":'.date("YmdTHis", strtotime($endTime)). "rn" .
'TRANSP:OPAQUE'. "rn" .
'SEQUENCE:1'. "rn" .
'SUMMARY:' . $subject . "rn" .
'LOCATION:' . $location . "rn" .
'CLASS:PUBLIC'. "rn" .
'PRIORITY:5'. "rn" .
'BEGIN:VALARM' . "rn" .
'TRIGGER:-PT15M' . "rn" .
'ACTION:DISPLAY' . "rn" .
'DESCRIPTION:Reminder' . "rn" .
'END:VALARM' . "rn" .
'END:VEVENT'. "rn" .
'END:VCALENDAR'. "rn";
但这里的问题是,这只与我的outlook电子邮件ID工作,这意味着当发送邮件时,它将显示在日历上。如果试图给房间(我在office 365管理面板中创建)电子邮件ID,它不会显示。
我最近遇到了一个叫做
的术语Exchange Web Services (EWS)
但是我不知道如何开始并集成到PHP中。
请告诉我任何建议或指示。
提前感谢。
我已经找到了答案。基本上,我需要在exchange online上启用set- caledarprocess设置。