Как добавить вложения в письмо при рассылка писем из Таблицы?

Подскажите пожалуйста, что нужно добавить в этот скрипт, чтобы можно было отправлять письма с вложениями?
Условно вставляем в шестой столбец ссылку на файл гугл драйва и файл крепиться к письму.
В коде очень плохо понимаю, делал скрипт по аналогии с другими, а с вложениями не смог разобраться.

function sendEmail(recipient, subject, htmlBody, options)
{
var sheet = SpreadsheetApp.getActiveSheet();
var activeRange = sheet.getActiveRange();
var data = activeRange.getValues();
for (i in data) {
var row = data[i];
var namesender = row[0];
var emailAddress = row[1];
var hiddencopy = row[2];
var subject = row[3];
var message = row[5];
var information = row[4];

};

var emailQuotaRemaining = MailApp.getRemainingDailyQuota();
Logger.log("Remaining email quota: " + emailQuotaRemaining);


MailApp.sendEmail({
to: emailAddress,
bcc: hiddencopy,
replyTo: "supportmp@test.ru",
name: namesender,
subject: subject + " " + information,
htmlBody: message,
});
}
  • Вопрос задан
  • 2066 просмотров
Решения вопроса 1
oshliaer
@oshliaer Куратор тега Google Apps Script
Google Products Expert
Самое простое, это добавить body с сылкой на Диск

MailApp.sendEmail({
  ...
  body: 'https://drive...',
  ...
});


Файл подтянется автоматически. Другой вопрос - это подключение файлов через аттачмент.

Пример для PDF

var file = DriveApp.getFilesByName('test123.pdf');
if (file.hasNext()) {
    MailApp.sendEmail(emailAddress, subject, message, {
    attachments: [file.next().getAs(MimeType.PDF)],
    name: 'Automatic Emailer Script'
}


Мой код согласно комментариям

function sendEmail() {
  var sheet = SpreadsheetApp.getActiveSheet();
  var activeRange = sheet.getActiveRange();
  var data = sheet
    .getRange(
      activeRange.getRow(),
      1,
      activeRange.getLastRow() - activeRange.getRow() + 1,
      6
    )
    .getValues();

  data.forEach(function(row) {
    var file = DriveApp.getFilesByName(row[5]);
    if (file.hasNext()) {
      var namesender = row[0];
      var emailAddress = row[1];
      var hiddencopy = row[2];
      var subject = row[3];
      var message = row[5];
      var information = row[4];
      var emailQuotaRemaining = MailApp.getRemainingDailyQuota();
      Logger.log('Remaining email quota: ' + emailQuotaRemaining);

      MailApp.sendEmail({
        to: emailAddress,
        bcc: hiddencopy,
        replyTo: 'supportmp@test.ru',
        name: namesender,
        subject: subject + ' ' + information,
        htmlBody: message + ' ' + https,
        attachments: [file.next().getAs(MimeType.PDF)],
      });
    } else {
      Logger.log('Файл для отправки не найден');
    }
  });
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы