cosimomeli / swiftmailer-calendar
此包已被弃用,不再维护。未建议替代包。
Swiftmailer附件类,用于发送嵌入iCal
1.0.2
2016-09-09 16:45 UTC
Requires
- php: >=5.3.3
- swiftmailer/swiftmailer: ^5.4
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作为事件的描述和标题(正如它应该那样)
请随时提问并给出改进建议。