Javascript GmailApp获取电子邮件
我正在尝试获取一些关于我的Gmail帐户的报告,除了尝试使用正则表达式外,其他一切看起来都很好 Te的目标是从报告中获取信息,并将其粘贴到电子表格中,但在做一些测试时,我发现有时候,它无法从gmail中检索到任何内容(如果我将电子邮件正文粘贴到电子表格中,我会看到两个或三个,一个空白,二十个电子邮件,再次空白),因此由于正则表达式,我会得到空值 谁能解释一下我做错了什么?这是我使用谷歌应用程序脚本引擎的第一周 提前谢谢 这是代码Javascript GmailApp获取电子邮件,javascript,scripting,google-apps-script,Javascript,Scripting,Google Apps Script,我正在尝试获取一些关于我的Gmail帐户的报告,除了尝试使用正则表达式外,其他一切看起来都很好 Te的目标是从报告中获取信息,并将其粘贴到电子表格中,但在做一些测试时,我发现有时候,它无法从gmail中检索到任何内容(如果我将电子邮件正文粘贴到电子表格中,我会看到两个或三个,一个空白,二十个电子邮件,再次空白),因此由于正则表达式,我会得到空值 谁能解释一下我做错了什么?这是我使用谷歌应用程序脚本引擎的第一周 提前谢谢 这是代码 function recopilarInformes() {
function recopilarInformes() {
var threads = GmailApp.search('label:informes');
var messages;
var ContentEmail;
var reportDate,CFree,FFree;
for (var i = 0; i < 20 /*threads.length*/; i++) {
messages = threads[i].getMessages()
reportDate = messages[0].getSubject().replace("Informe ","");
ContentEmail = messages[0].getBody();
CFree = /(\d+.\d+)\s.*GB/g(ContentEmail);
FFree = /F<.td><td\s\w+\W+\w+.\w+.>\s(\d+.\d+)/(ContentEmail);
Logger.log(reportDate);
Logger.log(/(\d+.\d+)\s.*GB/g(ContentEmail));
}
函数recopilarInformes(){
var threads=GmailApp.search('label:informes');
var消息;
电子邮件;
var报告日期、CFree、FFree;
对于(变量i=0;i<20/*线程。长度*/;i++){
messages=threads[i].getMessages()
reportDate=messages[0].getSubject().replace(“Informe”,”);
ContentEmail=邮件[0]。getBody();
CFree=/(\d+。\d+)\s.*GB/g(ContentEmail);
FFree=/F\s(\d+。\d+/(ContentEmail);
Logger.log(报告日期);
Logger.log(/(\d+。\d+)\s.*GB/g(ContentEmail));
}
编辑
我得出的结论是,尽管我不知道如何准确使用谷歌应用程序脚本中的gmail对象,但regex并不是实现我目标的最佳方式 这是当前的代码
function recopilarInformes() {
var threads = GmailApp.search('label:informes');
Logger.log(threads);
Logger.log(threads[0].getMessages());
Logger.log(threads[0].getMessages().length);
var messages;// = threads[0].getMessages();
var ContentEmail;// = messages[0].getBody();
var reportDate,CFree,FFree;
for (var i = 0; i < threads.length; i++) {
messages = threads[i].getMessages()
reportDate = messages[0].getSubject().replace("Informe ","");//creo si hubiera más mensajes en la conversación (thread) habría más entradas en este array, que ahora mismso solo contiene una cosa
ContentEmail = messages[0].getBody();
Logger.log(reportDate);
// Logger.log(/(\d+.\d+)\s.*GB/g(ContentEmail));
actualData = ContentEmail.split("------------ Espacio en las unidades -----------")[1];
actualData = actualData.replace(/([^ 0-9,])/g,"").trim().replace(/\s+/g," ").split(" ");
insertValue([reportDate,actualData[0],actualData[1]]);
}
}
函数recopilarInformes(){
var threads=GmailApp.search('label:informes');
Logger.log(线程);
Logger.log(线程[0].getMessages());
Logger.log(线程[0].getMessages().length);
var messages;/=线程[0]。getMessages();
var ContentEmail;//=消息[0]。getBody();
var报告日期、CFree、FFree;
对于(var i=0;i
使用for in循环
function recopilarInformes() {
var threads = GmailApp.search('label:informes');
var message, reportDate;
for (var i in threads) {
message = threads[i].getMessages();
reportDate = message[0].getSubject();
Logger.log(reportDate);
}
}
我在应用程序脚本标记中更改了你的应用程序引擎标记。谢谢,我不确定哪一个是正确的。我不清楚你是否对regex或GmailApp有问题。你在这里记录了两行,日期和内容。这两行是每20封电子邮件跳过一行吗?还是只跳过内容行?我来到结论,尽管我不知道如何准确地使用谷歌应用程序脚本中的gmail对象,但正则表达式并不是实现我目标的最佳方式。在我发布的新代码中,空值并没有出现,但在以前,每次都会记录日期,表达式的结果只是成对出现。