Email 基于单元格值发送电子邮件
电子邮件功能工作正常,但代码有以下错误: SyntaxError:添加函数checkValue时,输入(第90行,文件“Code.gs”)(最后一行)意外结束 基本上,我们希望在编辑D2时自动发送电子邮件。我们希望这将消除每次aid复制模板时允许发送电子邮件的权限的需要Email 基于单元格值发送电子邮件,email,google-apps-script,google-sheets,Email,Google Apps Script,Google Sheets,电子邮件功能工作正常,但代码有以下错误: SyntaxError:添加函数checkValue时,输入(第90行,文件“Code.gs”)(最后一行)意外结束 基本上,我们希望在编辑D2时自动发送电子邮件。我们希望这将消除每次aid复制模板时允许发送电子邮件的权限的需要 function checkValue () { var check = sheet.getRange("D2").getValue(); var rangeEdit =e.range.getA1No
function checkValue () {
var check = sheet.getRange("D2").getValue();
var rangeEdit =e.range.getA1Notation();
if(rangeEdit == "D2") {
{
function email(checkValue) {
// Send the PDF of the spreadsheet to this email address
// Get the currently active spreadsheet URL (link)
// Or use SpreadsheetApp.openByUrl("<<SPREADSHEET URL>>");
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName("ClassA")
var lrow = sheet.getLastRow()
var name = sheet.getRange("E4").getValue();
var aid = sheet.getRange("E3").getValue();
var email = sheet.getRange("E5").getValue();
var pemail = sheet.getRange("E2").getValue();
var period = sheet.getRange("C1").getValue();
var og= sheet.getRange("D2").getValue();
// Subject of email message
var subject = "Grade Summary | " + og +"- " + period;
// Email Body can be HTML too with your logo image - see ctrlq.org/html-mail
var body = "Hi " + name + ", "+ "<br><br> Please find the grade summary attached for " + period + ". <br><br> Let us know if you have any questions.<br><br> Thank you,<br><br> " + aid;
var aliases = GmailApp.getAliases()
Logger.log(aliases); //returns the list of aliases you own
Logger.log(aliases[0]); //returns the alias located at position 0 of the aliases array
// Base URL
var url = "https://docs.google.com/spreadsheets/d/SS_ID/export?".replace("SS_ID", ss.getId());
/* Specify PDF export parameters
From: https://code.google.com/p/google-apps-script-issues/issues/detail?id=3579
*/
var url_ext = 'exportFormat=pdf&format=pdf' // export as pdf / csv / xls / xlsx
+ '&size=letter' // paper size legal / letter / A4
+ '&portrait=True' // orientation, false for landscape
+ '&fitw=true' // fit to page width, false for actual size
+ '&sheetnames=false&printtitle=false' // hide optional headers and footers
+ '&pagenumbers=false&gridlines=false' // hide page numbers and gridlines
+ '&fzr=false' // do not repeat row headers (frozen rows) on each page
+ '&gid='; // the sheet's Id
var token = ScriptApp.getOAuthToken();
//make an empty array to hold your fetched blobs
var blobs;
// Convert your specific sheet to blob
var response = UrlFetchApp.fetch(url + url_ext + sheet.getSheetId(), {
headers: {
'Authorization': 'Bearer ' + token
}
});
//convert the response to a blob and store in our array
blobs = response.getBlob().setName(sheet.getName() + '.pdf');
// Define the scope
Logger.log("Storage Space used: " + DriveApp.getStorageUsed());
MailApp.sendEmail(email, subject, body, {
htmlBody: body,
name:'class',
bcc: aid,
noReply: true,
attachments:[blobs]
});
}
函数校验值(){
var check=sheet.getRange(“D2”).getValue();
var rangeEdit=e.range.getA1Notation();
如果(范围编辑==“D2”){
{
功能电子邮件(checkValue){
//将电子表格的PDF发送到此电子邮件地址
//获取当前活动的电子表格URL(链接)
//或者使用SpreadsheetApp.openByUrl(“”);
var ss=SpreadsheetApp.getActiveSpreadsheet();
var sheet=ss.getSheetByName(“ClassA”)
var lrow=sheet.getLastRow()
var name=sheet.getRange(“E4”).getValue();
var aid=sheet.getRange(“E3”).getValue();
var email=sheet.getRange(“E5”).getValue();
var pemail=sheet.getRange(“E2”).getValue();
var period=sheet.getRange(“C1”).getValue();
var og=sheet.getRange(“D2”).getValue();
//电子邮件的主题
var subject=“成绩汇总|”+og+“-”+期间;
//电子邮件正文也可以是HTML,带有您的徽标图像-请参阅ctrlq.org/HTML-mail
var body=“Hi”+name+,“+”
请查看随附的“+期间+”
的成绩汇总表,如果您有任何问题,请告知我们。
谢谢,
“+aid;
var aliases=GmailApp.getAliases()
Logger.log(别名);//返回您拥有的别名列表
Logger.log(别名[0]);//返回位于别名数组位置0的别名
//基本URL
变量url=”https://docs.google.com/spreadsheets/d/SS_ID/export?.replace(“SS_ID”,SS.getId());
/*指定PDF导出参数
发件人:https://code.google.com/p/google-apps-script-issues/issues/detail?id=3579
*/
var url_ext='exportFormat=pdf&format=pdf'//导出为pdf/csv/xls/xlsx
+“&size=letter”//纸张大小合法/letter/A4
+“&纵向=真”//方向,横向为假
+“&fitw=true”//适合页面宽度,实际大小为false
+“&sheetnames=false&printtitle=false”//隐藏可选的页眉和页脚
+“&pagenumbers=false&gridlines=false”//隐藏页码和网格线
+“&fzr=false”//不要在每页上重复行标题(冻结行)
+“&gid=”;//工作表的Id
var token=ScriptApp.getOAuthToken();
//创建一个空数组来保存获取的blob
var斑点;
//将特定图纸转换为blob
var response=UrlFetchApp.fetch(url+url\u ext+sheet.getSheetId(){
标题:{
“授权”:“持票人”+代币
}
});
//将响应转换为blob并存储在数组中
blobs=response.getBlob().setName(sheet.getName()+'.pdf');
//界定范围
Logger.log(“使用的存储空间:+DriveApp.getStorageUsed());
MailApp.sendEmail(电子邮件、主题、正文、{
htmlBody:body,
名称:'class',
密件抄送:援助,
诺雷普利:没错,
附件:[斑点]
});
}
您的代码没有足够的结束括号来终止函数checkValue
,因此它返回语法错误
由于您的目的是在发送电子邮件之前先检查值,因此最好将email
函数分开,并从checkValue
调用它,而不是将其包含在if语句中。也不需要该参数
另外,由于您表示需要发送电子邮件,因此需要一个可安装的触发器。请通过运行createSpreadsheetEditTrigger()
,使用脚本服务创建一个触发器,然后运行checkValue()
函数createSpreadsheetEditTrigger(){
var ss=SpreadsheetApp.getActiveSpreadsheet();
ScriptApp.newTrigger('checkValue'))
.前页(ss)
.onEdit()
.create();
}
函数校验值(e){
var rangeEdit=e.range.getA1Notation();
如果(范围编辑==“D2”){
电子邮件();
}
}
功能电子邮件(){
//将电子表格的PDF发送到此电子邮件地址
//获取当前活动的电子表格URL(链接)
//或者使用SpreadsheetApp.openByUrl(“”);
var ss=SpreadsheetApp.getActiveSpreadsheet();
var sheet=ss.getSheetByName(“ClassA”)
var lrow=sheet.getLastRow()
var name=sheet.getRange(“E4”).getValue();
var aid=sheet.getRange(“E3”).getValue();
var email=sheet.getRange(“E5”).getValue();
var pemail=sheet.getRange(“E2”).getValue();
var period=sheet.getRange(“C1”).getValue();
var og=sheet.getRange(“D2”).getValue();
//电子邮件的主题
var subject=“成绩汇总|”+og+“-”+期间;
//电子邮件正文也可以是HTML,带有您的徽标图像-请参阅ctrlq.org/HTML-mail
var body=“Hi”+name+,“+”
请查看随附的“+期间+”
的成绩汇总表,如果您有任何问题,请告知我们。
谢谢,
“+aid;
var aliases=GmailApp.getAliases()
Logger.log(别名);//返回您拥有的别名列表
Logger.log(别名[0]);//返回位于别名数组位置0的别名
//基本URL
变量url=”https://docs.google.com/spreadsheets/d/SS_ID/export?.replace(“SS_ID”,SS.getId());
/*指定PDF导出参数
发件人:https://code.google.com/p/google-apps-script-issues/issues/detail?id=3579
*/
var url_ext='exportFormat=pdf&format=pdf'//导出为pdf/csv/xls/xlsx
+“&size=字母”
function createSpreadsheetEditTrigger() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
ScriptApp.newTrigger('checkValue')
.forSpreadsheet(ss)
.onEdit()
.create();
}
function checkValue(e) {
var rangeEdit = e.range.getA1Notation();
if(rangeEdit == "D2") {
email();
}
}
function email() {
// Send the PDF of the spreadsheet to this email address
// Get the currently active spreadsheet URL (link)
// Or use SpreadsheetApp.openByUrl("<<SPREADSHEET URL>>");
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName("ClassA")
var lrow = sheet.getLastRow()
var name = sheet.getRange("E4").getValue();
var aid = sheet.getRange("E3").getValue();
var email = sheet.getRange("E5").getValue();
var pemail = sheet.getRange("E2").getValue();
var period = sheet.getRange("C1").getValue();
var og= sheet.getRange("D2").getValue();
// Subject of email message
var subject = "Grade Summary | " + og +"- " + period;
// Email Body can be HTML too with your logo image - see ctrlq.org/html-mail
var body = "Hi " + name + ", "+ "<br><br> Please find the grade summary attached for " + period + ". <br><br> Let us know if you have any questions.<br><br> Thank you,<br><br> " + aid;
var aliases = GmailApp.getAliases()
Logger.log(aliases); //returns the list of aliases you own
Logger.log(aliases[0]); //returns the alias located at position 0 of the aliases array
// Base URL
var url = "https://docs.google.com/spreadsheets/d/SS_ID/export?".replace("SS_ID", ss.getId());
/* Specify PDF export parameters
From: https://code.google.com/p/google-apps-script-issues/issues/detail?id=3579
*/
var url_ext = 'exportFormat=pdf&format=pdf' // export as pdf / csv / xls / xlsx
+ '&size=letter' // paper size legal / letter / A4
+ '&portrait=True' // orientation, false for landscape
+ '&fitw=true' // fit to page width, false for actual size
+ '&sheetnames=false&printtitle=false' // hide optional headers and footers
+ '&pagenumbers=false&gridlines=false' // hide page numbers and gridlines
+ '&fzr=false' // do not repeat row headers (frozen rows) on each page
+ '&gid='; // the sheet's Id
var token = ScriptApp.getOAuthToken();
//make an empty array to hold your fetched blobs
var blobs;
// Convert your specific sheet to blob
var response = UrlFetchApp.fetch(url + url_ext + sheet.getSheetId(), {
headers: {
'Authorization': 'Bearer ' + token
}
});
//convert the response to a blob and store in our array
blobs = response.getBlob().setName(sheet.getName() + '.pdf');
// Define the scope
Logger.log("Storage Space used: " + DriveApp.getStorageUsed());
MailApp.sendEmail(email, subject, body, {
htmlBody: body,
name:'class',
bcc: aid,
noReply: true,
attachments:[blobs]
});
}
var rangeEdit =e.range.getA1Notation();