Скрипт Google Apps: как установить заголовки с помощью GmailApp.sendMail() или GmailApp.createDraft()

Я пытаюсь написать функцию, которая отправляет напоминания всем, кто не ответил в течение нескольких дней.

Проблема в следующем: createDraftReply() и reply() установит получателя моим собственным почтовый адрес, потому что документы говорят:

Ответьте отправителю последнего сообщения в этой теме, используя адрес replyTo.

Последнее сообщение, на которое следует ответить, конечно, от меня. Кнопка ответа в веб-интерфейсе gmail устанавливает получателя «правильным». В этом случае получателю из последней почты. Я не видел способа сделать это с помощью предоставленных методов Apps Script.

Следующей идеей было создать черновик, а затем update() указав "правильного" получателя. К сожалению, это нарушает ссылку на исходное сообщение. После анализа того, что идет не так, я обнаружил, что после обновления получателя черновиков почтовые заголовки References: и In-Reply-To: исчезают.

Как я могу установить эти заголовки для достижения моей цели?


person Buntel    schedule 04.11.2019    source источник
comment
Почему вы не используете answerAll() ? developers.google.com/apps-script/reference /gmail/   -  person St3ph    schedule 04.11.2019
comment
@St3ph, возможно, это обходной путь, но я не хочу отправлять себе напоминание.   -  person Buntel    schedule 04.11.2019
comment
Откуда вы знаете, что они не ответили?   -  person Cooper    schedule 04.11.2019
comment
Я проверяю отправителя из последнего сообщения. Если это я. Они еще не ответили.   -  person Buntel    schedule 04.11.2019
comment
@tehhowch да, это выглядит великолепно. Благодарность!   -  person Buntel    schedule 05.11.2019


Ответы (1)


Для этого вам необходимо активировать Расширенный сервис Gmail и использовать Gmail API. в вашем сценарии. Вам необходимо создать ресурс сообщений, в котором вы можете указать threadId, которому он будет принадлежать, и получателей, которым его нужно отправить, а затем отправить() сообщение.

Как объяснено в ответ на этот вопрос, update() не работает, поскольку при обновлении черновика (в данном случае при изменении адреса получателя) информация о существующей цепочке исчезает, и вам приходится перестраивать сообщение.

Я не буду проходить все эти шаги, но если у вас возникнут проблемы в процессе написания этого, я бы посоветовал вам проверить ответ, на который я предоставил ссылку.

person Iamblichus    schedule 04.11.2019
comment
@lamblichus это неправда. Посмотрите, что говорится в документации об этой опции: адрес электронной почты для использования в качестве адреса для ответа по умолчанию (по умолчанию: адрес электронной почты пользователя). - person Buntel; 04.11.2019
comment
Так? По умолчанию используется адрес электронной почты пользователя, но вы можете указать другой с помощью этого параметра. - person Iamblichus; 04.11.2019
comment
адрес электронной почты для использования в качестве адреса для ответа по умолчанию Это не то, что мне нужно! Я хочу установить получателя фактического черновика/сообщения, которое будет отправлено. Не адрес для ответа. - person Buntel; 04.11.2019
comment
Ты прав. Я обновил свой ответ соответственно. - person Iamblichus; 05.11.2019
comment
Хорошо, это звучит многообещающе. Благодарность! - person Buntel; 05.11.2019