2012-07-02 173 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() 

} 
相關問題