我是 API 腳本的新手,并嘗試將電子郵件發送到 Sheet sendTo!B2 中列出的地址。組成的訊息在 composeMessage!A2 之后。我的腳本給出了一個未知錯誤。我究竟做錯了什么?我將不勝感激任何幫助
函式 composeNsend()
{
// Fetch the message
var messageRange = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("composeMessage").getRange("A2");
var message = messageRange.getValue();
{
// Fetch the email address
var emailRange = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("sendTo").getRange("B2");
var emailAddress = emailRange.getValue();
// Send Email.
var message = message;
var subject = 'ALERT for New 365d Low';
MailApp.sendEmail(emailAddress, subject, message);
}
}
我撰寫的訊息確實有空行
謝謝
uj5u.com熱心網友回復:
您的代碼中間有一些額外的括號。洗掉它們,該功能將起作用。編輯代碼以回圈遍歷行并標記已發送的行。下面的代碼對我有用:
function composeNsend()
{
let curr_ss = SpreadsheetApp.getActiveSpreadsheet();
let subject = 'ALERT for New 365d Low';
let message_sheet = curr_ss.getSheetByName("composeMessage");
let last_message_row = message_sheet.getLastRow();
//get 2D array of values
let message_array = message_sheet.getRange("A2:A" last_message_row.toString()).getValues();
//convert to 1D array
let messages = message_array.map(itm=>itm[0]);
let email_sheet = curr_ss.getSheetByName("sendTo")
let last_email_row = email_sheet.getLastRow();
//get 2D array of values
let email_array = email_sheet.getRange("B2:B" last_email_row.toString()).getValues();
//convert to 1D array
let emails =email_array.map(itm=>itm[0]);
//get flags column
let flags = email_sheet.getRange("C2:C" last_message_row.toString()).getValues().map(itm => itm[0]);
//empty array for new flag values
let new_flags = [];
//choose lowest of last rows in messages and emails, don't send emails without body or email address
let last_row = Math.min(last_email_row,last_message_row);
//for loop to send emails, add flag on column C for each email sent
//subtract 1 from last row because array starts from second row
for(let i=0; i<last_row-1; i ){
let curr_flag = flags[i];
//send email only for rows without sent flag
if(curr_flag != 'sent'){
let message = messages[i];
let emailAddress=emails[i];
MailApp.sendEmail(emailAddress, subject, message);
}
new_flags.push(['sent']);
}
//write new flags to sheet
email_sheet.getRange("C2:C" last_row.toString()).setValues(new_flags);
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/450843.html
上一篇:多列展開腳本
