谷歌脚本只读取前几行
Google Script Only Reads Frst Few Lines
我希望monitorE-mails函数在收件箱中查找新邮件。无论出于什么原因,GS都不会读取前两行代码,我知道这一点,因为日志只显示第一个
Logger.log(..)
语句已验证。GS只记录前几行,除了第一条语句之外,不会给出任何反馈。
如何让GS显示Logger.log(..)语句?
这里的代码:
//set a time-driven trigger to run this function on the desired frequency
function monitorEmails() {
var thread = GmailApp.getInboxThreads(0,1)[0]; // get first thread in inbox
// log the number of messages in the thread
var firstThread = GmailApp.getInboxThreads(0,1)[0];
var numMsgs = firstThread.getMessageCount(); // # of messages in a given thread
Logger.log(firstThread.getMessageCount());
var messages = firstThread.getMessages();
if (firstThread.isUnread()=='true'){ // check if thread is Read
//Logger.log(firstThread.isUnread()=='true');
for (var i = 0; i < messages.length; i++) { //Go through each message within a Thread
// Logger.log(messages[i].getSubject());
if (messages[i].isUnread()){ // if the message is unread
Logger.log(messages[i].isUnread());
var unreadBody = messages[i].getBody(); // Body contents variable that contains the body
Logger.log(messages[i].getBody());
var unreadFrom = messages[i].getFrom(); // Email Sender contents variable
//Logger.log(messages[i].getFrom());
messages[i].markRead(); // Mark message as read
//Logger.log(messages[i].markRead());
var fullLot = "Full"; // look for "Full" in text message.
//Logger.log(unreadBody.search(fullLot) =='true');
if(unreadBody.search(fullLot) == 'true' && getEmail()==AdminTest()){
// if the sender has the proper admin email / phone #, then call function sendEmails
sendEmails();
}
}
}
}
}
谢谢你的帮助!
在这样的比较中遇到了一个问题:
if (firstThread.isUnread()=='true'){ // check if thread is Read
您正在将布尔值与字符串进行比较。true
和false
都是关键字,因此不应将它们括在引号中:
if (firstThread.isUnread() == true){ // check if thread is Read
在一些地方,您正在执行比较,然后将比较结果记录在if
块中——在比较之前记录比较结果更有用。
我认为您可以通过使用一些上下文信息使日志更有意义来帮助自己——修改后的脚本显示了这方面的示例。
日志
[13-07-02 09:40:53:583 EDT] numMsgs=1
[13-07-02 09:40:53:583 EDT] Subject=YOU could be our Player of the Week!
[13-07-02 09:40:53:658 EDT] firstThread.isUnread()==true
[13-07-02 09:40:53:658 EDT] messages[0].subject=YOU could be our Player of the Week!
[13-07-02 09:40:53:658 EDT] messages[0].isUnread=true
...
修改的脚本
function monitorEmails() {
var thread = GmailApp.getInboxThreads(0,1)[0]; // get first thread in inbox
// log the number of messages in the thread
var firstThread = GmailApp.getInboxThreads(0,1)[0];
var numMsgs = firstThread.getMessageCount(); // # of messages in a given thread
Logger.log("numMsgs="+numMsgs);
Logger.log("Subject="+firstThread.getFirstMessageSubject());
var messages = firstThread.getMessages();
Logger.log("firstThread.isUnread()=="+firstThread.isUnread());
if (firstThread.isUnread()== true ){ // check if thread is Read
for (var i = 0; i < messages.length; i++) { //Go through each message within a Thread
Logger.log("messages["+i+"].subject="+messages[i].getSubject());
Logger.log("messages["+i+"].isUnread="+messages[i].isUnread());
if (messages[i].isUnread()){ // if the message is unread
var unreadBody = messages[i].getBody(); // Body contents variable that contains the body
Logger.log("messages["+i+"].body="+unreadBody);
var unreadFrom = messages[i].getFrom(); // Email Sender contents variable
Logger.log("messages["+i+"].from="+messages[i].getFrom());
messages[i].markRead(); // Mark message as read
Logger.log("messages["+i+"].isUnread="+messages[i].isUnread());
var fullLot = "Full"; // look for "Full" in text message.
var searchResult = unreadBody.search(fullLot);
Logger.log("messages["+i+"].searchResult="+searchResult);
if(searchResult == true && getEmail()==AdminTest()){
// if the sender has the proper admin email / phone #, then call function sendEmails
sendEmails();
}
}
}
}
}
相关文章:
- Sencha Touch使用pageSize配置只加载几行
- 用于匹配错误和关联几行的正则表达式
- 我可以'不要让这几行简单的代码正常工作,也不知道为什么
- 如果字段在几行空行之后包含前几个字符,则验证描述字段长度
- 我只从vimeo示例中复制了3行脚本 - 它会导致“未定义”错误
- 只对表的几行进行排序 - jquery/ javascript
- 用户未输入几行时的 JavaScript 计算(添加剩余的行值)
- 单击时添加几行,双击删除添加的行
- 数组中的字符串显示为未定义,尽管在几行之前成功.log控制台
- 递增表行脚本
- 不太确定几行代码
- 如何使用D3来附加几行html代码
- javascript可以打开几行
- Ajax ModalPopUp Extender在执行代码后面的前几行之前弹出
- 谷歌脚本只读取前几行
- 有没有办法将其简化为jQuery的几行
- 使文本显示为几行可点击的线条
- 为什么这个JS代码被几行简单的代码阻塞
- 在MVC中显示几行文本
- 在Google电子表格中的几行中迭代一个函数