【问题标题】:Google Script: How to automatically add the attachment from Google drive based on the email subject?Google Script:如何根据电子邮件主题自动添加来自 Google Drive 的附件?
【发布时间】:2017-02-06 02:54:13
【问题描述】:

我需要脚本自动将文件附加到电子邮件中。这些文件位于 Google 驱动器中。文件的名称与电子邮件主题相同。每个主题 1 个 PDF。请帮忙!

部分代码是这样的:

  function sendEmails() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var dataSheet = ss.getSheets()[0];
  var dataRange = dataSheet.getRange(2, 1, dataSheet.getMaxRows() - 1, 1000);

  var templateSheet = ss.getSheets()[1];
  var emailTemplate = templateSheet.getRange("A1").getValue();

  objects = getRowsData(dataSheet, dataRange);

  for (var i = 0; i < objects.length; ++i) {
    var rowData = objects[i];


    var emailText = fillInTemplateFromObject(emailTemplate, rowData);
    if (rowData.emailAddress1 != null) {
    MailApp.sendEmail(rowData.emailAddress1, rowData.subject, emailText);
    }
     if (rowData.emailAddress2 != null) {
    MailApp.sendEmail(rowData.emailAddress2, rowData.subject, emailText);
    } 
    if (rowData.emailAddress3 != null) {
    MailApp.sendEmail(rowData.emailAddress3, rowData.subject, emailText);
    } 
    if (rowData.emailAddress4 != null) {
    MailApp.sendEmail(rowData.emailAddress4, rowData.subject, emailText);
    } 
    if (rowData.emailAddress5 != null) {
    MailApp.sendEmail(rowData.emailAddress5, rowData.subject, emailText);
    } 
    if (rowData.emailAddress6 != null) {
    MailApp.sendEmail(rowData.emailAddress6, rowData.subject, emailText);
    } 
    if (rowData.emailAddress7 != null) {
    MailApp.sendEmail(rowData.emailAddress7, rowData.subject, emailText);
    } 
    if (rowData.emailAddress8 != null) {
    MailApp.sendEmail(rowData.emailAddress8, rowData.subject, emailText);
    } 
    if (rowData.emailAddress9 != null) {
    MailApp.sendEmail(rowData.emailAddress9, rowData.subject, emailText);
    } 
    if (rowData.emailAddress10 != null) {
    MailApp.sendEmail(rowData.emailAddress10, rowData.subject, emailText);
    } 
  } 
}

【问题讨论】:

    标签: email google-sheets attachment


    【解决方案1】:

    您可以根据主题在云端硬盘中找到该文件并将其添加为附件。

    var files = DriveApp.getFilesByName(rowData.subject);
    
    if (files.hasNext()) {
    
      MailApp.sendEmail(rowData.emailAddress1, rowData.subject, emailText, {
          attachments: [files.next().getBlob()]
      });
    
    }
    

    【讨论】:

    • 这也适用于我: var emailText = fillInTemplateFromObject(emailTemplate, rowData); var id = DriveApp.getFileById(rowData.attachment); if (rowData.emailAddress1 != null) { MailApp.sendEmail(rowData.emailAddress1, rowData.subject, emailText, {attachments:[id]}); }
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-05-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多