自定义ICS事件,添加操作

时间:2018-04-20 07:51:58

标签: email events icalendar

我想自定义作为电子邮件附件发送的ICS事件,以便用户能够直接从邮件视图(example)查看和确认事件。以下是附件invite.ics的样子:

BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//Example//Booking//EN
METHOD:PUBLISH
BEGIN:VEVENT
UID:3qnr@example.net
SEQUENCE:0
DTSTAMP:20180420T065714Z
DTSTART:20180518T080000Z
DTEND:20180518T090000Z
SUMMARY:Example - Booking room 21
LOCATION:Somewhere
DESCRIPTION:Room description
ORGANIZER;CN="Me":mailto:support@example.net
ATTENDEE;ROLE=REQ-PARTICIPANT;PARTSTAT=NEEDS-ACTION;RSVP=TRUE
URL;VALUE=URI:https://example.net/reservation/12
STATUS:CONFIRMED
END:VEVENT
END:VCALENDAR

在这种情况下,URL不起作用(我的意思是URL属性不会给事件带来任何东西)。

我希望在这次活动中:

  • 添加(如果邮件程序支持)直接在邮件上使用“是”或“否”选项确认操作
  • 直接在文件中指定的网址上抓住这个是/否问题的答案(https://example.net/confirmeRequest
  • 最终用图片自定义活动

我深入了解了ICS规范,但它们非常复杂,并且让邮件程序实现了很多细节选项!我不是在寻找使用Google Calendar API的解决方案,因为我希望大多数现有邮件程序都支持此功能。

以下是我想要获得的示例:example (在这张图片上,我想用自定义事件更改通用事件图像,并抓住不同操作的点击次数。)

我不确定这是可能的,也许根本就没有!

提前致谢。

1 个答案:

答案 0 :(得分:0)

让电子邮件客户端处理邀请。在上面的示例中,您需要将METHOD属性更改为" REQUEST",使用收件人的实际电子邮件地址使ATTENDEE符合要求,最后按照iMIP的规则生成您的电子邮件(请参阅例如Multipart email with text and calendar: Outlook doesn't recognize ics)。 一般情况下,接受/拒绝会触发IMIP REPLY发回组织者的电子邮件地址。

除非您针对受您控制的非常特定的客户,否则无法通过某个网址捕获并发送是/否响应。因此,如果您想要自动接受邀请,您需要在组织者的一方有一些东西来处理包含iMIP REPLY的传入电子邮件。

只要让客户显示图像等......您可以做的最接近的是使用非标准

X-ALT-DESC;FMTTYPE=text/html

属性并在此处显示HTML代码段。此属性不标准,仅适用于某些电子邮件客户端。无论如何,出于安全原因,我怀疑电子邮件客户端会让您显示外部图像。