为何Gmail无法识别餐厅预订邮件中的FoodEstablishmentReservation Microdata
排查方向
- Schema地址协议错误:当前代码中所有
itemtype、reservationStatus的链接都使用了http://schema.org开头的地址,谷歌邮件端的结构化数据解析器要求必须使用HTTPS协议的Schema地址,这是通用测试工具验证通过但邮件端不渲染的最常见原因。 - 发件域名未完成安全验证:要让邮件客户端渲染预订卡片,发件邮箱的域名必须完成SPF、DKIM、DMARC三项验证,且DMARC策略至少设置为
p=quarantine或p=reject,证明你对发件域名拥有所有权,避免恶意伪造的预订邮件被展示。 - 使用测试占位数据:当前代码里的邮箱、地址、商家名称都是示例占位内容,谷歌邮件解析器会自动过滤明显的测试假数据,不会触发卡片渲染,正式测试请使用真实有效的业务数据。
- 结构化数据放置位置错误:如果你的Microdata标记放在邮件HTML的
<head>区域,大部分邮件客户端会自动清除<head>内的非样式内容,需要将完整的Microdata代码放在<body>区域内,避免被过滤。 - 邮件标签分类错误:如果你的邮件被归类到推广、社交等非主收件箱标签,结构化卡片不会被渲染,只有进入主收件箱的邮件才会触发相关展示逻辑。
修正后代码示例
<div itemscope itemtype="https://schema.org/FoodEstablishmentReservation"> <meta itemprop="reservationNumber" content="123456"/> <link itemprop="reservationStatus" href="https://schema.org/Confirmed"/> <div itemprop="underName" itemscope itemtype="https://schema.org/Person"> <meta itemprop="name" content="Test Tester"/> <meta itemprop="email" content="test@example.org"/> </div> <div itemprop="reservationFor" itemscope itemtype="https://schema.org/FoodEstablishment"> <meta itemprop="name" content="My Venue" /> <meta itemprop="image" content="https://example.org/venues/images/1.jpg" /> <div itemprop="address" itemscope itemtype="https://schema.org/PostalAddress"> <meta itemprop="streetAddress" content="123, My address, City, Country" /> <meta itemprop="addressLocality" content="City" /> <meta itemprop="addressRegion" content="City" /> <meta itemprop="addressCountry" content="Country" /> <meta itemprop="postalCode" content="12345" /> </div> </div> <meta itemprop="startTime" content="2021-10-12T17:00:00+02:00"/> <meta itemprop="bookingTime" content="2021-10-05T00:08:00+02:00"/> <meta itemprop="modifiedTime" content="2021-10-05T00:08:00+02:00"/> <meta itemprop="partySize" content="2"/> </div>
内容的提问来源于stack exchange,提问作者kunambi
相关产品推荐
相关产品推荐

