简体   繁体   English

ics文件未反映在Outlook日历中

[英]ics file not reflected in outlook calendar

I am trying to send an meeting invite from a php code, I am sending the meeting invite through an ics file. 我正在尝试从php代码发送会议邀请,我正在通过ics文件发送会议邀请。 However the ics file is coming in as attachment in Gmail but not being reflected in Ms Outlook. 但是,ics文件以附件形式出现在Gmail中,但未反映在Outlook女士中。

This is the following File Format that I have: 这是我拥有的以下文件格式:

BEGIN:VCALENDAR
PRODID:-//Microsoft Corporation//Outlook 10.0 MIMEDIR//EN
VERSION:2.0
METHOD:REQUEST
X-MS-OLK-FORCEINSPECTOROPEN:TRUE
BEGIN:VEVENT
ATTENDEE;CN=mail@veershubhranshu.com;RSVP=TRUE:mailto:mail@veershubhranshu.com
ATTENDEE;CN=srivastav.veer@gmail.com;RSVP=TRUE:mailto:srivastav.veer@gmail.com
ATTENDEE;CN=veer@veershubhranshu.com;RSVP=TRUE:mailto:veer@veershubhranshu.com
CLASS:PUBLIC
CREATED:20140626T005704Z
DESCRIPTION:When: Thursday\, June 26\, 2014 10:00 AM-10:30 AM (UTC-08:00) P
    acific Time (US & Canada).\nWhere: Nowhere\n\nNote: The GMT offset above d
    oes not reflect daylight saving time adjustments.\n\n*~*~*~*~*~*~*~*~*~*\n
    \nsdcsdascsdcs\n
DTEND:20140626T173000Z
DTSTAMP:20140626T005704Z
DTSTART:20140626T170000Z
LAST-MODIFIED:20140626T005704Z
LOCATION:Nowhere
ORGANIZER;CN="Veer Shubhranshu Shrivastav":mailto:mail.@veershubhranshu.com
PRIORITY:5
SEQUENCE:0
SUMMARY;LANGUAGE=en-us:Test Meeting
TRANSP:OPAQUE
UID:040000008200E00074C5B7101A82E00800000000E02849DF9E90CF01000000000000000
    010000000D1CC646A48A62440A0D2308D1F4960AA
X-ALT-DESC;FMTTYPE=text/html:<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//E
    N">\n<HTML>\n<HEAD>\n<META NAME="Generator" CONTENT="MS Exchange Server ve
    rsion 08.00.0681.000">\n<TITLE></TITLE>\n</HEAD>\n<BODY>\n<!-- Converted f
    rom text/rtf format -->\n\n<P DIR=LTR><SPAN LANG="en-us"><FONT FACE="Calib
    ri">When: Thursday\, June 26\, 2014 10:00 AM-10:30 AM (UTC-08:00) Pacific 
    Time (US &amp\; Canada).</FONT></SPAN></P>\n\n<P DIR=LTR><SPAN LANG="en-us
    "><FONT FACE="Calibri">Where: Nowhere</FONT></SPAN></P>\n\n<P DIR=LTR><SPA
    N LANG="en-us"><FONT FACE="Calibri">Note: The GMT offset above does not re
    flect daylight saving time adjustments.</FONT></SPAN></P>\n\n<P DIR=LTR><S
    PAN LANG="en-us"><FONT FACE="Calibri">*~*~*~*~*~*~*~*~*~*</FONT></SPAN></P
    >\n\n<P DIR=LTR><SPAN LANG="en-us"><FONT FACE="Calibri">sdcsdascsdcs</FONT
    ></SPAN><SPAN LANG="en-us"></SPAN></P>\n\n</BODY>\n</HTML>
X-MICROSOFT-CDO-BUSYSTATUS:TENTATIVE
X-MICROSOFT-CDO-IMPORTANCE:1
X-MICROSOFT-CDO-INTENDEDSTATUS:BUSY
X-MICROSOFT-DISALLOW-COUNTER:FALSE
X-MS-OLK-ALLOWEXTERNCHECK:TRUE
X-MS-OLK-AUTOSTARTCHECK:FALSE
X-MS-OLK-CONFTYPE:0
X-MS-OLK-SENDER;CN="Veer Shubhranshu Shrivastav":mailto:mail@veershubhranshu.com
BEGIN:VALARM
TRIGGER:-PT15M
ACTION:DISPLAY
DESCRIPTION:Reminder
END:VALARM
END:VEVENT
END:VCALENDAR

I am not able to figure out where is the problem. 我无法弄清楚问题出在哪里。 This is my Php code 这是我的PHP代码

<?php
$domain = 'xyz.com';

//Create Email Headers
$mime_boundary = "----Meeting Booking----".MD5(TIME());

$headers = "From: ".$from_name." <".$from_address.">\n";
$headers .= "Reply-To: ".$from_name." <".$from_address.">\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 = "--$mime_boundary\r\n";
$message .= "Content-Type: text/html; charset=UTF-8\n";
$message .= "Content-Transfer-Encoding: 8bit\n\n";
$message .= "<html>\n";
$message .= "<body>\n";
$message .= '<p>Dear '.$to_name.',</p>';
$message .= '<p>'.$description.'</p>';
$message .= "</body>\n";
$message .= "</html>\n";
$message .= "--$mime_boundary\r\n";

$ical =
'BEGIN:VCALENDAR' . "\r\n" .
'PRODID:-//Microsoft Corporation//Outlook 10.0 MIMEDIR//EN' . "\r\n" .
'VERSION:2.0' . "\r\n" .
'METHOD:REQUEST' . "\r\n" .
'X-MS-OLK-FORCEINSPECTOROPEN:TRUE'."\r\n".
'BEGIN:VEVENT'."\r\n".
'ATTENDEE;CN=mail@veershubhranshu.com;RSVP=TRUE:mailto:mail@veershubhranshu.com'."\r\n".
'ATTENDEE;CN=srivastav.veer@gmail.com;RSVP=TRUE:mailto:srivastav.veer@gmail.com'."\r\n".
'ATTENDEE;CN=veer@veershubhranshu.com;RSVP=TRUE:mailto:veer@veershubhranshu.com'."\r\n".
'CLASS:PUBLIC'."\r\n".
'CREATED:20140626T005704Z'."\r\n".
'DESCRIPTION:When: Thursday\, June 26\, 2014 10:00 AM-10:30 AM (UTC-08:00) P
acific Time (US & Canada).\nWhere: Nowhere\n\nNote: The GMT offset above d
oes not reflect daylight saving time adjustments.\n\n*~*~*~*~*~*~*~*~*~*\n
\nsdcsdascsdcs\n'."\r\n".
'DTEND:20140626T173000Z'."\r\n".
'DTSTAMP:20140626T005704Z'."\r\n".
'DTSTART:20140626T170000Z'."\r\n".
'LAST-MODIFIED:20140626T005704Z'."\r\n".
'LOCATION:Nowhere'."\r\n".
'ORGANIZER;CN="Veer Shubhranshu Shrivastav":mailto:mail.@veershubhranshu.com'."\r\n".
'PRIORITY:5'."\r\n".
'SEQUENCE:0'."\r\n".
'SUMMARY;LANGUAGE=en-us:Test Meeting'."\r\n".
'TRANSP:OPAQUE'."\r\n".
'UID:040000008200E00074C5B7101A82E00800000000E02849DF9E90CF01000000000000000
010000000D1CC646A48A62440A0D2308D1F4960AA'."\r\n".
'X-ALT-DESC;FMTTYPE=text/html:<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//E
N">\n<HTML>\n<HEAD>\n<META NAME="Generator" CONTENT="MS Exchange Server ve
rsion 08.00.0681.000">\n<TITLE></TITLE>\n</HEAD>\n<BODY>\n<!-- Converted f
rom text/rtf format -->\n\n<P DIR=LTR><SPAN LANG="en-us"><FONT FACE="Calib
ri">When: Thursday\, June 26\, 2014 10:00 AM-10:30 AM (UTC-08:00) Pacific 
Time (US &amp\; Canada).</FONT></SPAN></P>\n\n<P DIR=LTR><SPAN LANG="en-us
"><FONT FACE="Calibri">Where: Nowhere</FONT></SPAN></P>\n\n<P DIR=LTR><SPA
N LANG="en-us"><FONT FACE="Calibri">Note: The GMT offset above does not re
flect daylight saving time adjustments.</FONT></SPAN></P>\n\n<P DIR=LTR><S
PAN LANG="en-us"><FONT FACE="Calibri">*~*~*~*~*~*~*~*~*~*</FONT></SPAN></P
>\n\n<P DIR=LTR><SPAN LANG="en-us"><FONT FACE="Calibri">sdcsdascsdcs</FONT
></SPAN><SPAN LANG="en-us"></SPAN></P>\n\n</BODY>\n</HTML>'."\r\n".
'X-MICROSOFT-CDO-BUSYSTATUS:TENTATIVE'."\r\n".
'X-MICROSOFT-CDO-IMPORTANCE:1'."\r\n".
'X-MICROSOFT-CDO-INTENDEDSTATUS:BUSY'."\r\n".
'X-MICROSOFT-DISALLOW-COUNTER:FALSE'."\r\n".
'X-MS-OLK-ALLOWEXTERNCHECK:TRUE'."\r\n".
'X-MS-OLK-AUTOSTARTCHECK:FALSE'."\r\n".
'X-MS-OLK-CONFTYPE:0'."\r\n".
'X-MS-OLK-SENDER;CN="Veer Shubhranshu Shrivastav":mailto:mail@veershubhranshu.com'."\r\n".
'BEGIN:VALARM'."\r\n".
'TRIGGER:-PT15M'."\r\n".
'ACTION:DISPLAY'."\r\n".
'DESCRIPTION:Reminder'."\r\n".
'END:VALARM'."\r\n".
'END:VEVENT'."\r\n".
'END:VCALENDAR'."\r\n";
$message .= 'Content-Type: text/calendar;name="veer-invite.ics";method=REQUEST\n';
$message .= "Content-Transfer-Encoding: 8bit\n\n";
$message .= $ical;

$mailsent = mail($to_address, $subject, $message, $headers);
?>

There's some great investigation of this problem in this open issue in PHPMailer . 在PHPMailer的这个未解决的问题中对此问题进行了深入的研究。 Though it's not a problem of PHPMailer's making (it's Outlook's fault), there's no easy way to build the workaround in PHPMailer - you may be better off usig a different system to build your MIME structure, such as Zend_MIME . 尽管这不是PHPMailer的问题(这是Outlook的问题),但没有简单的方法可以在PHPMailer中构建变通方法-您最好使用其他系统来构建MIME结构,例如Zend_MIME

Outlook requires that the text/calendar part must be the one and only MIME part. Outlook要求文本/日历部分必须是唯一的MIME部分。

HTML body can be set as part of VCALENDAR. HTML正文可以设置为VCALENDAR的一部分。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM