Отправка Outlook ical сообщения с таблицей HTML

Я работал над простой HTML-формой, которая будет запрашивать у пользователя информацию, а при отправке будет иметь PHP-скрипт по электронной почте определенным людям с календарным приглашением.

Я также хочу, чтобы тело этого календарного приглашения имело тело HTML с включенной таблицей HTML.

С помощью приведенного ниже кода я могу отправить электронное письмо, используя почтовую функцию PHP, и она генерирует встречу. Я также могу добавить HTML-контент, но таблица будет удалена.

Я где-то читал, что приглашение в календарь поддерживает только RTF. Это может быть правдой, однако я заметил, что в учетной записи OWA таблица не удаляется.

Может ли кто-нибудь пролить свет на мою дилемму? Спасибо!

function sendIcalEmail($htmlmsg,$email,$meeting_date,$s_ccemail) {

$from_name = "sender name"
$from_address = "sender email"
$subject = "Test Appointment"; //Doubles as email subject and meeting subject in calendar
$meeting_description = "Description"    


//Convert MYSQL datetime and construct iCal start, end and issue dates
$meetingstamp = strtotime($meeting_date . " EST");    
$dtstart= gmdate("Ymd\THis\Z",$meetingstamp);
$dtend= gmdate("Ymd\THis\Z",$meetingstamp+7200);
$todaystamp = gmdate("Ymd\THis\Z");

//Create unique identifier
$cal_uid = date("Ymd")."T".date("His")."-".rand()."@mydomain.com";

//Create Mime Boundry
$mime_boundary = "----Meeting Booking----".md5(time());

//Create Email Headers
$headers = "From: Sender Name <[email protected]>" . "\n";
$headers .= "Cc: ". $s_ccemail . "\n";
$headers .= "Reply-To: [email protected]" . "\n";

$headers .= "MIME-Version: 1.0\n";
$headers .= "Content-Type: multipart/alternative; boundary=\"$mime_boundary\"\n";
$headers .= "Content-class: urn:content-classes:calendarmessage\n";

//Create Email Body (HTML)
$message = "";
$message .= "--$mime_boundary\n";
$message .= "Content-Type: text/html; charset=UTF-8\n";
$message .= "Content-Transfer-Encoding: 7bit\n\n";

$message .= $htmlmsg . "\r\n";

$message .= "--{$mime_boundary}\n";

$ical = "
BEGIN:VCALENDAR
PRODID:-//Microsoft Corporation//Outlook 10.0 MIMEDIR//EN
VERSION:2.0
METHOD:PUBLISH
BEGIN:VEVENT
ORGANIZER:MAILTO:".$from_address."
DTSTART:".$dtstart."
DTEND:".$dtend."
LOCATION:
TRANSP:OPAQUE
SEQUENCE:0
UID:".$cal_uid."
DTSTAMP:".$todaystamp."
DESCRIPTION:".$meeting_description."
SUMMARY:".$subject."
PRIORITY:5
CLASS:PUBLIC
END:VEVENT
END:VCALENDAR";

$message .= "Content-Type: text/calendar;name="meeting.ics";method=REQUEST;charset=utf-8\n"; $message .= "Content-Type: text/calendar;name="meeting.ics";method=REQUEST\n"; $message .= "Content-Transfer-Encoding: 8bit\n\n"; $message .= $ical; //SEND MAIL $mail_sent = @mail( $email, $subject, $message, $headers ); if($mail_sent) { return true; } else { return false; }}

person user1217744    schedule 20.02.2012    source источник


Ответы (1)


Я столкнулся с аналогичной проблемой, но для меня Outlook 2003 принимал одни форматы, Outlook 2007 принимал другие, и подумайте, что Outlook 2010 принимает даже другие. Мне удалось получить рабочий ICAL с php и разместить его на Форумы ExchangeCore

Надеюсь, это вам поможет.

person Joe Meyer    schedule 31.07.2012