使用PHPMailer发送会议邀请

问题描述:

我想向使用PHPMailer的客户发送会议邀请。 * .ics文件是使用PHP动态生成的(它们不存储在文件系统中)。使用PHPMailer发送会议邀请

我的iCalendar文件,如下所示:

BEGIN:VCALENDAR 
VERSION:2.0 
PRODID:-//ABC Corporation//Productname//EN 
CALSCALE:GREGORIAN 
METHOD:REQUEST 
BEGIN:VEVENT 
SEQUENCE:0 
LAST-MODIFIED:20131023T120039ZUID:20131023T120039-29881-www.host.com 
DTSTAMP:20131023T120039Z 
DTSTART:20131102T083000Z 
DTEND:20131102T084500Z 
LOCATION:event location 
SUMMARY;LANGUAGE=us-en:topic of the meeting 
DESCRIPTION: further information 
ORGANIZER; CN="Organizer":mailto:[email protected] 
BEGIN:VALARM 
TRIGGER:-P1D 
ACTION:DISPLAY 
DESCRIPTION:Reminder 
END:VALARM 
END:VEVENT 
END:VCALENDAR 

不幸的是,我好不容易才将*的.ics文件添加为附件呢。

$icalendar = new ICalendar(); 
$mail->AddStringAttachment($icalendar->genICalendar(), "meeting.ics", "base64", "text/calendar"); 

我该如何将它作为outlook/gmail风格的邀请函发送,如下所示? enter image description here

任何建议,非常感谢。

这里是我的Outlook解决方案,我用它在webproject因为2年

static $iCalContentType = "text/calendar"; 
    static $iCalContentDisposition = "inline; filename=calendar.vcs"; 
    static $iCalTmpl = " 
BEGIN:VCALENDAR 
METHOD:REQUEST 
PRODID:MyApp 
VERSION:2.0 
BEGIN:VEVENT 
STATUS:CONFIRMED 
ORGANIZER;CN=\"AppNameMailer\":mailto:[email protected] 
SUMMARY: __summary__ 
DESCRIPTION: \"__description__\" 
COMMENT: none 
DTSTART:__start__ 
DTEND:__end__ 
UID: __id__-AppName 
SEQUENCE:__seq__ 
DTSTAMP:__now__ 
CLASS:PUBLIC 
PRIORITY:5 
TRANSP:OPAQUE 
LOCATION: 
BEGIN:VALARM 
ACTION:DISPLAY 
DESCRIPTION:REMINDER 
TRIGGER;RELATED=START:-PT25M 
END:VALARM 
END:VEVENT 
END:VCALENDAR 
"; 

正常工作对我! 我只是更换了__*__标记(注意没有")。

阿和正确的时间编码是至关重要的,因为据我记得 - 必须是ISO8601(与Z结尾)

希望它可以帮助...

+1

感谢您的回复!我如何在PHPMailer中正确设置内容类型和内容处置? – lionheart98