Тематические термины: Postfix , Linux , Ubuntu , CentOS , DKIM , PTR-запись , SPF-запись
В нашем примере будет настраиваться mta-сервер Postfix на системах Linux CentOS и Ubuntu.
Для обеспечения нормальной работы сервера рассылки важны не столько технические аспекты, сколько соблюдение правил отправки электронных сообщений, о которых будет рассказано подробнее ниже.
Настройка системы
Настройка Postfix
Первое сообщение
Настройка SMTP-авторизации
Управление рассылками
Что делать, чтобы не попадать в СПАМ
Забота о получателях
Доверие почтовых систем
Технические аспекты
Обслуживание почтовой системы
Бесплатные сервера для рассылок
Выполним предварительные настройки.
Для корректного формирования заголовков почты задаем правильное время.
Укажем, какую использовать временную зону:
timedatectl set-timezone Europe/Moscow
* в данном примере мы задаем зону по московскому времени.
Список всех доступных зон можно посмотреть командой
timedatectl list-timezones
Если мы увидим только одну зону UTC, скорее всего, у нас установлена минимальная версия Ubuntu. Для установки всех зон вводим
apt install tzdata
Устанавливаем утилиту для синхронизации времени, запускаем ее и разрешаем автозапуск.
а) на Deb ( Ubuntu / Debian / Astra) :
apt install chrony
systemctl enable chrony
б) на RPM (Rocky Linux / CentOS / Red Hat) :
yum install chrony
systemctl enable chronyd —now
Имя сервера, по-умолчанию, используется Postfix для формирования заголовка приветствия. Необходимо, чтобы оно было правильным — полное (FQDN) и разрешалось в IP-адрес.
Задаем имя сервера:
hostnamectl set-hostname mailer.remontka.com
* необходимо задать полное доменное имя (FQDN), по возможности, в том домене, с которого будем отправлять сообщения. В данном примере имя сервера — mailer , домен — remontka.com .
Настраиваем брандмауэр . Нам нужно открыть 25 порт для взаимного обращения некоторых антиспам систем.
В зависимости от типа операционной системы, как правило, используются разные утилиты для управления сетевым фильтром. Рассмотрим firewalld и iptables.
а) на Deb (iptables):
iptables -I INPUT -p tcp —dport 25 -j ACCEPT
Для сохранения правила используем iptables-persistent:
apt install iptables-persistent
netfilter-persistent save
б) на RPM (firewalld ) :
firewall-cmd —permanent —add-port=25/tcp
firewall-cmd —reload
Если Postfix не установлен, выполняем команду.
а) на Deb:
apt install postfix
б) на RPM:
yum install postfix
Установка выполнена.
Разрешим автозапуск сервиса и запустим его:
systemctl enable postfix —now
Открываем на редактирование конфигурационный файл main.cf:
vi /etc/postfix/main.cf
Задаем значения для опций (если нужных опций нет, добавляем их):
myorigin = $mydomain
…
inet_interfaces = all
…
inet_protocols = ipv4
…
message_size_limit = 52428800
…
smtp_use_tls = yes
* где:
После внесения настроек перезапускаем postfix для их применения:
И перезапускаем Postfix:
systemctl restart postfix
Проверяем, что постфикс правильно определяет наши домен и имя компьютера:
postconf myhostname
postconf mydomain
Мы должны получить правильные значения — в моем случае, соответственно, mailer.remontka.com и remontka.com. Эти данные берутся из локальных настроек системы. Но если, по каким-то причинам, системные имена должны отличаться, задайте жестко имя почтового сервера и домен в настройках postfix:
myhostname = mailer.remontka.com
mydomain = remontka.com
* после необходимо перезапустить почтовый сервер постфикс.
Чтобы сервер мог отправить сообщение, необходимо, чтобы почтовая система соответствовала минимальным требованиям большинства антиспам проверок:
А-запись — это базовая запись в системе доменных имен, которая указывает на соответствие между удобочитаемым именем и IP-адресом . Для ее создания заходим в панель управления доменной зоной и пользуемся встроенным инструментом.
Ниже представлено несколько различных примеров, как выглядит правильная настройка.
На REG.RU:
В Timeweb:
В RU center (nic.ru):
На собственном DNS-сервере bind :
mailer IN A 156.91.13.102
* обратите внимание, что прописаны различные IP-адреса. В вашем случае будет свой адрес.
Данные записи могут создавать только держатели IP-адресов, то есть, Интернет-провайдеры. Для того, чтобы создать такую запись, необходимо написать письмо поставщику Интернета, примерно, следующего содержания:
Здравствуйте, мой номер договора XXXXXXXX.
Прошу создать PTR-запись mailer.remontka.com для IP 90.156.242.197 .
Некоторые Интернет провайдеры позволяют создавать подобные заявки через личный кабинет.
Если сервер арендован, то необходимо создать соответствующий тикет поставщику услуги по аренде сервера.
Прежде чем отправлять сообщения, необходимо подождать от 4 до 8 часов. Как правило, этого достаточно, чтобы созданные ранее записи стали доступны всем промежуточным серверам DNS.
Для отправки сообщений из командной строки CentOS сначала необходимо установить утилиту mail.
а) В Deb:
apt install mailutils
б) В RPM:
yum install mailx
Утилита установлена.
Создадим переменную с указанием нашего домена:
MYDOMAIN=remontka.com
После можно отправлять первое сообщение:
echo «Test text» | mail -s «Test title» -r postmaster@${MYDOMAIN} master@remontka.com
* где Test text — текст сообщения, Test title — тема, postmaster@${MYDOMAIN} — отправитель (переменная ${MYDOMAIN} подставит наш домен), master@remontka.com — получатель (его вам нужно заменить на свой).
Лучше отправить несколько сообщений на разные почтовые системы, особенно распространенные:
Если наши сообщения попали в папку СПАМ, необходимо открыть исходник письма и разобраться, что именно не понравилось почтовому серверу. Как правило, причиной могут быть некорректный текст (рекламного содержания) или отсутствие записей а DNS (A или PTR). В этом случае редактируем сообщение или ждем еще некоторое время.
Если сообщения вовсе не отправляются, открываем на просмотр следующий log-файл и изучаем, что именно послужило причиной проблемы:
tail /var/log/maillog
Отсутствие вышеописанных записей, кстати, также могут повлечь отказ почтовых систем принимать Ваши письма. В таком случае, мы увидит в логах, примерно, такой текст:
postfix/smtp[21444]: BED8CC0000C3: to=<master@remontka.com>, relay=mx1.masterhost.ru[83.222.23.178]:25, delay=0.54, delays=0.26/0.1/0.12/0.06, dsn=5.0.0, status=bounced (host mx1.masterhost.ru[83.222.23.178] said: 550-Verification failed for <root@mailer.remontka.com> 550-Unrouteable address 550 Sender verify failed (in reply to MAIL FROM command))
Для повышения безопасности, рекомендуется настроить авторизацию с запросом логина и пароля. Таким образом, только пользователи, прошедшие аутентификацию смогут отправлять сообщения с сервера.
Подробнее процесс описан в инструкции Настройка SMTP-авторизации в Postfix .
Почтовый сервер готов, но для удобной отправки рассылок необходимо специализированное программное обеспечение, с помощью которого можно настроить автоматическую обработку очереди, просматривать статистику, обрабатывать возвраты, предоставить возможность автоматической отписки и многое другое. Для этого существуют различные менеджеры управления рассылками, например, бесплатный phplist. Для его установки и настройки читайте статью Установка и настройка phplist .
Описанная процедура выше была самой простой и банальной частью в настройке почтового сервера. Она позволит отправлять небольшое количество писем. Но наша основная цель — отправлять большое число сообщений. Для успешного решения этой задачи необходимы дополнительные работы, которые я разделил на 3 категории:
Требования к содержимому электронных писем:
Требования к домену и IP-адресу:
Реакция на поведение получателей и почтовых систем:
* стоит обратить внимание на следующий момент, принципиальный для массовых рассылок — мы ставим жесткий запрет на отправку сообщений с других серверов ( -all , а не ~all), так как необходимо гарантировать, что наш домен не будет скомпрометирован другим сервером. Однако, если для отправки с вашего домена используется несколько почтовых серверов, не забудьте указать их все. В противном случае перестанет ходить почта.
Не стоит надеяться, что правильно настроенный сервер будет всегда хорошо справляться со своей задачей. Необходимо заниматься его обслуживанием, так как поведения фильтров могут меняться, как и сущность СПАМа и методы борьбы с ним.
Бесплатные smtp-сервера для рассылок, как правило, представляют демо-версии платных сервисов, и не позволят заниматься отправкой массовых писем на постоянной основе. Однако, если нет желания заниматься настройкой и обслуживанием своего сервера, можно обратиться в такие компании. Но нужно понимать, что следить за списком получателей все-равно придется самостоятельно.
Пример сервисов, предлагающих массовые рассылки:
Zulip — программное обеспечение для реализации корпоративного чата. Разработан в 2012 году, в 2014 был…
Zookeeper — cервис-координатор, который позволяет обеспечить контроль синхронизации данных. Разработан на Java компанией Apache Software…
Zimbra — программное обеспечение для реализации почтового сервиса или, если сказать точнее, автоматизации совместной деятельности…
Zabbix — бесплатная система мониторинга. Позволяет отслеживать состояние сетевых узлов, компьютеров и серверов. Возможности: Поддержка…
YouTube — компания-владелец одноименного портала для просмотра и хранения видео. Чтобы пользоваться данным порталом достаточно…
Yota — провайдер, предоставляющий доступ к сети Интернет по беспроводной связи. Впервые, сервис начал работать…