Недавно моя организация перешла с размещенного Exchange в Rackspace на Office365.
У меня был рабочий скрипт для отправки событий, написанных на php, чтобы события, которые можно было принять или отклонить в Outlook 2010. Однако, похоже, что миграция сломала скрипт. После события я теперь вижу тело сообщения электронной почты, заполненное данными моей iCalender, как показано ниже:
BEGIN:VCALENDAR
VERSION:2.0
PRODID:-fgdfg
METHOD:REQUEST
BEGIN:VEVENT
UID:abc
DTSTAMP:20150909T052235Z
DTSTART:20150908T040000Z
DTEND:20150908T060000Z
SUMMARY:abc
ORGANIZER;CN=name:mailto:[email protected]
DESCRIPTION:abc
LOCATION:asdasd
END:VEVENT
END:VCALENDAR
Код для создания события и отправки электронного письма приведен ниже:
$desc = 'abc';
$start = '20150908T0400';
$end = '20150908T0600';
$location = 'asdasd';
$message = "BEGIN:VCALENDAR
VERSION:2.0
PRODID:-fgdfg
METHOD:REQUEST
BEGIN:VEVENT
UID:".$desc."DTSTAMP:" . gmdate('Ymd').'T'. gmdate('His') . "Z
DTSTART:".$start."00Z
DTEND:".$end."00Z
SUMMARY:".$desc."ORGANIZER;CN=".$organizer.":mailto:".$organizer_email."DESCRIPTION:".$desc."LOCATION:".$location."END:VEVENT
END:VCALENDAR";
$headers .= $message;
$mail = new PHPMailer;
$mail->IsSMTP();
$mail->CharSet = "utf8";
$mail->SMTPDebug = 1;
$mail->SMTPAuth = true;
$mail->SMTPSecure = 'tls';
$mail->Host = "smtp.office365.com";
$mail->Port = xx;
$mail->IsHTML(false);
$mail->Username = "[email protected]";
$mail->Password = "pwd";
$mail->SetFrom("$organizer_email");
$mail->AddAddress($to,"xx");
$mail->Subject = "$desc";
$mail->Body = "$message";
$mail->AddCustomHeader($headers);
if(!$mail->Send())//Send mail
{
echo "Mailer Error: " . $mail->ErrorInfo;
}
else
{
echo "\n".$desc." message has been sent";
}
Единственное, что изменилось для почты Office365 — это имя сервера, номер порта и ssl в tls.
Любая помощь приветствуется.
Задача ещё не решена.
Других решений пока нет …