Php 使用html表发送Outlook ical邮件

Php 使用html表发送Outlook ical邮件,php,outlook,icalendar,Php,Outlook,Icalendar,我一直在开发一个简单的HTML表单,它会向用户询问信息,当提交时,会有一个PHP脚本,通过日历邀请向某些人发送电子邮件 我还希望这个日历邀请的主体有一个HTML主体-包括一个HTML表 通过下面的代码,我可以使用PHP的邮件功能发送电子邮件,并生成约会。我也可以添加HTML内容,但是表格会被剥离 我在某个地方读到日历邀请只支持RTF。这可能是真的,但我注意到在OWA账户中,表格并没有被剥离 有人能解释一下我的困境吗?谢谢 我遇到了一个类似的问题,但对我来说,outlook 2003会接受一些格式

我一直在开发一个简单的HTML表单,它会向用户询问信息,当提交时,会有一个PHP脚本,通过日历邀请向某些人发送电子邮件

我还希望这个日历邀请的主体有一个HTML主体-包括一个HTML表

通过下面的代码,我可以使用PHP的邮件功能发送电子邮件,并生成约会。我也可以添加HTML内容,但是表格会被剥离

我在某个地方读到日历邀请只支持RTF。这可能是真的,但我注意到在OWA账户中,表格并没有被剥离

有人能解释一下我的困境吗?谢谢


我遇到了一个类似的问题,但对我来说,outlook 2003会接受一些格式,outlook 2007会接受其他格式,而outlook 2010也会接受其他格式。我能够从php获得一个工作ICAL,并将其发布在

希望这能对你有所帮助

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