Я пытаюсь создать файл .ics на PHP, который отправляется пользователю. Решение хорошо работает в Gmail (я получаю причудливое приглашение со всей информацией, появляющейся в нужных местах), но Outlook, похоже, вообще не распознает его. Я получаю пустое электронное письмо без прикрепления, и никакое событие не добавляется ни к календарю, насколько я могу это видеть.Outlook не распознает сообщение ics
Я подозреваю, что проблема лежит где-то в заголовках, но у меня очень мало опыта работы с почтовыми протоколами, и я не могу точно определить это. Я занимаюсь этим весь день, пожалуйста, помогите :(
Обновление: по какой-то странной причине я получаю приглашение, и оно отображается как приложение на iPhone, которое синхронизируется с моей учетной записью Exchange. Это настольный Outlook, не получается. Почему?
Вот код во все его славе.
$message =
"BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//Microsoft Corporation//Outlook 14.0 MIMEDIR//EN
METHOD:REQUEST
X-MS-OLK-FORCEINSPECTOROPEN:TRUE
CALSCALE:GREGORIAN
BEGIN:VEVENT
DTSTAMP: $timestamp
DTSTART: $datestart
DTEND: $dateend
UID: $uniqueid
LOCATION: $address
DESCRIPTION: $description
URL;VALUE=URI: $uri
SUMMARY: $summary
END:VEVENT
END:VCALENDAR";
// Mail parameters
$newline = "\r\n";
$headers = "From: InnovationskontorEtt Dashboard <[email protected]>\n";
$headers .= "MIME-Version: 1.0\n";
$headers .= "Content-Type: text/calendar; charset=utf-8; name=inbjudan.ics; method=REQUEST".$newline;
$headers .= "Content-Disposition: inline; filename=inbjudan.ics".$newline;
$headers .= "Content-Transfer-Encoding: 7bit";
$subject = $summary;
$to = '[email protected]';
/*mail send*/
if(mail($to, $subject, $message, $headers)) : ?>
<div class="alert alert-warning">
Evenemanget skickades till din kalender.
</div>
<?php else : ?>
<div class="alert alert-danger">
Det gick inte att skicka evenemanget till din kalender.
</div>
<?php endif; ?>
Спасибо за комментарии! Добавление свойств, которые вы описали, устранило проблему, и я также изменил Content-Disposition from Inline to Attachment, который отсортировал проблему с пустыми сообщениями, форматируя приглашение в качестве вложения. –
@MaijaVilkina Не могли бы вы опубликовать код, который сработал для вас? – Roark
@Roark: вот скрипт, который работал для меня: http://pastebin.com/Rc9BJe02 –