使用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风格的邀请函发送,如下所示?
任何建议,非常感谢。
答
这里是我的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
结尾)
希望它可以帮助...
感谢您的回复!我如何在PHPMailer中正确设置内容类型和内容处置? – lionheart98