如何将日历邀请附加到 SES send_raw_email?

Posted

技术标签:

【中文标题】如何将日历邀请附加到 SES send_raw_email?【英文标题】:How to attach a calendar invite to SES send_raw_email? 【发布时间】:2016-06-23 22:27:20 【问题描述】:

我使用send_raw_email 发送带有 html 内容和文件附件的电子邮件。如何在电子邮件中插入 ical/ics 邀请?

我使用 icalendar 生成 ics 内容。

这是我目前想出的,但它在 Gmail 中显示为文件附件。

    if calendar_reminder_date:
        cal = Calendar()
        cal.add('prodid', '-//My calendar product//mxm.dk//')
        cal.add('version', '2.0')
        cal.add('calscale', 'GREGORIAN')
        cal.add('method', 'REQUEST')
        event = Event()
        event['dtstart'] = calendar_reminder_date.strftime("%Y%m%dT%H%M%SZ")
        event['dtstamp'] = calendar_reminder_date.strftime("%Y%m%dT%H%M%SZ")
        event['summary'] = 'Python meeting about calendaring'
        cal.add_component(event)

        attachment_part = MIMEText(cal.to_ical())
        print repr(cal.to_ical())
        del attachment_part['Content-Type']
        attachment_part.add_header('Content-Type', 'text/calendar', name='invite.ics')
        attachment_part.add_header('Content-Disposition', 'attachment', filename='invite.ics')
        msg.attach(attachment_part)

【问题讨论】:

【参考方案1】:

如果没有看到 Google 端收到的实际完整 MIME 消息,很难判断,但这里肯定缺少几件事:

日历 REQUEST 必须具有 ORGANIZER 属性,以及至少一个 ATTENDEE 属性,其值对应于 gmail 用户的电子邮件地址(以 mailto 为前缀:)。 您的内容类型缺少 METHOD=REQUEST 参数,您可能不想设置任何内容处置。

另见Multipart email with text and calendar: Outlook doesn't recognize ics

【讨论】:

你能看看my question吗?

以上是关于如何将日历邀请附加到 SES send_raw_email?的主要内容,如果未能解决你的问题,请参考以下文章

如何将私人数据附加到 android 日历事件

如何在安卓中通过短信发送谷歌日历活动邀请

移动 safari (iOS) 中的 javascript 不会下载日历邀请

如何在Bluemix Node-Red Application中发送会议邀请(日历)[关闭]

有没有可以在日历上做标记的Android App?

如何在某个类/元素之后将内容附加到元素[关闭]