Google日历如何在发送后更新电子邮件的内容?

时间:2017-03-31 19:33:37

标签: javascript email smtp gmail html-email

Google日历邀请电子邮件会在原始事件发生更改后发送 后更新... Google如何实现这一目标?是否有一般技术可供任何人这样做?或者这是唯一可能的,因为Google拥有gMail / gCalendar和两个系统都集成在SMTP之外的幕后?

我的第一个猜测是他们使用了iframe或打开电子邮件时加载的图片,但是检查gMail页面的来源并没有显示任何迹象。

以下是更新文字的屏幕截图: enter image description here

这是在gMail中阅读电子邮件时页面该部分的HTML: enter image description here

2 个答案:

答案 0 :(得分:3)

注意:

检查来源除了在包括ajax在内的所有动态操作后您在页面中看到的内容的标记外,别无其他任何内容。

要查看实际来源,您需要访问view-source:url

现在问题

该信息在运行时通过JavaScript代码自动更新。

在图片中,您选中了 Inspect 元素,该元素显示了实时视图的代码,因此您看到了更新的内容。

它由JavaScript DOM和文本操作完成。

要验证这一点,

  1. 点击地址栏。
  2. 在网址前添加view-source:。所以,它看起来像view-source:https://url
  3. 然后按ctrl+f或相应的键find
  4. 搜索将显示<div id=":8hg"。{/ li>的0 results

    view-source加载文件的来源,没有任何ajax或JavaScript操作。

    来源中不存在div。所以,我们可以理解它是动态完成的。

    详细检查时,

    在来源中,我们可以看到存储在https://www.google.com/calendar/event?action\u003dVIEW\u0026eid\u003db.....中的链接array

    通过此链接,即可获取内容。

    enter image description here

    (为了隐私,我把一些文字涂黑了。)

    根据网址的返回情况,邮件内容会更新。

    要验证这一点,

    在邮件中,您可以看到此邀请已过期

    但在view-source:页面中,搜索此邀请已过期,它将返回0 results

    因此,可以确保通过Gmail对G Calendar API的API调用来获取日历详细信息。

答案 1 :(得分:0)

我想知道是否在发送电子邮件时,他们会在某个网址上创建一个图片,然后如果它发生了变化,就会删除它,然后在电子邮件中就会有类似的内容

<div id="updated"></div>
<img src="asdfawe" onerror="document.getElementById('updated').innerhtml="some text""/>

虽然我不确定他们是否不能使用onerror属性(b / c email + js =坏主意)。唯一的另一种方法是使用alt属性并使用一些css技巧,但我不知道这将如何导致检查代码。