我正在尝试使用PHPMailer向客户发送会议邀请。 * .ics文件是使用PHP动态生成的(它们不存储在文件系统中)。
我的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:organizer@host.com
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样式的邀请发送,如下所示?
非常感谢任何建议。
答案 0 :(得分:0)
这是我的解决方案,我在2年后在webproject中使用它
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:automail@mydomain.com
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
结尾)