Измените только тему и отправьте черновик - PullRequest
0 голосов
/ 18 февраля 2019

Я знаю, как отправить черновик Gmail с помощью :

var draft = GmailApp.getDrafts()[0]; 
var msg = draft.send();

и как изменить черновик с помощью update:

draft.update("mike@example.com", "current time", "The time hello")

Но как изменить только тему , а не содержание, не вложения (если есть), не получателя?

1 Ответ

0 голосов
/ 21 февраля 2019
  • Вы хотите обновить только тему черновика.
  • Вы не хотите изменять тело текста, тело HTML и файлы вложений.
  • Вы хотите добиться этогоиспользуя Google Apps Script.

Если мое понимание верно, как насчет этого примера скрипта?Я думаю, что есть несколько ответов.Поэтому, пожалуйста, подумайте об этом как об одном из них.

В этом примере скрипта я использовал Class GmailApp и Gmail API.Процесс выполнения сценария выглядит следующим образом.

  1. Извлечение необработанных данных черновика в виде текста с использованием класса GmailApp.
  2. Замена субъекта необработанных данных.
  3. Преобразованиетекст в base64 с использованием Utilities.base64EncodeWebSafe().
  4. Обновление черновика с использованием новых необработанных данных с помощью Gmail API.

С помощью этого потока можно обновлять только тему.

Перед запуском этого сценария, пожалуйста, включите Gmail API в Advanced Services и консоли API.

Включите Gmail API v1 в Advanced Google Services

  • В сценарииредактор
    • Ресурсы -> Расширенные службы Google
    • Включить Gmail API v1

Включить Gmail API на консоли API

  • В редакторе сценариев
    • Ресурсы -> Проект Cloud Platform
    • Просмотр консоли API
    • На начальном этапе нажмите "Исследовать и включить API".
    • С левой стороны щелкните Библиотека.
    • В поле Поиск API и служб введите «Gmail».И нажмите Gmail API.
    • Нажмите кнопку Включить.
    • Если API уже включен, не выключайте его.

Пример сценария:

function updateDraftmail() {
  var newSubject = "new subject"; // Please set new subject.
  var userId = "me"; // Please set userId.
  var draft = GmailApp.getDrafts()[0]; // Retrieve a draft.

  var raw = draft.getMessage().getRawContent();
  var newRaw = raw.replace(/Subject: \w.+/, "Subject: " + newSubject);
  var newRawB64 = Utilities.base64EncodeWebSafe(newRaw, Utilities.Charset.UTF_8);
  Gmail.Users.Drafts.update({message: {raw: newRawB64}}, userId, draft.getId());
}

Ссылки:

Если я неправильно понял ваш вопрос, а это не то, что вы хотите, я прошу прощения.

...