使用 php 将会议邀请发送到 Outlook 房间

问题描述

这个想法是通过 PHP 邮件程序向 office365 房间电子邮件 ID 发送一封包含会议开始时间和结束时间的电子邮件,现在一旦 Microsoft Exchange 接受会议请求,我需要在我的 Outlook 的房间日历中看到它。

我已经尝试过使用 Icalendar 的方法,这是我通过 PHP 发送的 ics 格式。

'PRODID:-//Microsoft Corporation//Outlook 10.0 MIMEDIR//EN' . "\r\n" .
'VERSION:2.0' . "\r\n" .
'METHOD:REQUEST' . "\r\n" .
'BEGIN:VTIMEZONE' . "\r\n" .
'TZID:Eastern Time' . "\r\n" .
'BEGIN:STANDARD' . "\r\n" .
'DTSTART:20091101T020000' . "\r\n" .
'RRULE:FREQ=YEARLY;INTERVAL=1;BYDAY=1SU;BYMONTH=11' . "\r\n" .
'TZOFFSETFROM:-0400' . "\r\n" .
'TZOFFSETTO:-0500' . "\r\n" .
'TZNAME:EST' . "\r\n" .
'DTSTART:20090301T020000' . "\r\n" .
'RRULE:FREQ=YEARLY;INTERVAL=1;BYDAY=2SU;BYMONTH=3' . "\r\n" .
'TZOFFSETFROM:-0500' . "\r\n" .
'TZOFFSETTO:-0400' . "\r\n" .
'TZNAME:EDST' . "\r\n" .
'BEGIN:VEVENT' . "\r\n" .
'ORGANIZER;CN="'.$from_name.'":MAILTO:'.$from_address. "\r\n" .
'ATTENDEE;CN="'.$to_name.'";ROLE=REQ-PARTICIPANT;RSVP=TRUE:MAILTO:'.$to_address. "\r\n" .
'LAST-MODIFIED:' . date("Ymd\TGis") . "\r\n" .
'UID:'.date("Ymd\TGis",strtotime($startTime)).rand()."@".$domain."\r\n" .
'DTSTAMP:'.date("Ymd\TGis"). "\r\n" .
'DTSTART;TZID="Pacific Daylight":'.date("Ymd\THis",strtotime($startTime)). "\r\n" .
'DTEND;TZID="Pacific Daylight":'.date("Ymd\THis",strtotime($endTime)). "\r\n" .
'TRANSP:OPAQUE'. "\r\n" .
'SEQUENCE:1'. "\r\n" .
'SUMMARY:' . $subject . "\r\n" .
'LOCATION:' . $location . "\r\n" .
'CLASS:PUBLIC'. "\r\n" .
'PRIORITY:5'. "\r\n" .
'BEGIN:VALARM' . "\r\n" .
'TRIGGER:-PT15M' . "\r\n" .
'ACTION:disPLAY' . "\r\n" .
'DESCRIPTION:Reminder' . "\r\n" .
'END:VALARM' . "\r\n" .
'END:VEVENT'. "\r\n" .
'END:VCALENDAR'. "\r\n";

但这里的问题是,这仅适用于我的 Outlook 电子邮件 ID,这意味着发送邮件时它将显示在日历上。如果尝试提供空间(我在 Office 365 管理面板中创建的)电子邮件 ID,则它不会显示

我最近还遇到了一个术语,叫做

交换网络服务 (EWS)

但我不知道如何开始和集成 PHP

请告诉我任何建议或指示。

提前致谢。

解决方法

我已经找到了答案。基本上我需要在在线交换中启用 set-caledarProccess 设置。