Отправка сообщения Outlook с помощью HTML-таблицы - PullRequest
0 голосов
/ 20 февраля 2012

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

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

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

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

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

function sendIcalEmail($htmlmsg,$email,$meeting_date,$s_ccemail) {</p>

<pre><code>$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 <noreply@domain.com>" . "\n";
$headers .= "Cc: ". $s_ccemail . "\n";
$headers .= "Reply-To: noreply@domain.com" . "\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";
</code>

$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; }}

1 Ответ

0 голосов
/ 31 июля 2012

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

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

...