如何将日历邀请附加到 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?的主要内容,如果未能解决你的问题,请参考以下文章
移动 safari (iOS) 中的 javascript 不会下载日历邀请