cosimomeli/swiftmailer-calendar

此包已被弃用,不再维护。未建议替代包。

Swiftmailer附件类,用于发送嵌入iCal

1.0.2 2016-09-09 16:45 UTC

This package is not auto-updated.

Last update: 2024-04-27 17:26:16 UTC


README

一个简单的类,用于将日历事件嵌入到邮件中。

安装

您可以通过运行此命令使用 Composer 安装此包:

composer require cosimomeli/swiftmailer-calendar

前往Packagist链接: https://packagist.org.cn/packages/cosimomeli/swiftmailer-calendar

使用方法

基本用法

1. 创建iCal对象

您可以通过字符串连接来创建它,或者可以使用许多库之一来构建它。我建议使用 markuspoerschke/iCal: https://github.com/markuspoerschke/iCal

结果将类似于以下内容

BEGIN:VCALENDAR
VERSION:2.0
PRODID:TestCalendar
METHOD:REQUEST
X-PUBLISHED-TTL:P1W
BEGIN:VEVENT
UID:57d2e0b599f89
DTSTART:20170320T110000Z
SEQUENCE:0
TRANSP:OPAQUE
DTEND:20170320T150000Z
LOCATION:900 Jay St.\, Brooklyn
SUMMARY:Summary of the event
ATTENDEE;PARTSTAT=ACCEPTED;RSVP=FALSE:mailto:example@domain.com
CLASS:PUBLIC
DESCRIPTION:Description of the event
ORGANIZER:mailto:organizer@example.com
DTSTAMP:20160909T161757Z
END:VEVENT
END:VCALENDAR

有关iCalendar规范的更多信息,请参阅此处: http://www.kanzaki.com/docs/ical/

请确保将METHOD字段设置为PUBLISH或REQUEST,并将至少一个邮件收件人设置为ATTENDEE。

2. 创建Swift_Calendar对象

$attachment = new Swift_Calendar($iCalString, Swift_Calendar::METHOD_REQUEST);

方法必须与iCal中设置的方法相同。

3. 将其附加到消息

$swiftMessage->attach($attachment);

您可以向消息添加更多不同的MIME部分。我测试了它与text/plan + text/html以及普通附件一起使用。

4. 发送它

$mailer->send($swiftMessage);

##注意

邮件客户端处理嵌入的日历的方式不同。以下是我的一些个人经验

  • Outlook:使用电子邮件正文作为事件描述,使用电子邮件主题作为事件标题。使用PUBLISH方法的日历不会与电子邮件一起列出,而是在Web界面中仅显示为吐司(因此我的建议是不要使用此方法)。

  • Gmail:使用字段DESCRIPTION和SUMMARY作为事件的描述和标题(正如它应该那样)

请随时提问并给出改进建议。