Черновики представляют собой неотправленные сообщения с системной меткой DRAFT
. Сообщение, содержащееся в черновике, нельзя редактировать после создания, но его можно заменить. В этом смысле ресурс «черновик» — это просто контейнер, предоставляющий стабильный идентификатор, поскольку базовые идентификаторы сообщений меняются при каждой замене сообщения.
Ресурсы сообщений внутри черновика ведут себя аналогично другим сообщениям, за исключением следующих отличий:
- Черновики сообщений не могут иметь никаких других меток, кроме системной метки
DRAFT
. - При отправке черновик автоматически удаляется, и создаётся новое сообщение с обновлённым идентификатором и системной меткой
SENT
. Это сообщение возвращается в ответеdrafts.send
.
Содержание
Создание черновиков сообщений
Ваше приложение может создавать черновики с помощью метода drafts.create . Общий процесс выглядит следующим образом:
- Создайте сообщение MIME, соответствующее RFC 2822 .
- Преобразуйте сообщение в строку, закодированную по стандарту base64url.
- Создайте черновик , установив значение поля
drafts.message.raw
равным закодированной строке.
Следующие примеры кода демонстрируют этот процесс.
Ява
Питон
Обновление черновиков
Аналогично созданию черновика, для его обновления необходимо предоставить ресурс Draft
в теле запроса, указав в поле draft.message.raw
строку в кодировке base64url, содержащую MIME-сообщение. Поскольку сообщения не могут быть обновлены, сообщение, содержащееся в черновике, удаляется и заменяется новым MIME-сообщением, предоставленным в запросе на обновление.
Текущее сообщение MIME, содержащееся в черновике, можно получить, вызвав drafts.get
с параметром format=raw
.
Более подробную информацию см. в drafts.update
.
Отправка черновиков
При отправке черновика вы можете выбрать отправку сообщения «как есть» или в обновлённом виде. Если вы обновляете содержимое черновика новым сообщением, укажите ресурс Draft
в теле запроса drafts.send
; укажите draft.id
отправляемого черновика; и укажите в поле draft.message.raw
новое MIME-сообщение, закодированное как строка в формате base64url. Подробнее см. в drafts.send
.