我正在尝试通过 PhpMailer 发送一个 .ics 文件,以使用户能够轻松导入它。
这在将其发送到 Outlook 时可以正常工作,但 Gmail 无法识别该文件,因此无法将其导入谷歌日历。
我的 ics 文件如下所示:
BEGIN:VCALENDAR
PRODID:-//Microsoft Corporation//Outlook 14.0 MIMEDIR//EN
VERSION:2.0
BEGIN:VTIMEZONE
TZID:Romance Standard Time
BEGIN:STANDARD
DTSTART:16011028T030000
RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10
TZOFFSETFROM:+0200
TZOFFSETTO:+0100
END:STANDARD
DTSTART:16010325T020000
BEGIN:DAYLIGHT
RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=3
TZOFFSETFROM:+0100
TZOFFSETTO:+0200
END:DAYLIGHT
END:VTIMEZONE
BEGIN:VEVENT
CLASS:PUBLIC
DESCRIPTION:
DTEND;TZID="Romance Standard Time":20130815T154000
DTSTAMP:20130814T094035Z
DTSTART;TZID="Romance Standard Time":20130815T144000
SUMMARY:Your appointment
LOCATION:1000 Brussels
END:VEVENT
END:VCALENDAR
然后我的 php 代码如下所示:
$mail->AddAttachment('../linkToIcs.ics');
该文件可以正常附加,但 Gmail 无法识别。然后我尝试将其添加为字符串附件
if (pathinfo($attachment, PATHINFO_EXTENSION) == 'ics') {
$contents = file_get_contents($attachment);
$mail->AddStringAttachment(
$contents,
pathinfo($attachment, PATHINFO_BASENAME),
'7bit',
'text/calendar'
);
}
将其正确添加为附件,但在 Gmail 中再次未被识别为“可导入”日历事件。
我还应该注意,同一封电子邮件中有一个 HTML 正文。
关于为什么这不起作用的任何解释都会很棒。