我请求帮助。帮我完成脚本。有必要将邮件gmail的内容传输到Google表。有一个脚本,但它只传输字母的日期和主题,而消息本身则没有。帮助,有可能纠正。感谢
function getGmailData() {
var sheet = SpreadsheetApp.getActiveSheet();
var threads = GmailApp.search("is:unread in:inbox", 0, 1);
for (var t=0; t<threads.length; t++) {
sheet.appendRow([threads[t].getDate(), threads[t].getFirstMessageSubject()])
}
}
答案 0 :(得分:0)
以下修改怎么样?
threads
检索邮件,请使用getMessages()
。getMessages()
检索到的邮件中检索每封邮件,它会使用另一个&#34; for循环&#34;来检索。getDate()
, getFrom()
, getSubject()
and getPlainBody()
重新检索日期,发件人,主题和正文。function getGmailData() {
var sheet = SpreadsheetApp.getActiveSheet();
var threads = GmailApp.search("is:unread in:inbox", 0, 1);
var res = [];
for (var t=0; t<threads.length; t++) {
var msgs = threads[t].getMessages();
for (var u=0; u<msgs.length; u++) {
var m = msgs[u];
res.push([m.getDate(), m.getFrom(), m.getSubject(), m.getPlainBody()]);
}
}
sheet.getRange(sheet.getLastRow() + 1, 1, res.length, res[0].length).setValues(res);
}
如果我误解了你的问题,我很抱歉。
如果您想从今天起检索邮件,可以使用newer_than:
和after:
运营商。
newer_than:
var threads = GmailApp.search("newer_than:1d in:inbox", 0, 1);
after:
var today = Utilities.formatDate(new Date(), Session.getScriptTimeZone(), 'yyyy/MM/dd');
var threads = GmailApp.search("after:" + today + " in:inbox", 0, 1);