如何获取发件人的电子邮件地址

时间:2012-07-02 16:01:38

标签: email google-apps-script sender

我需要生成一份关于邮件列表和一封信的发件人的报告,我可以提取字母的主题,但不了解如何获取每封信的发件人地址,报告结果是:< / p>

主题:你好来自: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. 电子邮件验证 - 来自Stack Overflow的堆栈溢出
  2. 项目更新#10:Double Fine and 2 Productions的双重精彩冒险:Kickstarter

4 个答案:

答案 0 :(得分:4)

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

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

答案 1 :(得分:0)

var label = GmailApp.getUserLabelByName('inbox');
var threads = label.getThreads();


for(i in threads)
{

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

}

答案 2 :(得分:0)

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

您可以在此链接中获得更多详细信息 enter link description here

答案 3 :(得分:-1)

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

但是,您可以尝试提到here