Невозможно отправить вложение Excel через Gmail с помощью скрипта Google - PullRequest
1 голос
/ 20 июня 2020

Я использую скрипт Google Apps (* .gs) для отправки почты через Gmail. Электронная почта - это рабочий файл, и даже вложения с изображениями, доступными в URL-адресе publi c, работают нормально. Я использую

var file = DriveApp.getFileById("Google file ID") 

, чтобы получить файл и прикрепить его. Я получаю сообщение об ошибке

Функция, которую вы пытаетесь использовать, была отключена администратором вашего домена.

Я администратор и хочу понять, где именно мне включить эту функцию. Может кто-нибудь направить меня, пожалуйста.

Кроме того, я проверил свой код сценария Google свойства проекта и обнаружил, что для сценария требуются следующие 4 области действия OAuth: Вот области и рядом с ними ответ, когда я пытаюсь получить к ним доступ в моем браузере.

  1. https://mail.google.com/ - Возможность доступа к почте.
  2. https://www.googleapis.com/auth/drive - Текст «диск» отображается в верхней части браузера
  3. https://www.googleapis.com/auth/script.external_request - На странице отображается ошибка «Не найдено. Ошибка 404»
  4. https://www.googleapis.com/auth/spreadsheets.currentonly - На странице отображается ошибка «Не найдено. Ошибка 404»

Вот 3 сценария ios Я пробовал. третий не работает.

  1. Отправить почту без вложений: РАБОТАЕТ НАДЛЕЖАЩИМ.
function SimpleMail(){
  GmailApp.sendEmail(<recipient email>, 'MAIL without any ATTACHMENT', 
 'Hi, \nPlease see mail without any attachment' )  
}
Отправить письмо с вложением из публикации c URL: РАБОТАЕТ ОТЛИЧНО с прикрепленным изображением.
function sendAttachment(){
        var attachmentUlr = "<URL of an Image on a public facing website>" ;
        var fileBlob = UrlFetchApp
          .fetch(attachmentUlr)
          .getBlob()
          .setName("fileBlob"+'.jpg');  
        GmailApp.sendEmail(<recipient email>, 'MAIL with ATTACHMENT', 
 'Hi, \nPlease see mail with image from a website as attachment', {attachments:[fileBlob]})
}
С вложением с моего URL-адреса Google Диска: FAILS,
function sendAttachment(){
        var attachmentUlr = DriveApp.getFileById('<Google File ID>');
        var fileBlob = UrlFetchApp
            .fetch(attachmentUlr)
            .getBlob()
            .setName("fileBlob"+'.xlsx');  
        GmailApp.sendEmail(<recipient email>, 'MAIL with ATTACHMENT', 
 'Hi, \nPlease see mail with file from Drive as attachment', {attachments:[fileBlob]})
}

Ответы [ 2 ]

0 голосов
/ 22 июня 2020

Проблема была решена после того, как я включил Drive SDK API в качестве администратора. Зайдите в панель администратора> Приложения> G Suite> Настройки Диска и Документов> Функции и приложения. Включите / установите флажок «Разрешить пользователям доступ к Google Диску с помощью Drive SDK API».

После включения этой настройки мой код смог выбрать файл с Google Диска для вложения.

0 голосов
/ 20 июня 2020

Это не возвращает URL-адрес файла

DriveApp.getFileById('<Google File ID>')

, который объясняет, почему третий пример кода не работает

Попробуйте это

function sendAttachment(){
   var file = DriveApp.getFileById('<Google File ID>');
   var fileBlob = file.getBlob();
   GmailApp.sendEmail(
      <recipient email>, 
      'MAIL with ATTACHMENT', 
      'Hi, \nPlease see mail with file from Drive as attachment', 
      {attachments:[fileBlob]}
   )
}

Связанные

...