google-schemas - Gmail 不显示餐厅预订卡
问题描述
我们发送给用餐者的电子邮件包含 json-ld 模式,看起来 gmail 可以识别它并在日历上进行预订。但是,当我收到来自 OpenTable 的电子邮件时,我看到在电子邮件顶部弹出一张卡片。我们如何启用相同的行为?
解决方案
通过添加文本/日历或应用程序/ics 类型的附件,如下所示。
MIME-version: 1.0
From: "Gerard H. Pille" <g.h.p@mnopqr.stu>
Message-ID: <7bec97cf-9ba2-c353-3df1-67cc8f1a1d2d@mnopqr.stu>
To: ghpille@abcdefg.hij
Date: Thu, 07 Jan 2021 19:55:54 +0100
Subject: Invitation: Test eVent
Content-type: multipart/mixed; boundary="Boundary_(ID_qyG4ZdjoAsiZ+Jo19dCbWQ)"
--Boundary_(ID_qyG4ZdjoAsiZ+Jo19dCbWQ)
Content-type: multipart/alternative;
boundary="Boundary_(ID_ryU4ZdJoASiZ+Jo21dCbwA)"
--Boundary_(ID_ryU4ZdJoASiZ+Jo21dCbwA)
Content-type: text/plain; charset=UTF-8
Content-transfer-encoding: 8BIT
g.h.p@klmnopqr.stu has invited you to Test eVent
--Boundary_(ID_ryU4ZdJoASiZ+Jo21dCbwA)
Content-type: text/calendar; method=REQUEST; charset=UTF-8
Content-transfer-encoding: 8BIT
BEGIN:VCALENDAR
PRODID:-//Mozilla.org/NONSGML Mozilla Calendar V1.1//EN
VERSION:2.0
METHOD:REQUEST
BEGIN:VTIMEZONE
TZID:Europe/Brussels
BEGIN:DAYLIGHT
TZOFFSETFROM:+0100
TZOFFSETTO:+0200
TZNAME:CEST
DTSTART:19700329T020000
RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=3
END:DAYLIGHT
BEGIN:STANDARD
TZOFFSETFROM:+0200
TZOFFSETTO:+0100
TZNAME:CET
DTSTART:19701025T030000
RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10
END:STANDARD
END:VTIMEZONE
BEGIN:VEVENT
CREATED:20210107T185501Z
LAST-MODIFIED:20210107T185554Z
DTSTAMP:20210107T185554Z
UID:b72ed9b2-bbf9-42ce-84f9-4579af0fdb1c
SUMMARY:Test eVent
ORGANIZER;RSVP=TRUE;PARTSTAT=ACCEPTED;ROLE=CHAIR:mailto:g.h.p@klmnopqr.stu
ATTENDEE;RSVP=TRUE;CN=Gerard H. Pille;PARTSTAT=NEEDS-ACTION;ROLE=REQ-PARTI
CIPANT:mailto:ghpille@abcdefg.hij
DTSTART;TZID=Europe/Brussels:20210107T200000
DTEND;TZID=Europe/Brussels:20210107T210000
TRANSP:OPAQUE
END:VEVENT
END:VCALENDAR
--Boundary_(ID_ryU4ZdJoASiZ+Jo21dCbwA)--
--Boundary_(ID_qyG4ZdjoAsiZ+Jo19dCbWQ)
Content-type: application/ics; name=invite.ics
Content-transfer-encoding: 8BIT
Content-disposition: attachment; filename=invite.ics
BEGIN:VCALENDAR
PRODID:-//Mozilla.org/NONSGML Mozilla Calendar V1.1//EN
VERSION:2.0
METHOD:REQUEST
BEGIN:VTIMEZONE
TZID:Europe/Brussels
BEGIN:DAYLIGHT
TZOFFSETFROM:+0100
TZOFFSETTO:+0200
TZNAME:CEST
DTSTART:19700329T020000
RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=3
END:DAYLIGHT
BEGIN:STANDARD
TZOFFSETFROM:+0200
TZOFFSETTO:+0100
TZNAME:CET
DTSTART:19701025T030000
RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10
END:STANDARD
END:VTIMEZONE
BEGIN:VEVENT
CREATED:20210107T185501Z
LAST-MODIFIED:20210107T185554Z
DTSTAMP:20210107T185554Z
UID:b72ed9b2-bbf9-42ce-84f9-4579af0fdb1c
SUMMARY:Test eVent
ORGANIZER;RSVP=TRUE;PARTSTAT=ACCEPTED;ROLE=CHAIR:mailto:g.h.p@klmnopqr.stu
ATTENDEE;RSVP=TRUE;CN=Gerard H. Pille;PARTSTAT=NEEDS-ACTION;ROLE=REQ-PARTI
CIPANT:mailto:ghpille@abcdefg.hij
DTSTART;TZID=Europe/Brussels:20210107T200000
DTEND;TZID=Europe/Brussels:20210107T210000
TRANSP:OPAQUE
END:VEVENT
END:VCALENDAR
--Boundary_(ID_qyG4ZdjoAsiZ+Jo19dCbWQ)--
推荐阅读
- javascript - firebase onwrite 的云功能不会触发任何执行
- r - R 用 gsub() 代替 ' 的 \'
- xamarin.android - 如何升级 MvxFragmentAttribute
- http - 是否存在任何仅遵循请求模型的协议?
- python - Keras AttributeError:“张量”对象没有属性“日志”
- c# - c#使用sql数据库验证登录
- javascript - padStart 的替代方法
- mysql - MySql InnoDB Select Query 需要更多时间来生成数据
- java - 如果我没有在 maven pom.xml 中指定 java 的源版本和目标版本怎么办?
- mysql - Liquibase 格式的 sql 前置条件表存在