【发布时间】:2015-02-26 18:49:45
【问题描述】:
我正在尝试创建在 Outlook 中发送的邀请电子邮件,用户通常可以选择接受在 Outlook 中填充日历的约会。我正在使用 PHP 邮件程序并遇到问题,请参见下文:
用户应如何接收电子邮件的示例:
但是,当发送电子邮件时,它实际上并没有发送邀请。而是发送文本,见下图收到的电子邮件(我已经审查了电子邮件和个人姓名):
老实说,我不知道出了什么问题,下面是我的代码。请假设变量具有分配给它们的值,否则将发布太多内容:
$participant_name = $userid_result["realname"];
$participant_email = $userid_result["email_primary"];
$to = $participant_email;
$organizer = 'jimmy Smith';
$organizer_email = 'jimmy@example.co.uk';
$participant_name_1 = $participant_name;
$participant_email_1= $participant_email;
$location = "N/A";
$date = $row_date_from;
$startTime = $row_date_from;
$endTime = $row_date_to;
$dateend = $row_date_to;
$subject = 'Holiday Request';
$desc = 'Email regarding your holiday request made on Vision';
$headers = 'Content-Type:text/calendar; Content-Disposition: inline; charset=utf-8;\r\n';
$headers .= "Content-Type: text/plain;charset=\"utf-8\"\r\n";
$message = "BEGIN:VCALENDAR\r\n
VERSION:2.0\r\n
PRODID:-//Vision/NONSGML v1.0//EN\r\n
METHOD:REQUEST\r\n
BEGIN:VEVENT\r\n
UID:" . md5(uniqid(mt_rand(), true)) . "example.com\r\n
DTSTAMP:" . gmdate('Ymd').'T'. gmdate('His') . "Z\r\n
DTSTART:".$date."T".$startTime."00Z\r\n
DTEND:".$dateend."T".$endTime."00Z\r\n
SUMMARY:".$subject."\r\n
ORGANIZER;CN=".$organizer.":mailto:".$organizer_email."\r\n
LOCATION:".$location."\r\n
DESCRIPTION:".$desc."\r\n
ATTENDEE;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT;PARTSTAT=NEEDS-ACTION;RSVP=TRUE;CN".$participant_name_1.";X-NUM-GUESTS=0:MAILTO:".$participant_email_1."\r\n
END:VEVENT\r\n
END:VCALENDAR\r\n";
// $headers .= $message;
$zero = 0;
send_email($to,$subject,$message,$zero,$headers);
send_email 函数的代码可以在这里阅读: http://pastebin.com/bxJFHUh8
问候
【问题讨论】:
标签: php calendar outlook phpmailer