web-dev-qa-db-ja.com

Googleドライブにある添付ファイル付きのメールを送信する

GoogleドライブにあるPDF添付ファイルをスプレッドシートから送信したい。

私が使用しているコードは次のとおりです。

function sendEmails() {
  var sheet = SpreadsheetApp.getActiveSheet();
  var startRow = 2;  // First row of data to process
  var numRows = 8;   // Number of rows to process
  // Fetch the range of cells A2:B3
  var dataRange = sheet.getRange(startRow, 1, numRows, 2)
  // Fetch values for each row in the Range.
  var file = DriveApp.getFilesByName('ScriptCarPass.pdf')
  var data = dataRange.getValues();
  for (i in data) {

    var row = data[i];
    var emailAddress = row[0];  // First column
    var message = row[1];       // Second column
    var subject = "Sending emails from a Spreadsheet";
    MailApp.sendEmail(emailAddress, subject, message, {attachments: file});
  }
}

添付ファイルを除くすべてが正常に動作します-つまり、添付ファイルなしで実行すると正常に動作します。

エラーInvalid argument: inlineImagesが表示され続ける

私も試しました:

 attachments: [file.getAs(MimeType.PDF)]

ただし、.getAsが認識されないというエラーが発生します。

5
Ger Murphy

DriveApp.getFilesByName()は file iterator を返します。したがって、sendMail()引数をわずかに変更する必要があります。

MailApp.sendEmail(emailAddress, subject, message, 
   {attachments: file.next().getBlob()}
);
5
Amit Agarwal