2012-07-02 129 views
2

我需要生成一封关于邮件列表和发件人的报告,我可以提取信件的主题,但不知道如何获取每封信的发件人地址,报告竟然是:如何获取发件人的电子邮件地址

话题:您好:[email protected]

话题:你的篮子:[email protected]

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() 

     ); 
    } 

UPDATE

谢谢您的解答,解决办法很简单

function myFunction() { 
     var emailAddress = "[email protected]" ; 
     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:双精细冒险通过双重罚款和2球员生产从:Kickstarter
+0

您提供的代码不会生成您提供的输出。话虽如此,我认为* patto_chennai已经回答了您的问题,但我不确定我们中的任何人都确定问题是什么。 – mzimmerman

回答

-1

出于安全原因,您不能ge如果您使用的是消费者Google帐户,请使用Session.getActiveUser().getEmail()。它仅在脚本属于Google Apps用户并且访问者属于同一个域时起作用。

但是,你可以尝试什么是提到here

+0

谢谢,我只需要阅读邮件收件箱中发件人的地址:) – Tremere

4

如果我理解你希望做什么,那么我相信你能得到从线程的消息,然后从消息发送者

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

感谢您的回复,我想到了这一点,并意识到如何在脚本中使用此方法 – Tremere

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


for(i in threads) 
{ 

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

} 
相关问题