如何获取Gmail收件箱所有邮件的发件人地址? (但是优化的方式)

问题描述 投票:0回答:1

我知道通过 Apps 脚本,我可以使用函数 getInboxThreads() 和 getMessages(),但它们基本上会获取整个消息,然后我可以读取每条消息的发件人地址。如果我的邮件少于 5000 封,这没问题,但我有 100K 封邮件,并且需要 很多个小时(使用 批量操作,因为 Google 有 API 调用每日限制)才能使用 getInboxThreads 和 getMessages 函数获取所有消息。

我只想获取索引,我的意思是,只有发件人地址,仅此而已。有没有更快(更优化)的方法来使用 Apps 脚本来完成此操作?或者也许还有其他方法可以做到这一点?

如果不使用 Apps 脚本,那么也许使用 Gmail API?或者也许使用 Google Takeout MBOX 文件?如何从 MBOX 文件中提取所有邮件的发件人地址?另请注意,100K 邮件 MBOX 文件的大小可能会超过 10 GB,并且桌面应用程序打开它可能会出现问题。

谢谢。

我尝试阅读 Apps Script 文档,但没有找到优化的方法。

google-apps-script optimization gmail gmail-api
1个回答
0
投票

Google Apps 脚本:获取 Gmail 收件箱中的电子邮件发件人

您可以尝试这个示例脚本,它从您的 Gmail 收件箱获取电子邮件发件人。这包括线程内的内容,正如您的帖子建议您想要的那样

get sender addresses of all mails of inbox of Gmail

const myFunction = () => {
  var threads = GmailApp.getInboxThreads();
  threads.forEach(thread => {
    var messages = thread.getMessages();
    messages.forEach(email => {
      var emailSenders = email.getFrom();
      console.log(emailSenders);
    });
  });
}

该脚本可能需要更长时间才能运行,因为它取决于要签入收件箱的项目数量。

输出

参考文献

© www.soinside.com 2019 - 2024. All rights reserved.