2

我需要生成一个关于邮件列表和发件人的报告,我可以提取信件的主题,但不明白如何获取每封信的发件人地址,报告结果是:

主题:你好来自:frank@gmail.com

主题:你的购物篮来自:jerry@facebook.com

  function myFunction() {
      var emailAddress = Session.getActiveUser().getEmail();
      var threads = GmailApp.getInboxThreads();


      var output = ContentService.createTextOutput();
      for (var i = 0; i < threads.length; i++) {
        output.append(threads[i].getFirstMessageSubject()+" from:"+'\n');
      }


      GmailApp.sendEmail(emailAddress,"Mail Report", output.getContent()

        );
    }

更新

谢谢你的回答,解决方法很简单

   function myFunction() {
      var emailAddress = "example@email.com" ;
      var threads = GmailApp.getInboxThreads();

      var messages = threads[0].getMessages();
      var senderEmail = messages[0].getFrom();


      var output = ContentService.createTextOutput();
      for (var i = 0; i < threads.length; i++) {
        messages = threads[i].getMessages()
        senderEmail = messages[0].getFrom();
        output.append(i + ".  " + threads[i].getFirstMessageSubject()+"   from:"+ senderEmail + '\n');
      }


      GmailApp.sendEmail(emailAddress,"Mail Report", output.getContent()

        );
    }

示例结果:

  1. 电子邮件验证 - 堆栈溢出来自:堆栈溢出
  2. 项目更新 #10:Double Fine 和 2 人制作的 Double Fine Adventure 来自:Kickstarter
4

4 回答 4

5

如果我了解您要做什么,那么我相信您可以从线程中获取消息,然后从消息中获取发件人

var threads = GmailApp.getInboxThreads();
var messages = threads[0].getMessages();
var senderEmail = messages[0].getFrom();
于 2012-07-02T16:13:56.350 回答
0
var label = GmailApp.getUserLabelByName('inbox');
var threads = label.getThreads();


for(i in threads)
{

  threads[i].getMessages()[0].getFrom()

}
于 2014-01-25T15:39:57.320 回答
0

您需要在 oauthScopes 中添加“ https://www.googleapis.com/auth/userinfo.email ”。(appscript.json 文件)

您可以在此链接中获取更多详细信息 在 此处输入链接描述

于 2018-01-10T12:24:19.693 回答
-1

Session.getActiveUser().getEmail()出于安全原因,如果您使用的是消费者 Google 帐户,则无法使用该电子邮件。仅当脚本归 Google Apps 用户所有且访问者属于同一域时,它才有效。

但是,您可以尝试这里提到的内容

于 2012-07-02T16:12:26.430 回答