Sendmail можно настроить как смарт-хост, который пересылает почту через SMTP-сервер Haskimail. Код приложения при этом менять не нужно, а Sendmail сам ставит письма в очередь: если связь с Haskimail временно пропадёт, письма отправятся позже.

Для подключения понадобятся SMTP-реквизиты канала — логин и пароль. Они находятся в настройках канала отправки в личном кабинете. По реквизитам Haskimail определяет, через какой канал отправлять письма. Подробнее — в статье «[Какие SMTP-реквизиты и API-ключи нужно использовать?](https://help.haskimail.ru/hc/haskimail/articles/1768995379-kakie-smtp-rekvizity-api-klyuchi-nuzhno-ispolzovat)».

Ниже — настройка для порта 587 с шифрованием STARTTLS. Команды выполняйте от имени root.

## Установка Sendmail

Для авторизации нужны модули SASL, поэтому установите их вместе с Sendmail.

* Debian, Ubuntu: `apt-get install sendmail sasl2-bin`
* CentOS, RHEL: `yum install sendmail sendmail-cf cyrus-sasl-plain`

## Реквизиты для авторизации

Создайте файл `/etc/mail/authinfo` со строкой:

```
AuthInfo:smtp.haskimail.ru "U:ЛОГИН" "P:ПАРОЛЬ" "M:PLAIN LOGIN"
```

Вместо `ЛОГИН` и `ПАРОЛЬ` подставьте SMTP-реквизиты канала. Затем закройте файл от посторонних и соберите из него таблицу, которую читает Sendmail:

```bash
chmod 600 /etc/mail/authinfo
makemap hash /etc/mail/authinfo < /etc/mail/authinfo
```

## Настройка смарт-хоста

Добавьте в файл `/etc/mail/sendmail.mc` перед строками `MAILER(...)`:

```
define(`SMART_HOST', `[smtp.haskimail.ru]')dnl
define(`RELAY_MAILER_ARGS', `TCP $h 587')dnl
define(`ESMTP_MAILER_ARGS', `TCP $h 587')dnl
define(`confAUTH_MECHANISMS', `PLAIN LOGIN')dnl
FEATURE(`authinfo', `hash -o /etc/mail/authinfo.db')dnl
```

Если строка `SMART_HOST` в файле уже есть, замените её.

Соберите конфигурацию:

```bash
cd /etc/mail && m4 sendmail.mc > sendmail.cf
```

## Проверка

Перезапустите Sendmail:

```bash
systemctl restart sendmail
```

На старых системах без systemd: `service sendmail restart`.

Отправьте тестовое письмо на свой адрес:

```bash
echo "Тестовое письмо" | mail -s "Проверка Sendmail" ваш@адрес.ru
```

Письмо должно появиться в логе активности канала в личном кабинете Haskimail. Если его там нет, ищите ошибку в журнале почты: `/var/log/maillog` в CentOS и RHEL или `/var/log/mail.log` в Debian и Ubuntu.

Если провайдер блокирует порт 587, укажите 2525 в строках `RELAY_MAILER_ARGS` и `ESMTP_MAILER_ARGS`. Подробнее о портах — в статье «[Что делать, если порт 25 заблокирован (AWS и другие облака)](https://help.haskimail.ru/hc/haskimail/articles/1768995502-reshenie-problemy-s-ogranicheniem-porta-25-v-aws)» и в [документации по SMTP](https://haskimail.ru/developer/user-guide/send-email-with-smtp). Настройка для Postfix — в статье «[Как настроить Postfix для отправки через Haskimail](https://help.haskimail.ru/hc/haskimail/articles/1768995297-kak-nastroit-postfix-dlya-otpravki-cherez-haskimail)».