2013-10-23 102 views
0

我想向使用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

任何建議,非常感謝。

回答

0

這裏是我的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

相關問題