Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Email 基于单元格值发送电子邮件_Email_Google Apps Script_Google Sheets - Fatal编程技术网

Email 基于单元格值发送电子邮件

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

电子邮件功能工作正常,但代码有以下错误:

SyntaxError:添加函数checkValue时,输入(第90行,文件“Code.gs”)(最后一行)意外结束

基本上,我们希望在编辑D2时自动发送电子邮件。我们希望这将消除每次aid复制模板时允许发送电子邮件的权限的需要

    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();