Postfix relay

Достаточно часто возникает задача настройки отправки почты не напрямую через postfix а через сторонний почтовый ящик
Это необходимо чтобы если мы уже имеем почтовый домен. В нашем случае домен подключен к pdd.yandex.ru
Так же при отправке через проверенный почтовый домен письма не будут попадать в спам
Чаще сталкивался с настройкой отправки почты с виртуальной машины Битрикс

Мануалов по настройке достаточно много
Я буду рассматривать простой метод, без лишних файлов
Настройку буду производить с нуля на Debian 10
Начнем с установки postfix

su -
apt update
apt install postfix -y

При установке выбираем Без настройки
При этом виде установки файл конфигурации main.cf создан не будет

systemctl status postfix
● postfix.service - Postfix Mail Transport Agent
   Loaded: loaded (/lib/systemd/system/postfix.service; enabled; vendor preset: enabled)
   Active: inactive (dead)
Condition: start condition failed at Thu 2020-05-21 11:56:22 MSK; 24s ago
           └─ ConditionPathExists=/etc/postfix/main.cf was not met

мая 21 11:55:31 debian systemd[1]: Condition check resulted in Postfix Mail Transport Agent being skipped.
мая 21 11:56:22 debian systemd[1]: Condition check resulted in Postfix Mail Transport Agent being skipped.

Cоздаем настройку postfix для yandex relay

nano /etc/postfix/main.cf
inet_protocols = ipv4
relayhost = [smtp.yandex.ru]:587
smtp_use_tls = yes

alias_maps = hash:/etc/aliases

smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/private/sasl_passwd
smtp_sasl_security_options = noanonymous
smtp_sasl_type = cyrus
smtp_sasl_mechanism_filter = login
smtp_sender_dependent_authentication = yes

smtp_generic_maps = hash:/etc/postfix/private/generic

Теперь создадим файлы из конфигурации
sasl_passwd – файл паролей
generic – файл алиаса почтовой почты. необходим если при почта отправляется без указания отправителя
/etc/aliases – стандартный файл алиасов (база обновляется стандартной командой newaliases)
Базы создаются в той же папке где и файл и имеют тоже имя и расширение db

mkdir /etc/postfix/private
nano /etc/postfix/private/generic
root@debian.localdomain pochta@yandex.ru
nano /etc/postfix/private/sasl_passwd
[smtp.yandex.ru]:587 pochta@yandex.ru:PassWord

Генерируем базу созданных файлов и запускаем postfix

newaliases
postmap /etc/postfix/private/*
systemctl start postfix.service 
systemctl status postfix.service
● postfix.service - Postfix Mail Transport Agent
   Loaded: loaded (/lib/systemd/system/postfix.service; enabled; vendor preset: enabled)
   Active: active (exited) since Thu 2020-05-21 12:09:13 MSK; 4s ago
  Process: 1942 ExecStart=/bin/true (code=exited, status=0/SUCCESS)
 Main PID: 1942 (code=exited, status=0/SUCCESS)

мая 21 12:09:13 debian systemd[1]: Starting Postfix Mail Transport Agent...
мая 21 12:09:13 debian systemd[1]: Started Postfix Mail Transport Agent.

Проверка отправки почты

Необходимо установить инструменты для отправки почты

apt install mailutils -y

Отправляем с явным указанием отправителя

echo "Test text" | mail -s "Test1" -r pochta@yandex.ru pochtakomuotpravlyaem@yandex.ru

Отправляем без указания отправителя

echo "Test text" | mail -s "Test2" pochtakomuotpravlyaem@yandex.ru

В зависимости от системы можно посмотреть в логах какое имя подставляется отправителю. Его и нужно добавить в файл generic
Посмотреть все это можно в логах /var/log/mail.log

cat /var/log/mail.log | grep from
May 21 12:25:20 debian postfix/qmgr[2786]: F2B3A2AC3: from=<root@debian.localdomain>, size=355, nrcpt=1 (queue active)

ps: базы db на этапе настройки можно смело удалять и создавать по новой. Удалять через rm или чем удобнее и создавать через postmap как для все папки * так и каждый файл по отдельности

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *