Перейти к содержимому

getEmail

Обновлено 17 октября 2026

Возвращает письмо целиком: конверт, новый текст без цитаты и подписи, полный текст и html как есть, все заголовки, вложения и само письмо ссылками. Ещё — вид письма: человек, автоответ, рассылка, отчёт сервера или заявка с формы сайта. Чтение не помечает письмо прочитанным.

Запрос POST /waInstance{idInstance}/getEmail/{apiTokenInstance}
Тело JSON
Каналы почта

Параметры

Письмо — одним из способов, подробно — в статье Почта через API:

Параметр Тип Обязательный Описание
folder + uid string, integer одно из трёх папка и номер письма в ней
idMessage string одно из трёх id письма. С chatId письмо найдётся и по журналу канала
messageId string одно из трёх заголовок Message-ID
chatId string нет адрес собеседника — вместе с idMessage

Пример запроса

Письмо из уведомления — по idMessage и chatId:

curl

curl -X POST "$GRATIO_URL/waInstance$GRATIO_ID/getEmail/$GRATIO_TOKEN" \
  -H 'Content-Type: application/json' \
  -d '{
    "idMessage": "7877cd439c05bc16617b",
    "chatId": "maria@client.ru"
  }'

Python

import os
import requests

BASE = f"{os.environ['GRATIO_URL']}/waInstance{os.environ['GRATIO_ID']}"
TOKEN = os.environ["GRATIO_TOKEN"]

url = f"{BASE}/getEmail/{TOKEN}"
payload = {"idMessage": "7877cd439c05bc16617b", "chatId": "maria@client.ru"}
response = requests.post(url, json=payload, timeout=60)
print(response.status_code, response.json())

Node.js

const { GRATIO_URL, GRATIO_ID, GRATIO_TOKEN } = process.env;
const base = `${GRATIO_URL}/waInstance${GRATIO_ID}`;

const url = `${base}/getEmail/${GRATIO_TOKEN}`;
const payload = { idMessage: "7877cd439c05bc16617b", chatId: "maria@client.ru" };
const response = await fetch(url, {
  method: "POST",
  headers: { "Content-Type": "application/json" },
  body: JSON.stringify(payload),
});
console.log(response.status, await response.json());

PHP

<?php
$base = getenv('GRATIO_URL') . '/waInstance' . getenv('GRATIO_ID');
$url = $base . '/getEmail/' . getenv('GRATIO_TOKEN');
$payload = ['idMessage' => '7877cd439c05bc16617b', 'chatId' => 'maria@client.ru'];

$ch = curl_init($url);
curl_setopt_array($ch, [
    CURLOPT_POST => true,
    CURLOPT_HTTPHEADER => ['Content-Type: application/json'],
    CURLOPT_POSTFIELDS => json_encode($payload, JSON_UNESCAPED_UNICODE),
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_TIMEOUT => 60,
]);
$response = json_decode(curl_exec($ch), true);
echo curl_getinfo($ch, CURLINFO_HTTP_CODE), PHP_EOL;
print_r($response);

Пример ответа

Ответ 200 OK — ответ Марии с цитатой, подписью и анкетой во вложении:

{
  "idMessage": "7877cd439c05bc16617b",
  "folder": "INBOX",
  "uid": 1540,
  "uidValidity": 1700000000,
  "chatId": "maria@client.ru",
  "messageId": "CAF1xQm9p4r@mail.gmail.com",
  "threadId": "c62b698304229a98aad3",
  "inReplyTo": "gr.ztme4rgc2femufilbicvmeimbh@school.ru",
  "references": ["CAF1xQm7v2k@mail.gmail.com", "gr.ztme4rgc2femufilbicvmeimbh@school.ru"],
  "timestamp": 1791828458,
  "internalDate": 1791828460,
  "from": {"address": "maria@client.ru", "name": "Мария"},
  "to": [{"address": "info@school.ru", "name": ""}],
  "cc": [],
  "replyTo": [],
  "subject": "Re: Запись на пробное",
  "flags": [],
  "seen": false,
  "flagged": false,
  "answered": false,
  "draft": false,
  "size": 52817,
  "hasAttachments": true,
  "text": "Да, в субботу удобно. Анкету приложила.",
  "quote": "пн, 12 окт. 2026 г. в 20:07, Школа робототехники <info@school.ru>:\n> Мария, есть место в субботу на 11:00. Подойдёт?",
  "signature": "Мария Иванова\n+7 999 123-45-67",
  "forwarded": false,
  "fullText": "Да, в субботу удобно. Анкету приложила.\n\n-- \nМария Иванова\n+7 999 123-45-67\n\nпн, 12 окт. 2026 г. в 20:07, Школа робототехники <info@school.ru>:\n> Мария, есть место в субботу на 11:00. Подойдёт?",
  "html": "<div dir=\"ltr\">Да, в субботу удобно. Анкету приложила.<br>-- <br>Мария Иванова<br>+7 999 123-45-67</div><div class=\"gmail_quote\">пн, 12 окт. 2026 г. в 20:07, Школа робототехники &lt;info@school.ru&gt;:<blockquote>Мария, есть место в субботу на 11:00. Подойдёт?</blockquote></div>",
  "headers": [
    {"name": "MIME-Version", "value": "1.0"},
    {"name": "From", "value": "Мария <maria@client.ru>"},
    {"name": "Date", "value": "Mon, 12 Oct 2026 21:07:38 +0300"},
    {"name": "Message-ID", "value": "<CAF1xQm9p4r@mail.gmail.com>"},
    {"name": "In-Reply-To", "value": "<gr.ztme4rgc2femufilbicvmeimbh@school.ru>"},
    {"name": "References", "value": "<CAF1xQm7v2k@mail.gmail.com> <gr.ztme4rgc2femufilbicvmeimbh@school.ru>"},
    {"name": "Subject", "value": "Re: Запись на пробное"},
    {"name": "To", "value": "info@school.ru"},
    {"name": "Content-Type", "value": "multipart/mixed; boundary=\"000000000000a1b2c3\""}
  ],
  "attachments": [
    {"index": 0, "fileName": "Анкета.pdf", "mimeType": "application/pdf", "size": 48000, "contentId": null, "inline": false,
     "downloadUrl": "https://api.gratio.net/media/7100000001/maria@client.ru/7877cd439c05bc16617b/0/5c1e…"}
  ],
  "rawUrl": "https://api.gratio.net/media/7100000001/maria@client.ru/7877cd439c05bc16617b/999/a7d0…",
  "kind": "personal",
  "form": null,
  "report": null,
  "truncated": false
}

Поля ответа

Сначала — поля конверта, см. Почта через API. Затем:

Поле Тип Описание
text string новый текст письма — без цитаты и подписи
quote string цитата прошлых писем; "" — цитаты нет
signature string подпись: после «-- », «С уважением, …», «Отправлено с iPhone»
forwarded boolean письмо пересланное: такое не режется, text — целиком
fullText string весь текст письма как есть; без text/plain — текст из html
html string html-версия как есть; null — её нет
headers array все заголовки по порядку: {"name", "value"}
attachments array вложения — ниже
rawUrl string письмо целиком, файл .eml
kind string вид письма — ниже
form object разобранная заявка с формы сайта; null — письмо не заявка
report object у отчёта сервера о недоставке или прочтении — ниже; иначе null
truncated boolean true — письмо получено не целиком

Цитата отрезается по разметке почтовых программ — Gmail, Яндекс, Mail, Outlook, Apple Mail — и по строкам вида «12.10.2026, 20:07, Школа info@school.ru:». Пересланное письмо и ответ вразбивку внутри цитаты не режутся. fullText и html доступны всегда.

Вложение

Поле Тип Описание
index integer номер вложения в письме
fileName string имя файла
mimeType string тип файла
size integer размер, байт
contentId string id картинки в тексте письма (cid:); null — у обычного вложения
inline boolean true — картинка внутри текста письма
downloadUrl string ссылка на файл

Вид письма — kind

kind Что это
personal письмо человека
form заявка с формы сайта — письмо совпало с правилом emailForms
auto_reply автоответ: «я в отпуске», «ваше письмо получено»
bulk рассылка: заголовки List-Unsubscribe, Precedence: bulk
service уведомление сервиса: noreply@…, Auto-Submitted
bounce отчёт о недоставке
read_receipt отчёт о прочтении

Вид только помечает письмо и ничего не отсеивает. Ответ на ваше письмо — всегда personal, даже с заголовками рассылки; автоответ остаётся автоответом.

Заявка — form

Есть у писем вида form:

{"rule": "Заявка с сайта", "fields": {"name": "Мария Иванова", "phone": "8 (999) 123-45-67", "child_age": "9 лет"},
 "missing": [], "complete": true, "phone": "+79991234567", "email": null, "name": "Мария Иванова"}

Поля заявки и правила — в статье Заявки с форм сайта.

Отчёт сервера — report

Есть у писем вида bounce и read_receipt, если отчёт в стандартном формате. Недоставка вашего письма:

{"kind": "delivery", "originalMessageId": "gr.mcduelocvo27nud5klrpglrn3m@school.ru", "recipients": ["papa@client.ru"],
 "action": "failed", "status": "5.1.1", "diagnostic": "550 5.1.1 Mailbox not found"}
Поле Тип Описание
kind string delivery — о доставке, read — о прочтении
originalMessageId string Message-ID письма, о котором отчёт
recipients array о каких адресах
action string failed, delayed, delivered; у отчёта о прочтении — displayed
status string код состояния: 5.1.1
diagnostic string ответ сервера получателя

Отчёт о вашем письме приходит и уведомлением outgoingMessageStatus: failed с причиной или read.

Ошибки

Код code Когда Что делать
400 validation не указано письмо: нужно idMessage, или folder и uid, или messageId добавить поля
400 not_found письма нет указать folder и uid из getMessages
400 folder_not_found нет папки folder проверить getFolders
400 not_authorized ящик не подключён подключить ящик: connectMailbox
501 not_supported канал — не почта вызвать у канала «Почта»

Общие правила — в статье Ответы и ошибки.

Что дальше

Была ли статья полезна?