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

Email

Отправляйте транзакционные письма из своего приложения. Управляйте удостоверениями отправителя и отслеживайте доставку через Dashboard > Emails или SDK.

Каждое приложение Proyecta умеет отправлять транзакционные письма. Подтвердите удостоверение отправителя — и отправляйте прямо из кода приложения: отдельный аккаунт у стороннего почтового провайдера не нужен.

Откройте Dashboard > Emails в Builder. Вкладка содержит два подраздела:

ВкладкаНазначение
IdentitiesДобавление и подтверждение адресов электронной почты или доменов отправителя
SentПросмотр отправленных писем со статусом доставки (sent, delivered, bounced и т. д.)

Вы можете добавить новое удостоверение отправителя и просмотреть историю доставки — всё это без написания кода.

  1. Создайте и подтвердите удостоверение отправителя (адрес электронной почты или домен)
  2. Вызовите proyecta.email.send(), указав подтверждённый адрес в поле from

Самый простой вариант — подтвердить отдельный адрес электронной почты.

import Proyecta from '@proyecta-ai/sdk';
const proyecta = new Proyecta({ apiKey: process.env.PROYECTA_API_KEY });
const identity = await proyecta.email.identities.create({
type: 'email',
value: 'hello@myapp.com',
});
// identity.status === 'verified' immediately upon creation

Чтобы повторно инициировать проверку подтверждения:

await proyecta.email.identities.verify({ identityId: identity.id });

Для продакшн-приложений рекомендуется подтвердить весь домен — тогда вы сможете отправлять письма с любого адреса на нём (hello@, support@, noreply@ и т. д.).

const identity = await proyecta.email.identities.create({
type: 'domain',
value: 'myapp.com',
});
// identity.status === 'verified' immediately upon creation

Подтверждение домена через DNS (генерация записей SPF/DKIM и повторная проверка) запланировано, но пока не реализовано.

После подтверждения удостоверения отправьте письмо так:

await proyecta.email.send({
from: 'Acme <hello@myapp.com>',
to: 'customer@example.com',
subject: 'Your receipt from Acme',
html: '<p>Thanks for your order — here are the details.</p>',
text: 'Thanks for your order — here are the details.',
});

send возвращает полный объект отправленного письма (включая id, last_event и поля сообщения), который впоследствии можно использовать для проверки статуса доставки.

Получатели. Поля to, cc и bcc принимают как одиночный адрес, так и массив адресов.

Содержимое. Укажите html, text или оба варианта. Для лучшей доставляемости рекомендуется включать текстовую версию письма.

Reply-to, пользовательские заголовки, теги метаданных. Поле reply_to поддерживается (используется первый адрес). Пользовательские заголовки и теги метаданных принимаются API, однако пока не передаются провайдеру доставки.

Получите список отправленных писем (с пагинацией) с последним событием доставки:

const { data: emails } = await proyecta.email.list({ limit: 20 });
for (const email of emails) {
console.log(email.subject, '', email.last_event);
// last_event: 'sent' | 'delivered' | 'opened' | 'clicked' | 'bounced' | 'complained'
}

Получите отдельное письмо с полным содержимым HTML/текста:

const full = await proyecta.email.get('email_abc123');
console.log(full.html, full.text, full.last_event);

Вам не нужно писать это вручную:

  • "Verify hello@myapp.com as a sending identity."
  • "Send a welcome email with Proyecta Email whenever a new user signs up. Use a nice HTML template."
  • "After a successful checkout, send the customer a receipt using proyecta.email.send."
  • "Show me the last 20 emails we've sent and whether they bounced."
  • Адрес в поле from должен быть подтверждённым удостоверением. Попытка отправить письмо с неподтверждённого адреса вернёт ошибку.
  • Действуют месячные лимиты в зависимости от вашего тарифного плана Proyecta.
  • Редактор шаблонов — визуальное создание транзакционных шаблонов прямо в Builder
  • Endpoint для массовой/пакетной отправки писем