> For the complete documentation index, see [llms.txt](https://docs.iexexchanger.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.iexexchanger.com/learn/email/06-email-resend.md).

# Resend через API

## Что вы получите

iEXExchanger будет отправлять транзакционные письма через встроенное подключение **Resend**, без SMTP-хоста, порта и логина. Ключ будет ограничен отправкой и привязан к подтверждённому домену.

{% hint style="info" %}
В системе есть отдельный драйвер **Resend**. Для обычного сценария выбирайте его, а не вводите Resend SMTP в подключение SMTP.
{% endhint %}

## Подготовьте домен в Resend

{% stepper %}
{% step %}

### Выберите домен отправки

Для совместной работы с корпоративной почтой удобно использовать поддомен, например `notify.your-domain.example`. Resend также [рекомендует отдельный поддомен](https://resend.com/docs/dashboard/domains/introduction).
{% endstep %}

{% step %}

### Добавьте домен

В Resend откройте **Domains**, добавьте выбранное имя и получите индивидуальные DNS-записи.
{% endstep %}

{% step %}

### Опубликуйте записи

Добавьте SPF и DKIM точно в показанном виде. Если Resend показывает отдельную служебную MX/return-path запись, также скопируйте её без изменения. Не заменяйте ею MX основной корпоративной почты.
{% endstep %}

{% step %}

### Дождитесь статуса Verified

Обновляйте проверку после распространения DNS. Если статус не меняется, используйте [официальную диагностику домена](https://resend.com/docs/knowledge-base/what-if-my-domain-is-not-verifying).
{% endstep %}

{% step %}

### Настройте DMARC

Добавьте DMARC после проверки SPF/DKIM и постепенно усиливайте политику. См. [руководство Resend по DMARC](https://resend.com/docs/dashboard/domains/dmarc).
{% endstep %}
{% endstepper %}

## Создайте API-ключ

1. Откройте **API Keys — Create API Key**.
2. Назовите ключ по системе и окружению, например `iEXExchanger production`.
3. Выберите минимальное право **Sending access**.
4. Если интерфейс позволяет, ограничьте ключ нужным доменом.
5. Скопируйте значение один раз в менеджер секретов.
6. Не добавляйте ключ в Git, документацию и сообщения.

Официальные правила: [создание API-ключа](https://resend.com/docs/api-reference/api-keys/create-api-key) и [безопасное хранение ключей](https://resend.com/docs/knowledge-base/how-to-handle-api-keys).

## Создайте подключение Resend

Откройте **«Настройки» — «Общие настройки» — «Уведомления» — «Подключения»**, нажмите **«Добавить»** и выберите **Resend**.

| Поле iEXExchanger  | Что указать                                |
| ------------------ | ------------------------------------------ |
| Название           | Понятное внутреннее имя подключения        |
| API-ключ           | Только что созданный ключ Sending access   |
| E-mail отправителя | Адрес подтверждённого домена или поддомена |
| Имя отправителя    | Публичное название обменного пункта        |

После подтверждения домена Resend позволяет использовать адрес этого домена без создания отдельной записи sender. Желательно выбрать адрес, который реально принимает ответы; см. [правила адреса отправителя Resend](https://resend.com/docs/knowledge-base/how-do-I-create-an-email-address-or-sender-in-resend).

## Проверьте по двум журналам

{% stepper %}
{% step %}

### Проверьте подключение

Укажите контрольный E-mail в форме подключения и нажмите **«Отправить тест»**.
{% endstep %}

{% step %}

### Выполните «Проверить»

Сверьте состояние строки в iEXExchanger.
{% endstep %}

{% step %}

### Откройте Resend Logs

Найдите отправку по времени и получателю. Отличите принятую, доставленную, отложенную и отклонённую отправку.
{% endstep %}

{% step %}

### Проверьте конечный ящик

Откройте входящие и спам. Состояние в Resend не заменяет проверку отображения письма у клиента.
{% endstep %}

{% step %}

### Вызовите реальное событие

Создайте новую контрольную заявку и проверьте выбранную аудиторию и отсутствие дубля через SMTP.
{% endstep %}
{% endstepper %}

## Типовые ошибки Resend

| Симптом                        | Что проверить                                                                          |
| ------------------------------ | -------------------------------------------------------------------------------------- |
| Domain not verified            | Точное имя DNS, отсутствие лишнего суффикса у DNS-хостинга, TTL и конфликтующие записи |
| Unauthorized / invalid API key | Ключ скопирован полностью, не отозван и имеет Sending access                           |
| Sender domain is not verified  | From использует именно подтверждённый домен или поддомен                               |
| Принято, но письмо не пришло   | Журнал, возврат или жалобу, спам, SPF/DKIM/DMARC и репутацию                           |
| Два одинаковых письма          | То же событие включено и в Resend, и в SMTP                                            |

## Ротация ключа без простоя

1. Создайте новый ключ с теми же минимальными правами.
2. Сохраните его в подключении iEXExchanger.
3. Отправьте проверочное письмо и вызовите реальное событие.
4. Только после подтверждения отзовите старый ключ в Resend.
5. Проверьте, что команда удалила старое значение из менеджера секретов.

## Этап завершён, если

* [ ] домен Resend имеет статус Verified;
* [ ] SPF и DKIM опубликованы без конфликта;
* [ ] ключ ограничен отправкой;
* [ ] используется нативное подключение Resend;
* [ ] From относится к подтверждённому домену;
* [ ] отправка видна в Resend Logs и в конечном ящике;
* [ ] реальное событие проверено;
* [ ] SMTP не создаёт непреднамеренный дубль.

Другие сервисы подключайте по [универсальной схеме SMTP](/learn/email/07-email-providers.md).


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.iexexchanger.com/learn/email/06-email-resend.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
