Временная почта
на Node.js.
Создайте одноразовый ящик, опрашивайте его и получайте код подтверждения — прямо из вашего набора тестов.
const res = await fetch("https://evilmail.pro/api/temp-email", {
method: "POST",
headers: {
"Content-Type": "application/json",
"X-API-Key": process.env.EVILMAIL_KEY,
},
body: JSON.stringify({ ttlMinutes: 30 }),
});
const { data } = await res.json();
console.log(data.email); // [email protected]Временная почта в Node.js — это чистый способ тестировать email-сценарии без настоящего ящика или общего аккаунта Gmail. С API EvilMail вы создаёте одноразовый адрес, запускаете сценарий регистрации или сброса пароля, опрашиваете входящие по HTTP и считываете одноразовый код из письма — от начала до конца, за секунды, без необходимости что-либо убирать. Каждый вызов — это обычный `fetch` с заголовком `X-API-Key`, поэтому он легко встраивается в Jest, Playwright или любой CI-раннер без единой зависимости.
Зачем использовать временную почту на Node.js
Сквозные тесты регистрации
Поднимайте свежий ящик под каждый тест, запускайте реальный сценарий регистрации и проверяйте письмо с подтверждением — без моков и устаревших аккаунтов.
CI/CD без настоящего почтового ящика
Каждый вызов — это HTTP-запрос без состояния с API-ключом, поэтому он выполняется headless в GitHub Actions, GitLab CI или Jenkins без браузера и общего ящика.
Извлечение OTP и magic-ссылок
Считайте тело письма и вытяните шестизначный код или ссылку подтверждения однострочным regex, а затем продолжайте сценарий программно.
Изоляция, безопасная для параллельного запуска
Каждый адрес независим, поэтому сотни тестов могут выполняться параллельно, не пересекаясь на одном ящике.
Процесс — временная почта Node.js за 3 вызова
Создайте одноразовый ящик
const create = await fetch("https://evilmail.pro/api/temp-email", {
method: "POST",
headers: {
"Content-Type": "application/json",
"X-API-Key": process.env.EVILMAIL_KEY,
},
body: JSON.stringify({ ttlMinutes: 30 }),
});
const { data } = await create.json();
const { email, sessionToken } = data;
// hand `email` to your signup flow, keep `sessionToken` to read the inboxОпрашивайте, пока не придёт письмо
async function waitForMail(token, tries = 20) {
for (let i = 0; i < tries; i++) {
const r = await fetch(`https://evilmail.pro/api/temp-email/${token}`);
const { data } = await r.json();
if (data.messages?.length) return data.messages;
await new Promise((s) => setTimeout(s, 3000)); // wait 3s, retry
}
throw new Error("No mail arrived in time");
}
const messages = await waitForMail(sessionToken);Считайте письмо и извлеките код
const { uid } = messages[0];
const r = await fetch(
`https://evilmail.pro/api/message/${uid}?token=${sessionToken}`,
{ headers: { "X-API-Key": process.env.EVILMAIL_KEY } },
);
const { data: mail } = await r.json();
const otp = (mail.text || "").match(/\b(\d{6})\b/)?.[1];
console.log("Verification code:", otp);Временная почта Node.js — FAQ
Q1Как получить адрес временной почты в Node.js?−
Отправьте POST на https://evilmail.pro/api/temp-email с заголовком X-API-Key. В ответе будет настоящий рабочий адрес и sessionToken, который вы используете для чтения входящих. SDK не нужен — это обычный fetch.
Q2Можно ли использовать это для автоматизированного тестирования (Jest, Playwright, Cypress)?+
Да — это основной сценарий использования. Создайте ящик на шаге beforeAll/setup, запустите сценарий, опросите входящие, извлеките код и выполните проверку. Поскольку каждый вызов — это HTTP-запрос без состояния, он работает в любом раннере и в CI.
Q3Как извлечь одноразовый код из письма?+
Считайте полное письмо через GET /api/message/{uid}?token=…, затем примените regex к mail.text или mail.html. Шаблон вроде /\b(\d{6})\b/ вытянет шестизначный OTP; скорректируйте его под magic-ссылки или более длинные коды.
Q4Нужен ли API-ключ и есть ли лимит запросов?+
Вам нужен API-ключ из панели управления EvilMail. У бесплатного и платных тарифов разные лимиты запросов; платные планы также открывают доступ к собственным доменам и постоянным ящикам для более долгоживущих тестовых аккаунтов.
Q5Сколько живёт ящик?+
Задайте ttlMinutes при его создании (до 24 часов на бесплатном сценарии). Для тестовых аккаунтов, которые нужно сохранить, используйте собственный домен на платном плане, чтобы адрес никогда не истекал.
Временная почта на других языках
Один API-ключ. Одноразовые ящики в масштабе.
Создавайте неограниченное число одноразовых адресов, опрашивайте их по HTTP и получайте коды подтверждения прямо в тесты и CI. Бесплатно на старте; собственные домены и повышенные лимиты на платных тарифах.

