Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/6.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
Javascript 将带有不同PDF的电子邮件发送到不同的电子邮件附件_Javascript_Google Apps Script_Google Sheets_Google Docs_Email Attachments - Fatal编程技术网

Javascript 将带有不同PDF的电子邮件发送到不同的电子邮件附件

Javascript 将带有不同PDF的电子邮件发送到不同的电子邮件附件,javascript,google-apps-script,google-sheets,google-docs,email-attachments,Javascript,Google Apps Script,Google Sheets,Google Docs,Email Attachments,我正在尝试使用不同的PDF(10)自动向多个发件人发送电子邮件(10封电子邮件)。是否有办法在电子表格列中电子邮件地址旁边附加pdf?然后发送带有pdf格式销售报价的电子邮件作为附件。这可以在谷歌表单的JS中完成 如果有人帮助我,我将不胜感激。因此,JavaScript在客户端运行。这意味着您的代码正在运行用户浏览器。简而言之,你不能仅仅用JavaScript发送电子邮件。你需要一个服务器来完成这项工作 例如,您可以将SpringBoot与Java结合使用,Java已经实现了许多方法,使您的任务

我正在尝试使用不同的PDF(10)自动向多个发件人发送电子邮件(10封电子邮件)。是否有办法在电子表格列中电子邮件地址旁边附加pdf?然后发送带有pdf格式销售报价的电子邮件作为附件。这可以在谷歌表单的JS中完成


如果有人帮助我,我将不胜感激。

因此,JavaScript在客户端运行。这意味着您的代码正在运行用户浏览器。简而言之,你不能仅仅用JavaScript发送电子邮件。你需要一个服务器来完成这项工作

例如,您可以将SpringBoot与Java结合使用,Java已经实现了许多方法,使您的任务(即发送电子邮件)变得非常简单


看看

如果你使用谷歌表单,这是可能的,但你必须要有创意。事实上,你可以用javascript,通过谷歌脚本从谷歌表单发送电子邮件。我认为如果你在同一个工作簿中有一个隐藏的工作表,有一个公式用PDF的布局填充该工作表,然后将该工作表导出为PDF以附加到电子邮件。。。这是可行的

你可能会找到一些灵感


基本从google sheets发送电子邮件示例。

您可以通过以下步骤完成此操作

  • 将10个附件上载到一个google drive文件夹

  • 在google工作表上添加以下脚本以获取文件id

  • 构建一个简单的脚本来发送电子邮件,将10封电子邮件放在一列中,并将上述代码生成的所有文件ID放在下一列中。下面是从电子表格发送电子邮件的示例脚本
  • 函数sendEmails(){ SpreadsheetApp.getActiveSpreadsheet().getSheetByName(“电子邮件”).activate();//电子邮件是包含电子邮件和文件ID列的工作表 var ss=SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); var lr=ss.getLastRow(); var templateText=SpreadsheetApp.getActiveSpreadsheet().getSheetByName(“模板”).getRange(1,1).getValue();//模板是包含我的电子邮件正文的工作表
    对于(var i=2;iYou是否在客户端执行此操作?JavaScript除了mailto之外,实际上没有任何发送电子邮件的能力,并且没有附加文件的能力。
    function listFilesInFolder() {
    
        SpreadsheetApp.getActiveSpreadsheet().getSheetByName("FileID").activate(); //The name of the google sheet is FileID in my case
    
        var sheet = SpreadsheetApp.getActiveSheet();
        sheet.appendRow(["File Name", "File-Id"]);
    
      //change the folder ID below to reflect your folder's ID (look in the URL when you're in your folder)
    
        var folder = DriveApp.getFolderById("*[Enter Folder ID here]*");
        var contents = folder.getFiles();
    
        var cnt = 0;
        var file;
    
        while (contents.hasNext()) {
            var file = contents.next();
            cnt++;
    
               data = [
                    file.getName(),
                    file.getId(),
                ];
    
                sheet.appendRow(data);
        }
    }
    
    function sendEmails() {
    
      SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Emails").activate(); // Emails is the sheet which has the email and File ID columns
    
      var ss = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
      var lr = ss.getLastRow();
    
      var templateText =  SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Template").getRange(1, 1).getValue();  // Template is the sheet which has my email body
    
      for (var i = 2;i<=lr;i++){
    
        var currentEmail = ss.getRange(i, 1).getValue();  //Email IDs are on the first column for me
    
        var currentAttachment = ss.getRange(i, 2).getValue();    //Assuming your File IDs are on the second column
    
    
        var waiver = DriveApp.getFileById(currentAttachment);
        var liabilityWaiver = waiver.getAs(MimeType.PDF);
    
    MailApp.sendEmail(currentEmail, subjectLine, messageBody, {attachments:[liabilityWaiver],
                                                                   cc:'abc@abc.com'});  // the cc is in case you want to CC someone else on the email