2014-01-26 34 views
0

我正在尝试编写一个Google Apps脚本,用于处理所有具有特定标签的电子邮件。Gmail线程对象意外行为

我用GmailApp.search函数来获取所有相关的电子邮件,但是当我尝试使用功能的文档中的GmailThread class,我得到的是说,它无法找到该功能的错误消息。

这是我的代码;

var incoming = "To_Bot" 

function readBotsEmail() 
{ 
    var emails = GmailApp.search("label:" + incoming); 

    Logger.log("This is the 'emails' object:" + emails) 


    var emailsLoopIndex = 0 
    for (var email in emails) 
    { 
    emailsLoopIndex += 1; 
    try 
    { 
     Logger.log("iteration " + emailsLoopIndex + "  " + email.getMessageCount()); 
    } 
    catch(e) 
    { 
     Logger.log("iteration " + emailsLoopIndex + "  " + e); 
    } 
    } 
} 

这里是记录器输出。

[14-01-26 03:40:00:909 EST] This is the 'emails' object:GmailThread,GmailThread 
[14-01-26 03:40:00:911 EST] iteration 1  TypeError: Cannot find function getMessageCount in object 0. 
[14-01-26 03:40:00:914 EST] iteration 2  TypeError: Cannot find function getMessageCount in object 1. 

我在哪里出错了?

回答

1

您应该避免使用含糊不清的变量名,“电子邮件”和谈论的一面和索引整数的其他线程时“电子邮件”真的是不错的选择......

您的问题主要来自这样的困惑在两个变量之间,您使用电子邮件而不是电子邮件* S *并且似乎忘记了您的值是需要编入索引的线程数组。

这是你的工作的代码,只有一个字母之差;-)和几个支架...

function readBotsEmail() 
{ 
    var emails = GmailApp.search("label:" + incoming); 

    Logger.log("This is the 'emails' object:" + emails) 


    var emailsLoopIndex = 0 
    for (var email in emails) 
    { 
    emailsLoopIndex += 1; 
    try 
    { 
     Logger.log("iteration " + emailsLoopIndex + "  " + emails[email].getMessageCount()); 
    } 
    catch(e) 
    { 
     Logger.log("iteration " + emailsLoopIndex + "  " + e); 
    } 
    } 
} 

这就是说,你仍然有很多的工作在这个脚本,使它返回的东西有趣的...现在它告诉你线程的数量和他们有多少消息...无论如何,这是一个好开始...

祝你好运!

+0

感谢您的回复。我会在今天晚些时候尝试。现在这个问题已经解决了,我可以开始玩这个游戏了,看看它在哪里! – Person93

+0

不客气......同时请考虑接受答案。谢谢 –