google-apps-script - 在应用程序脚本中使用库时,无效电子邮件:发生未定义错误,但如果我直接使用库代码,就可以了
问题描述
使用保存的版本和库时,会出现“无效电子邮件:未定义”错误。它发生在根本没有写入电子邮件的行。每个库都会发生这种情况。
我尝试在容器绑定中编写电子邮件变量。在每个库的所有变量中都有一个有效的电子邮件地址。
容器中的脚本绑定。
function autoRun(){
Part1.sendEmail()
Part2.sendEmail()
Part3.sendEmail()
Part4.sendEmail()
Part5.sendEmail()
}
保存的库(part1)(所有其他部分与此类似)
function sendEmail() {
var ss = SpreadsheetApp.getActiveSpreadsheet()
var QA = ss.getSheetByName("Quality Alert");
var QAdata = QA.getRange(3,1,QA.getLastRow() - 2,25).getValues();
QAdata.forEach(function(row, i){
var customer = row[1] ;
var part = row[2] ;
var s = row[3] ;
var id = row[4] ;
var defect = row[5] ;
var desc = row[6] ;
var reject = row[7] ;
var ok = row[8] ;
var chemA = row[9] ;
var chemB = row[10] ;
var chemC = row[11] ;
var et = row[12] ;
var fee = row[13] ;
var cam = row[14] ;
var fqa = row[15] ;
var inner = row[16] ;
var ipqc = row[17] ;
var legend = row[18] ;
var lpsm = row[19] ;
var mlb = row[20] ;
var photo = row[21] ;
var routing = row[22] ;
var drilling = row[23] ;
var answer = row[24] ;
var test_mail = "testmail" ;
var chemA_mail = "testmail" ;
var chemB_mail = "testmail" ;
var chemC_mail = "testmail" ;
var et_mail = "testmail" ;
var fee_mail = "testmail" ;
var cam_mail = "testmail" ;
var fqa_mail = "testmail" ;
var inner_mail = "testmail" ;
var ipqc_mail = "testmail" ;
var legend_mail = "testmail" ;
var lpsm_mail = "testmail" ;
var mlb_mail = "testmail" ;
var photo_mail = "testmail" ;
var routing_mail = "testmail" ;
var drilling_mail = "testmail" ;
var all_mail = "testmail" ;
var body = "testinfo";
// Only rows with data will send out an email
if(customer == '')
{
}
// Only send email if "email sent out" column is blank
else if(answer == '')
{
// Send if chemA & fee & fqa & ipqc & lpsm is ticked (Conditions for email to be sent)
if(chemA == '✔' && fee == '✔' && fqa == '✔' && ipqc == '✔' && lpsm == '✔'){
var recipient = [test_mail,all_mail,chemA_mail,fee_mail,fqa_mail,ipqc_mail,lpsm_mail] ;
var subject = "Quality Alert for Chem A, FEE, FQA, IPQC & LPSM";
}
//ERROR HAPPENS HERE
// Send if chemA & fee & fqa & ipqc & mlb is ticked (Conditions for email to be sent)
if(chemA == '✔' && fee == '✔' && fqa == '✔' && ipqc == '✔' && mlb == '✔'){
var recipient = [test_mail,all_mail,chemA_mail,fee_mail,fqa_mail,ipqc_mail,mlb_mail] ;
var subject = "Quality Alert for Chem A, FEE, FQA, IPQC & MLB";
}
GmailApp.sendEmail(recipient, subject, " ",{htmlBody: body});
// Auto adding " Email Sent"
var email_sent = "Email Sent" ;
//(sheet)getRange(i + [which row data starts at],[which column data will be added]).setValue(what you want to be added)
QA.getRange(i + 3,25).setValue(email_sent);
}// End bracket for if(answer = '')
});// End bracket for QAdata
} // End of Function
当我直接在容器绑定中使用库脚本时,它可以工作,但不能在单独的库中使用。
解决方案
不满足条件时会出现错误。因此,如果不满足任何条件,则必须制造或模拟或确保发生某些事情。
推荐阅读
- azure-data-explorer - Kusto 摄取错误“BadRequest_EmptyArchive:空 zip 存档”
- python - Azure 函数应用程序:[Errno 30] 只读文件系统
- c# - Azure EventGrid(已创建 Blob)函数输出流
- node.js - 当 db 是自定义类属性时,如何 spy/stub/mock firestore db.collection().add(),即如何存根 this.db.collection().add()?
- java - Spring:如何在 @RestController 中返回 base64 图像
- haskell - 如何在 ARM64 上安装堆栈?
- typescript - 苗条 3 打字稿:意外的标记(解析错误)
- sql - '{"queue":[],"recieved":[],"accepted":[]}' 不是有效的查询
- python - 根据列值及其前 2 行选择一行
- c++ - std::stoul 但带有 string_view