Неверные аргументы при отправке базового письма через API GMail - PullRequest
0 голосов
/ 04 марта 2020

Я пытаюсь отправить электронное письмо через API Gmail через скрипт Google Apps в листах, используя пример из документации по API Gmail, но получаю:

Исключение: недействительно количество аргументов. Ожидается только 2-4 (строка 240, файл "Код").

Line 240 - это когда я звоню Gmail.Users.Messages.send. Это выглядит как самое основное c сообщение электронной почты, которое я могу создать. Может ли кто-нибудь помочь мне с тем, что мне не хватает?

function senDAMail() {

  var bdy =  "From: steve@gmail.com\n\r, To: steve@gmail.com\n\r, Subject: test\n\r\n\r, You first build the message with headers like From and Subject as you mentioned, but you have to encode the message before sending it. There is no way around that.";

  var encodemsg = Utilities.base64EncodeWebSafe(bdy);

  Gmail.Users.Messages.send({
    auth: this.oAuth2Client,
    'userId': 'steve@gmail.com',
    'resource': {
      'raw': encodemsg
    }
  });
}

1 Ответ

2 голосов
/ 04 марта 2020

Как насчет этой модификации?

Точки модификации:

  • Пожалуйста, удалите , из \n\r, To, \n\r, Subject и \n\r\n\r, YouP.
  • Пожалуйста, замените \n\r на \r\n или только \n.
  • Аргументами Gmail.Users.Messages.send(resource, userId) являются resource, userId.
    • В вашем случае, я думаю, что resource и userId равны {raw: encodemsg} и "me" соответственно.

Когда вышеуказанные пункты отраженный в вашем скрипте, он становится следующим:

Модифицированный скрипт:

function senDAMail() {
  var bdy =  "From: steve@gmail.com\nTo: steve@gmail.com\nSubject: test\n\nYou first build the message with headers like From and Subject as you mentioned, but you have to encode the message before sending it. There is no way around that.";
  var encodemsg = Utilities.base64EncodeWebSafe(bdy);
  Gmail.Users.Messages.send({raw: encodemsg}, "me");
}

Ссылка:

Если это не было прямым решением вашей проблемы, прошу прощения.

...