【问题标题】:Gmail app send email with multiple attachmentsGmail 应用程序发送带有多个附件的电子邮件
【发布时间】:2020-09-24 11:11:06
【问题描述】:

我想学习如何使用电子表格发送带有附件的批量谷歌邮件。 在spreadsheet 中,我输入了电子邮件地址、内容模板和附件 url。

这是我发现的我试图用于我的目的的代码:

var EMAIL_SENT = "EMAIL_SENT";

function sendEmails() {
  var sheet = SpreadsheetApp.getActiveSheet();
  var startRow = 2;  
  var numRows = 5; 
  var blobs = [];

  var dataRange = sheet.getRange(startRow, 1, numRows, 5)

  var data = dataRange.getValues();
  for (var i = 0; i < data.length; ++i) {
    var row = data[i];
    var emailAddress = row[2];  // 3rd column
    var subject = "Attachments";       
    var message = row[4];       // 5th column
    var attachments = row[3];     // Fourth column
    var emailSent = row[0];     // 1st column
    if (emailSent != EMAIL_SENT) {  

      GmailApp.sendEmail(emailAddress, subject, message, attachments);

      sheet.getRange(startRow + i, 1).setValue(EMAIL_SENT);

      SpreadsheetApp.flush();
    }
  }
}

当我尝试午餐时,电子邮件已发送但没有附件。 请帮帮我。

非常感谢。

【问题讨论】:

    标签: google-apps-script google-sheets


    【解决方案1】:

    您没有说明要发送哪些附件。我看到您在电子表格中调用了某些内容,但没有看到附件。

    尝试使用类似的东西

     var file = DriveApp.getFilesByName('attacheddoc.pdf');
      if (file.hasNext()) {
        MailApp.sendEmail(emailAddress, subject, message, {
        attachments: [file.next().getAs(attacheddoc.PDF)],
        name: 'Attached Documents'
      }
    

    所以你的代码应该是这样的

        var EMAIL_SENT = "EMAIL_SENT";
    
        function sendEmails() {
          var sheet = SpreadsheetApp.getActiveSheet();
          var startRow = 2;  
          var numRows = 5; 
          var blobs = [];
    
          var dataRange = sheet.getRange(startRow, 1, numRows, 5)
    
          var data = dataRange.getValues();
          for (var i = 0; i < data.length; ++i) {
            var row = data[i];
            var emailAddress = row[2];  // 3rd column
            var subject = "Attachments";       
            var message = row[4];       // 5th column
            var attachments = row[3];     // Fourth column
            var emailSent = row[0];     // 1st column
            if (emailSent != EMAIL_SENT) {  
    
             var file = DriveApp.getFilesByName(attachments.pdf');
      if (file.hasNext()) {
        MailApp.sendEmail(emailAddress, subject, message, {
        attachments: [file.next().getAs(attachments+'.PDF')],
        name: 'Attached Documents'
      }
            }
          }
        }
    

    希望这对你有用。需要一些修修补补。但是,如果没有看到工作表,我真的无法为您做到这一点。如果它有效+1? :)

    【讨论】:

    • 我已将文档的网址放在一列中。我怎样才能把这些网址作为附件?
    • 如果您从 GDrive 调用了这些附件,则添加 MailApp.sendEmail(emailAddress, subject, message, { attachments: [file.next().getAs(attacheddoc.PDF)], name: '附加文件
    • 改变我的答案来帮助你
    猜你喜欢
    • 2020-03-28
    • 1970-01-01
    • 2016-10-08
    • 2016-09-22
    • 1970-01-01
    • 2015-10-25
    • 1970-01-01
    • 2017-07-24
    相关资源
    最近更新 更多