Возвращает, какой ящик подключён к каналу и как: адрес, способ входа, серверы IMAP и SMTP, возможности сервера, квоту, папки по ролям и сколько писем ушло за сутки. Пароля и ключей в ответе нет.
| Запрос | POST /waInstance{idInstance}/getMailboxInfo/{apiTokenInstance} |
| Тело | JSON, пустой объект {} |
| Каналы | почта |
Пример запроса
Сведения о ящике канала:
curl
curl -X POST "$GRATIO_URL/waInstance$GRATIO_ID/getMailboxInfo/$GRATIO_TOKEN" \
-H 'Content-Type: application/json' \
-d '{}'
Python
import os
import requests
BASE = f"{os.environ['GRATIO_URL']}/waInstance{os.environ['GRATIO_ID']}"
TOKEN = os.environ["GRATIO_TOKEN"]
url = f"{BASE}/getMailboxInfo/{TOKEN}"
payload = {}
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}/getMailboxInfo/${GRATIO_TOKEN}`;
const payload = {};
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 . '/getMailboxInfo/' . getenv('GRATIO_TOKEN');
$payload = [];
$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:
{
"email": "info@school.ru",
"login": "info@school.ru",
"auth": "password",
"oauthProvider": null,
"provider": "beget",
"imap": {"host": "imap.beget.com", "port": 993, "security": "ssl"},
"smtp": {"host": "smtp.beget.com", "port": 465, "security": "ssl"},
"since": 1791823658,
"serverCapabilities": ["ENABLE", "ID", "IDLE", "IMAP4REV1", "LITERAL+", "MOVE", "NAMESPACE", "QUOTA", "SPECIAL-USE", "UIDPLUS"],
"quota": {"usedKb": 120400, "limitKb": 10485760},
"folders": {"inbox": "INBOX", "sent": "Sent", "spam": "Spam", "drafts": "Drafts", "trash": "Trash", "archive": "Archive"},
"sentToday": 12,
"dailyLimit": 300
}
Поля ответа
| Поле | Тип | Описание |
|---|---|---|
email |
string | адрес ящика |
login |
string | логин, с которым Gratio входит |
auth |
string | password — по паролю, oauth — через сервис |
oauthProvider |
string | сервис входа: google, microsoft, yandex, mailru; null — вход по паролю |
provider |
string | сервис почты, если Gratio его узнал: yandex, gmail, beget…; null — серверы заданы вручную |
imap, smtp |
object | серверы: host, port, security — ssl или starttls |
since |
integer | с какого времени письма приходят уведомлениями, время Unix |
serverCapabilities |
array | что умеет сервер IMAP — ниже |
quota |
object | занято и доступно в КБ; null — сервер квоту не сообщает |
folders |
object | роль → имя папки на сервере. Ролей, которых в ящике нет, в объекте нет |
sentToday |
integer | писем отправлено за сутки по UTC |
dailyLimit |
integer | предел писем в сутки |
Что умеет сервер
| Возможность | Что даёт |
|---|---|
IDLE |
новые письма приходят уведомлением сразу. Без неё Gratio проверяет ящик раз в минуту |
MOVE |
перенос одной командой. Без неё — копия и удаление в старой папке |
UIDPLUS |
новые uid после переноса и копирования, удаление насовсем только указанных писем |
QUOTA |
квота в quota |
SPECIAL-USE |
роли папок по флагам сервера, а не по именам |
Без UIDPLUS удаление насовсем стирает в папке и другие письма, которые уже помечены \Deleted в почтовой программе. Это касается deleteMessages и переноса без MOVE.
Ошибки
| Код | code |
Когда | Что делать |
|---|---|---|---|
400 |
not_authorized |
ящик не подключён или почта перестала пускать | подключить ящик: connectMailbox |
501 |
not_supported |
канал — не почта | вызвать у канала «Почта» |
503 |
unavailable |
нет связи с сервером почты | повторить позже |
Общие правила — в статье Ответы и ошибки.
Что дальше
- getFolders — все папки ящика.
- Почта через API — пределы отправки и как указывать папки.
- disconnectMailbox — отключить ящик.
