Настройка отправки писем через SendGrid с помощью SMTP
Перед нами стояла задача обойти блокировку массовой рассылки писем с сайта. Из-за использования локального почтового сервера многие письма попадали клиентам в спам. Для этого необходимо было найти и интегрировать сервис-посредник для отправки писем.
Выбор пал на SendGrid (https://sendgrid.com/) - подходящие условия, удобство интеграции.
Исходные данные:
- сайт на 1С-Битрикс
- сервер с подключенным пакетом msmtp для отправки писем
- почта клиента с привязкой домена сайта к Яндекс.Почте
SendGrid предоставляет возможность отправлять письма, как с помощью собственного API, так и через протокол SMTP. Поэтому можно интегрировать как через код сайта, так и на уровне сервера. Нам подошел последний способ интеграции - на уровне сервера. Он более универсальный - не нужно вносить какие-либо правки в код сайта.
Производим интеграцию по шагам.
Шаг 1. Прописать DNS записи для почты.
Для этого на сайте SendGrid’а заходим в раздел Sender Authentication и следуя инструкциям получаем CNAME записи.
![Прописать DNS записи для почты SendGrid](https://cdn.prod.website-files.com/62545ba8bc7ef1e96935845b/6298eb323df8e98c58ca7ad1_a362e8d67fa335207d1fc79cc48e3820.png)
Так как наш домен был делегирован на сервера Яндекса, прописывать пришлось именно там.
![Настройка DNS SendGrid в Яндекс.Почте](https://cdn.prod.website-files.com/62545ba8bc7ef1e96935845b/6298eb33cde3d227e77b9912_cd480b7d083c25493381d3422fe80ceb.png)
Здесь хотелось бы подчеркнуть, что при добавлении DNS записи для почты не следует в поле “Хост” (HOST) указывать полное значение как говорит нам SendGrid - только значение до домена сайта.
Таким образом проходим верификацию. И полдела сделано.
![Верификация домена SendGrid](https://cdn.prod.website-files.com/62545ba8bc7ef1e96935845b/6298eb322652c391ce0a78c5_35cc7c0e2942ac3fbe3c468ded4918a1.png)
Шаг 2. Настройка отправки писем с сайта.
После привязки почты нам необходимо настроить отправку всех писем с сайта через новый сервис. В нашем случае проект был размещен на сервере на базе BitrixVM. По умолчанию на сервере используется пакет msmtp, служащий для отправки писем. С помощью его мы и настроим SMTP интеграцию.
На сайте SendGrid’а в Setup Guide выбираем опцию SMTP Relay.
![На сайте SendGrid’а в Setup Guide выбираем опцию SMTP Relay](https://cdn.prod.website-files.com/62545ba8bc7ef1e96935845b/6298eb33a973863a091ec52a_50495190a7b42fe45a058f19ed877b5a.png)
На следующем шаге нас просят создать уникальный ключ, который позволит нам использовать их API.
![Получение ключа SendGrid](https://cdn.prod.website-files.com/62545ba8bc7ef1e96935845b/6298eb32e4619118828378f9_410ee30c1647d4d4be0eb7f7df5b1437.png)
Копируем полученные данные и переходим к нашему серверу.
Конфигурационный файл находится по данному пути - /home/bitrix/.msmtprc. В нем мы видим следующее:
account defaultlogfile /home/bitrix/.msmtp.log #(расположение логов)host smtp.sendgrid.net #(выданное название сервера)port 587 #(порт для передачи данных. Именно с этим портом интеграция работает корректно)from info@email.ru #(адрес используемой нами почты)keepbcc onauth onuser apikey #(выданный логин)password <пароль> #(выданный пароль)tls on #(обязательное условие для работы с Яндекс сервером)tls_certcheck off
Шаг 3. Проверка работоспособности.
Почти готово. Осталось убедится, что в настройках нашего сервера указана верная служба для отправки писем. Для этого открываем файл /etc/php.d/bitrixenv.ini и проверяем чтобы в поле sendmail_path было прописано msmtp -t -i.
Если это не так, меняем значение на нужное и перезапускаем apache.
Для моментальной проверки использовалась консольная команда:
echo -e "test message" | /usr/bin/msmtp --debug -t -i name@site.ru.
Переходим на страницу интеграции SendGrid и проходим верификацию.
![Завершение настройки SendGrid](https://cdn.prod.website-files.com/62545ba8bc7ef1e96935845b/6298eb32654de0ec464b1d51_8dafd0791944ba909d118f272b2db1fd.png)
Вот и все. Теперь все письма будут автоматически отправляться через новый сервис, таким образом мы избавились от проблемы, когда письма приходят к клиентам данного сайта в папку Спам.
Читайте также
![](https://cdn.prod.website-files.com/617bb8097f7181c68177be89/64071568eebef41a1d81e3a2_YouTubeIco.png)
![](https://cdn.prod.website-files.com/617bb8097f7181c68177be89/6407187af3b88054dcca10bb_VCIco.png)
![](https://cdn.prod.website-files.com/617bb8097f7181c68177be89/64071568eebef41a1d81e3a2_YouTubeIco.png)
![](https://cdn.prod.website-files.com/617bb8097f7181c68177be89/6407187af3b88054dcca10bb_VCIco.png)
![](https://cdn.prod.website-files.com/617bb8097f7181c68177be89/64071568eebef41a1d81e3a2_YouTubeIco.png)
![](https://cdn.prod.website-files.com/617bb8097f7181c68177be89/6407187af3b88054dcca10bb_VCIco.png)
![](https://cdn.prod.website-files.com/617bb8097f7181c68177be89/64071568eebef41a1d81e3a2_YouTubeIco.png)
![](https://cdn.prod.website-files.com/617bb8097f7181c68177be89/6407187af3b88054dcca10bb_VCIco.png)