Я пытаюсь отправить электронное письмо из скрипта Служб Google, в котором будут прикреплены два файла с моего Диска, и прикрепить их не как настоящие файлы, а скорее как ссылки на файл на Google Диске.Один из файлов - это Google Doc, а другой - MP4 в папке Drive.Вот пример того, что я имею в виду.Если я прикреплю MP4 в виде файла, он будет отображаться в Gmail следующим образом:
Снимок экрана прикрепленного файла
Но я пытаюсь получить егогде он прикрепляется просто как ссылка, которая позволяет получателю просматривать видео прямо в Gmail, например:
Снимок экрана связанного видеофайла (обратите внимание на файл, указанный выше в разделе вложения)
Это будет использоваться как часть Google Sheet, где у меня есть список людей с их адресами электронной почты на листе.После запуска этот скрипт отправит электронное письмо каждому человеку в списке, с вложениями, идентичными для каждого.Вот код, с которым я сейчас работаю:
function sendEmails() {
var ss = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var list = ss.getRange("A1:A").getValues();
var numRows = list.filter(String).length;
console.log((numRows - 1) + " emails in queue.");
for (var i = 2; i <= numRows; i += 1) {
var name = ss.getRange(i,11).getValue();
var first = ss.getRange(i,1).getValue();
var email = ss.getRange(i,4).getValue();
var doc = DriveApp.getFileById('[id number]');
var video = DriveApp.getFileById('[second id number]');
console.log("Pre-email log for " + name);
MailApp.sendEmail(email,'Subject','', {
name: 'My Name',
htmlBody: "<body>HTML content</body>",
attachments: [doc, video]
});
console.log("Email sent for " + name);
}
console.log((numRows - 1) + " emails sent.");
}
Теперь, если я продолжу в том же духе, электронное письмо будет отправлено просто отлично, но документ будет отформатирован как PDF, и оба файла будут прикреплены как файл., а не ссылка.Мой поиск побудил меня настроить строку вложения следующим образом:
attachments: [doc.getAs(MimeType.GOOGLE_DOCS), video]
Однако, когда я пытаюсь протестировать функцию, она выдает мне эту ошибку: «Объект Blob должен иметь ненулевые данные для этогооперация «.Я попытался переместить '.getAs(MimeType.GOOGLE_DOCS)'
до строки, где определена переменная, но это не сработало.Я также проверил идентификатор документа, и он правильный.
Кроме того, я не могу найти тип MIME, который (предположительно) работал бы для видеофайла.Я перепробовал все доступные варианты, включая 'video/mp4'
, но, похоже, ничего не работает.Для записи, размер видеофайла составляет ~ 12 МБ.
Я мог бы просто поместить ссылки на общий доступ к файлам диска в теле письма, и это позволило бы выполнить то, что я пытаюсь сделать,но оно помечает письмо как потенциально опасное сообщение из-за того, что оно отправлено через сценарий и содержит пустые ссылки.Это происходит, если я просто помещаю ссылки в себя или использую тег "<a href=''></a>"
для создания ссылки.Ранее я отправлял множество писем с помощью скрипта приложений, но без этой проблемы, как с вложенными файлами, так и без них.
Мне кажется, что я просто упускаю что-то простое, но не могу понять, какчтобы получить эти два файла, чтобы прикрепить как ссылки на диск.Это возможно?Можно ли просто как-то встроить ссылки для обмена сообщениями в тело письма, чтобы электронная почта не была помечена как потенциально опасная?
Надеюсь, это имеет смысл;любая помощь будет принята с благодарностью!