Google 日历如何在电子邮件发送后更新其内容?
How does Google Calendar update the content of an email AFTER it is sent?
Google 日历邀请电子邮件将在 之后更新,如果原始事件已更改,它们将被发送...Google 如何实现这一点?有没有人可以做到这一点的通用技术?或者这是唯一可能的,因为 Google 拥有两个 gMail/gCalendar 并且这两个系统是在 SMTP 之外的幕后集成的?
我的第一个猜测是他们使用了 iframe 或在打开电子邮件时加载的图像,但检查 gMail 页面的源没有显示任何迹象。
这是更新文本的屏幕截图:
这是在 gMail 中阅读电子邮件时页面该部分的 HTML:
注:
Inspecting Source 除了在包括 ajax.
在内的所有动态操作之后在页面中看到的内容标记之外,不会给您任何其他信息
要查看实际来源,您要访问 view-source:url
。
现在问题
该信息会在 运行 时间通过 JavaScript 代码自动更新。
在图像中,您检查了 Inspect 元素,它显示了实时视图的代码,因此,您看到了更新的内容。
这是通过JavaScript DOM和文本操作完成的。
为了验证这一点,
- 点击地址栏。
- 在url前加上
view-source:
。所以,它看起来像 view-source:https://url
- 然后按
ctrl+f
或find
对应的键。
- 搜索
<div id=":8hg"
将显示 0 results
。
view-source
加载文件源,没有任何 ajax 或 JavaScript 操作。
源中不存在 div
。所以,我们可以理解为是动态完成的。
详细检查时,
在源码中,我们可以看到一个link https://www.google.com/calendar/event?action\u003dVIEW\u0026eid\u003db.....
存储在一个array
.
由此link,内容取自
(为了隐私我把一些文字涂黑了)
在 url 的 return 的基础上,更新了邮件内容。
为了验证这一点,
在邮件中,您可以看到此邀请已过期
但是在view-source:
页面,搜索This invitation is out of date,会return0 results
.
因此,可以肯定的是,日历详细信息是通过 Gmail 对 G 日历 API 的 API 调用获取的 API。
我想知道他们是否在发送电子邮件时在某些地方创建了一个图像 url 然后如果它发生变化他们就删除它,然后在电子邮件中他们有类似
的东西
<div id="updated"></div>
<img src="asdfawe" onerror="document.getElementById('updated').innerhtml="some text""/>
虽然我不确定他们是否不能使用 onerror 属性(b/c 电子邮件 + js = 坏主意)。唯一的其他方法就是使用 alt
属性并使用一些 css 技巧,但我看不出这会如何导致检查代码。
Google 日历邀请电子邮件将在 之后更新,如果原始事件已更改,它们将被发送...Google 如何实现这一点?有没有人可以做到这一点的通用技术?或者这是唯一可能的,因为 Google 拥有两个 gMail/gCalendar 并且这两个系统是在 SMTP 之外的幕后集成的?
我的第一个猜测是他们使用了 iframe 或在打开电子邮件时加载的图像,但检查 gMail 页面的源没有显示任何迹象。
这是更新文本的屏幕截图:
这是在 gMail 中阅读电子邮件时页面该部分的 HTML:
注:
Inspecting Source 除了在包括 ajax.
在内的所有动态操作之后在页面中看到的内容标记之外,不会给您任何其他信息要查看实际来源,您要访问 view-source:url
。
现在问题
该信息会在 运行 时间通过 JavaScript 代码自动更新。
在图像中,您检查了 Inspect 元素,它显示了实时视图的代码,因此,您看到了更新的内容。
这是通过JavaScript DOM和文本操作完成的。
为了验证这一点,
- 点击地址栏。
- 在url前加上
view-source:
。所以,它看起来像view-source:https://url
- 然后按
ctrl+f
或find
对应的键。 - 搜索
<div id=":8hg"
将显示0 results
。
view-source
加载文件源,没有任何 ajax 或 JavaScript 操作。
源中不存在 div
。所以,我们可以理解为是动态完成的。
详细检查时,
在源码中,我们可以看到一个link https://www.google.com/calendar/event?action\u003dVIEW\u0026eid\u003db.....
存储在一个array
.
由此link,内容取自
(为了隐私我把一些文字涂黑了)
在 url 的 return 的基础上,更新了邮件内容。
为了验证这一点,
在邮件中,您可以看到此邀请已过期
但是在view-source:
页面,搜索This invitation is out of date,会return0 results
.
因此,可以肯定的是,日历详细信息是通过 Gmail 对 G 日历 API 的 API 调用获取的 API。
我想知道他们是否在发送电子邮件时在某些地方创建了一个图像 url 然后如果它发生变化他们就删除它,然后在电子邮件中他们有类似
的东西<div id="updated"></div>
<img src="asdfawe" onerror="document.getElementById('updated').innerhtml="some text""/>
虽然我不确定他们是否不能使用 onerror 属性(b/c 电子邮件 + js = 坏主意)。唯一的其他方法就是使用 alt
属性并使用一些 css 技巧,但我看不出这会如何导致检查代码。