[Сетевые технологии, Apache] Настройка Sendmail для отправки почты без попадания в Спам
Автор
Сообщение
news_bot ®
Стаж: 6 лет 9 месяцев
Сообщений: 27286
Столкнулся с проблемой: на правильно настроенном сервере Apache с установленными модулями и настроенными доменными записями у провайдера — письма отправленные через функцию mail из скриптов php попадали в спам или не доставлялись вовсе.
Начал разбираться и не смог найти не одной полноценной публикации в рунете, которая раскрывала бы проблему и помогала решить все вопросы.
Вашему вниманию представляю собранный из разных источников, проверенный и используемый способ настройки сервера для правильной отправки писем sendmail.
Система: Ubuntu 20.06
Почтовый сервис: Яндекс
1. Установка Sendmail
Если по какой-то причине не был установлен. Произведите базовую установку и настройку
sudo apt-get install php-mail
sudo apt-get install sendmail
sudo sendmailconfig
Правим php.ini
Вместо noreply@site.ru пишем почту на которую будут приходить отчеты (заголовок Return-Path:).
sendmail_path = "/usr/sbin/sendmail -t -f noreply@site.ru -i"
Заголовок «Return-Path:» является важным заголовком в глазах почтовых сервисов.
Если его не установить, заголовок будет равен примерно такому значению «Return-Path: <noreply@localhost.localdomain>».
Очень желательно чтобы значение заголовка всегда совпадало с именем домена с которого отправляется письмо, независимо от значения заголовка «From:», иначе оно может быть отправлено в «Спам» или же отклонено вовсе.
2. Настройка DNS записей
Нам необходимо настроить SPF, DMARC, DKIM записи.
Какая за что отвечает расписывать не буду. В рунете огромное количество инструкций.
Если тоже используете какой-либо почтовый сервис, у них свои подробные инструкции по настройке.
На что следует обратить внимание — чтобы в SPF был прописан IP-адрес сервера.
v=spf1 ip4:ip_server include:_spf.yandex.net ~all
Затем следует запросить у провайдера DNS-хостинга обратную запись rDNS (PTR-запись).
Привязать свой домен к ip-адресу сервера.
Как правило провайдер самостоятельно ее устанавливает по запросу.
4. Изменить hostname
Установить hostname равный названию нашего домена:
sudo hostnamectl set-hostname site.ru
5. Редактировать файл sendmail.mc
Переходим к файлу /etc/mail/sendmail.mc
Нам необходимо настроить заголовки «Received: from» и «Received: by». Они являются важными при определении уровня доверия к серверу отправляющему электронную почту.
Добавляем следующие строки в конце файла перед MAILER_DEFINITIONS
FEATURE(allmasquerade)
FEATURE(masquerade_envelope)
FEATURE(local_no_masquerade)
MASQUERADE_AS(`site.ru')
И в конец файла:
define(`MAIL_HUB', `site.ru.')dnl
define(`LOCAL_RELAY', `site.ru.')dnl
6. Проверяем настройки apache и файервола
sudo ufw allow 25
sudo nano /etc/apache2/envvars
Ищем строчки и заменяем www-data на текущего пользователя под которым запущен apache
export APACHE_RUN_USER=www-data
export APACHE_RUN_GROUP=www-data
7. Обновляем конфигурацию и перезагружаем sendmail
sudo sendmailconfig
sudo service sendmail restart
sudo systemctl restart apache2
===========
Источник:
habr.com
===========
Похожие новости:
- [Сетевые технологии, Беспроводные технологии, Разработка систем связи, Научно-популярное, Космонавтика] Всё о проекте «Спутниковый интернет Starlink». Часть 32. Проблемы терминалов StarLink из-за перегрева
- [Системное администрирование, IT-инфраструктура, Сетевые технологии, Сетевое оборудование] От дропшиппинга до собственного пункта выдачи. Масштабируем IP-телефонию малого бизнеса
- [Open source, Распределённые системы] Apache Ignite 3: распределённая БД своими руками, next level
- [Системное администрирование, IT-инфраструктура, Сетевые технологии, Сетевое оборудование] Вебинар «Как обеспечить непрерывность и безопасность ИТ-инфраструктуры филиалов», 6 июля
- [Системное администрирование, Программирование, IT-инфраструктура, Apache] Apache Pulsar как основа для системы очередей
- [Сетевые технологии, Сетевое оборудование, Интернет вещей] Там, где Wi-Fi не справляется. Применение проприетарных беспроводных технологий в промышленности и не только
- [Apache, Big Data, Хранилища данных, Data Engineering] DAG’и без напрягов: наш опыт использования метаданных при работе с Apache Airflow
- [IT-инфраструктура, Сетевые технологии, Разработка систем связи, Инженерные системы] Как Почта России управляет самой большой частной телеком-сетью в стране
- [NoSQL, Администрирование баз данных, Apache, Big Data] Stargate: что это, как работает и зачем использовать
- [Системное администрирование, Анализ и проектирование систем, Сетевые технологии, Сетевое оборудование] Cети 10 GBE без синяков и шишек
Теги для поиска: #_setevye_tehnologii (Сетевые технологии), #_apache, #_ubuntu, #_sendmail, #_spam (спам), #_pochta (почта), #_setevye_tehnologii (
Сетевые технологии
), #_apache
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 22-Ноя 01:28
Часовой пояс: UTC + 5
Автор | Сообщение |
---|---|
news_bot ®
Стаж: 6 лет 9 месяцев |
|
Столкнулся с проблемой: на правильно настроенном сервере Apache с установленными модулями и настроенными доменными записями у провайдера — письма отправленные через функцию mail из скриптов php попадали в спам или не доставлялись вовсе. Начал разбираться и не смог найти не одной полноценной публикации в рунете, которая раскрывала бы проблему и помогала решить все вопросы. Вашему вниманию представляю собранный из разных источников, проверенный и используемый способ настройки сервера для правильной отправки писем sendmail. Система: Ubuntu 20.06 Почтовый сервис: Яндекс 1. Установка Sendmail Если по какой-то причине не был установлен. Произведите базовую установку и настройку sudo apt-get install php-mail
sudo apt-get install sendmail sudo sendmailconfig Правим php.ini Вместо noreply@site.ru пишем почту на которую будут приходить отчеты (заголовок Return-Path:). sendmail_path = "/usr/sbin/sendmail -t -f noreply@site.ru -i"
Заголовок «Return-Path:» является важным заголовком в глазах почтовых сервисов. Если его не установить, заголовок будет равен примерно такому значению «Return-Path: <noreply@localhost.localdomain>». Очень желательно чтобы значение заголовка всегда совпадало с именем домена с которого отправляется письмо, независимо от значения заголовка «From:», иначе оно может быть отправлено в «Спам» или же отклонено вовсе. 2. Настройка DNS записей Нам необходимо настроить SPF, DMARC, DKIM записи. Какая за что отвечает расписывать не буду. В рунете огромное количество инструкций. Если тоже используете какой-либо почтовый сервис, у них свои подробные инструкции по настройке. На что следует обратить внимание — чтобы в SPF был прописан IP-адрес сервера. v=spf1 ip4:ip_server include:_spf.yandex.net ~all
Затем следует запросить у провайдера DNS-хостинга обратную запись rDNS (PTR-запись). Привязать свой домен к ip-адресу сервера. Как правило провайдер самостоятельно ее устанавливает по запросу. 4. Изменить hostname Установить hostname равный названию нашего домена: sudo hostnamectl set-hostname site.ru
5. Редактировать файл sendmail.mc Переходим к файлу /etc/mail/sendmail.mc Нам необходимо настроить заголовки «Received: from» и «Received: by». Они являются важными при определении уровня доверия к серверу отправляющему электронную почту. Добавляем следующие строки в конце файла перед MAILER_DEFINITIONS FEATURE(allmasquerade)
FEATURE(masquerade_envelope) FEATURE(local_no_masquerade) MASQUERADE_AS(`site.ru') И в конец файла: define(`MAIL_HUB', `site.ru.')dnl
define(`LOCAL_RELAY', `site.ru.')dnl 6. Проверяем настройки apache и файервола sudo ufw allow 25
sudo nano /etc/apache2/envvars Ищем строчки и заменяем www-data на текущего пользователя под которым запущен apache export APACHE_RUN_USER=www-data export APACHE_RUN_GROUP=www-data 7. Обновляем конфигурацию и перезагружаем sendmail sudo sendmailconfig
sudo service sendmail restart sudo systemctl restart apache2 =========== Источник: habr.com =========== Похожие новости:
Сетевые технологии ), #_apache |
|
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 22-Ноя 01:28
Часовой пояс: UTC + 5