Настройка часового пояса в приглашении на собрание по электронной почте не работает

У меня есть функция в API моего приложения, которая может отправлять запрос календаря Outlook.

Вот код, который строит отправленное письмо:

$headers = 'Content-Type:text/calendar; Content-Disposition: inline; charset=utf-8;\r\n';

$message =  "BEGIN:VCALENDAR\r\n";
$message .= "VERSION:2.0\r\n";
$message .= "PRODID:-//Deathstar-mailer//theforce/NONSGML v1.0//EN\r\n";
$message .= "METHOD:REQUEST\r\n";
$message .= "BEGIN:VEVENT\r\n";
$message .= "UID:" . md5(uniqid(mt_rand(), true)) . "example.com\r\n";
$message .= "DTSTAMP:" . gmdate('Ymd').'T'. gmdate('His') . "Z\r\n";
$message .= "DTSTART:".$date."T".$startTime."00Z\r\n";

/**
These headers were taken from the duplicate question, but they don't
seem to make a difference to how the event is displayed in my calendar.
**/
$message .= "BEGIN:VTIMEZONE\r\n";
$message .= "TZID:Europe/London\r\n";
$message .= "BEGIN:STANDARD\r\n";
$message .= "TZOFFSETFROM:-0100\r\n";
$message .= "TZOFFSETTO:-0100\r\n";
$message .= "DTSTART:".$date."T".$startTime."00Z\r\n";
$message .= "TZNAME:GMT\r\n";
$message .= "END:STANDARD\r\n";
$message .= "END:VTIMEZONE\r\n";

$message .= "DTEND:".$date."T".$endTime."00Z\r\n";
$message .= "SUMMARY:".$subject."\r\n";
$message .= "ORGANIZER;CN=".$organizer.":mailto:".$organizer_email."\r\n";
$message .= "LOCATION:".$location."\r\n";
$message .= "DESCRIPTION:".$desc."\r\n";

foreach($attendees as $attendee){
$message .= "ATTENDEE;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT;PARTSTAT=NEEDS-ACTION;RSVP=TRUE;CN".$attendee[0].";X-NUM-GUESTS=0:MAILTO:".$attendee[1]."\r\n";
}

$message .= "END:VEVENT\r\n";
$message .= "END:VCALENDAR\r\n";

но когда запрос по электронной почте отправляется и добавляется в календарь, Outlook, хотя $startTime а также $endTime переменные 09:00 а также 10:00запрос календаря помещает событие в 10.00 в 11:00,

Я полагаю, что это потому, что мне не хватает параметра часового пояса в заголовках почты, но я не знаю, как установить его в Europe/London часовой пояс, как я бы использовал date_default_timezone_set('Europe/London') в PHP.

Я проверил заголовки почты на клиенте Outlook, и заголовки содержат правильные $startTime а также $endTime ценности.

Может кто-нибудь предоставить мне почтовый заголовок, чтобы установить часовой пояс в календаре? Я уже пробовала Часовой пояс в icalendar или vcalendar приглашение на встречу и это включено в мой код выше, но это, кажется, не имеет никакого значения? Правильно ли я структурировал заголовки?

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]