获取Gmail电子邮件内容并转移到谷歌电子表格并进行相应安排

时间:2016-11-24 05:49:24

标签: email google-apps-script

嗨,我只是想知道我是否可以在标签上提取某些电子邮件的所有电子邮件内容并将它们放入谷歌电子表格中。打开每封电子邮件非常累人,并将每个数据复制并粘贴到电子表格中以便相应地安排。香港专业教育学院尝试在vb中创建一个宏来安排电子邮件,但我仍然需要打开每个电子邮件只是为了获取数据并将它们放在我的Excel文件上。

这是我想根据标签安排的示例电子邮件内容,每个电子邮件将按行和列显示:

CO类型:仅限IV

TYPE AUTO:手动 日期:2016年11月21日下午1:49:11 车型:三菱
公司地址:PEAK 价格:8,000.00

加州:迈克尔,约翰 SPO:单身 地址:加拿大圣弗朗西斯科3号 LM:牡蛎
SOI:工厂工人 POS:第一个队友 地址:加利福尼亚州圣地亚哥3号单位

我想要的是根据我创建的标题来安排它们:这是在每个邮件开始之前,直到冒号(:)标记。我已经通过搜索开头直到冒号并在excel上使用剪切和粘贴来完成它,但由于手动打开并粘贴我的文件上的电子邮件,仍然需要很多时间。这有什么工作吗?

4 个答案:

答案 0 :(得分:3)

您可以使用Save Gmail add-on将电子邮件元数据保存到Google表格。它还会将消息保存到云端硬盘。 (免责声明:我是附加组件的作者)

可以使用附加到Google表格的Google脚本来完成,就像这个片段一样。

function getGmailData() {
  var sheet = SpreadsheetApp.getActiveSheet();
  var threads = GmailApp.search("is:unread in:inbox", 0, 20);
  for (var t=0; t<threads.length; t++) {
    sheet.appendRow([threads[t].getDate(), threads[t].getId(), threads[t].getFirstMessageSubject()])
  }
}

答案 1 :(得分:1)

我在Google App脚本上编码了您想要的内容,并制作了YouTube视频,详细说明了这一点。您可以通过以下链接观看它:

https://www.youtube.com/watch?v=gdgCVqtcIw4

您还可以从以下链接从GitHub获取完整代码:

https://gist.github.com/MoayadAbuRmilah/fcb75d0bf5be50b83e36e05746e2722d

答案 2 :(得分:0)

是的,你可以做到。事实上,我有一个Google脚本可以做到这一点。我的脚本有一个Web UI,您可以在其中设置前后日期字段和文件名字段。启动脚本后,它会收到所有电子邮件(不是主题,Gmail服务与线程一起使用,如果您要搜索单个邮件,则需要使用Gmail API),然后您可以输出任何相关内容到Google电子表格。

我建议使用GAS而不是VB。您可以使用GmailApp.getUserLabelByName("MyLabel")来获取要从中提取消息的标签,然后使用.getThreads()从标签中获取所有线程(对话)。

了解使用线程here可以执行的操作以及使用邮件here可以执行的操作。我个人使用了Gmail API并使用了

queriedMessages =
      Gmail.Users.Messages.list(userInfo.mail, {
        'q': queryString,
        'pageToken': execProperties.nextPageId
      });

然后我可以从个别消息中提取我想要的信息。查询字符串基本上是您要在Gmail中搜索电子邮件的内容,因此您可以使用label:"This-label"

之类的内容

答案 3 :(得分:0)

反应较晚,但希望我的回答可能对其他人有所帮助。我的附加组件刚刚发布,它确实具有上述功能:

  • 通过昨天的电子邮件重复
  • 从其中解析数据
  • 每天使用已解析的数据向电子表格添加新行

这是附加链接:https://chrome.google.com/webstore/detail/email-parser-analytics/ilaecpapiiijoeijcffhnlhfjimammek

此加载项是这种脚本的高级版本:

ThisWorkbook.Sheets("Sheet1").Range("A1")