Настройка Postfix на Debian с пользователями в базе данных

POSTFIX

Всем привет! И вот наконец дописал я эту статью, которая стала сборником различных методов настройки почты на сервере Debian.

При написании использовались разные источники, поэтому элементы кода могут вам быть знакомыми. Я благодарен форумам за то, что наставили на путь истинный в войне с postfix!

В начале нам потребуется вот что:

  1. Регистрируем доменное имя, какое нам больше нравится. Если хотите почту вида <user>@litl-admin.ru, то регистрировать нужно litl-admin.ru. Конечно, придумайте своё; :) Сделать это можно у крупных регистраторов или у, практически, любого хостера.
  2. Арендуем VDS с предустановленной Linux. В общем виде – это виртуальная машина с выделенным IP, на которой мы являемся root и можно ставить все, что угодно. Само-собой и настраивать тоже. Обходится эта услуга не очень дорого, порядка 1400 рублей в год, что весьма и весьма неплохо;
  3. Прописываем MX запись в DNS настройках нашего доменного имени с указанием IP-адреса нашего VDS;

Так, это всё организационные моменты. Теперь будем настраивать наш сервер.

Шаг 1. Удаление предыдущего MTA.

Удаляем exim4 из системы. У меня в Debian это был почтовый MTA по умолчанию, от которого я поспешил избавиться. Если в системе фурычит sendmail (проверить можно по # netstat -an | grep :25) то # kill -9 этот PID и продолжаем работу дальше;

Шаг 2. Настраиваем имя хоста.

Для этого посмотрите вывод команд:

# hostname

– выводит короткое имя узла и

# hostname -f

– выводит полное FQDN имя узла. Эти имена нужно будет прописать сразу в файл /etc/hosts в виде:


<ваш IP адрес> <вывод команды hostname -f> <вывод команды hostname>

Попутно запишите себе этот FQDN, он нам ещё пригодится.

Шаг 3. Начинаем установку необходимых пакетов:

# apt-get install postfix postfix-mysql postfix-doc mysql-client mysql-server dovecot-common dovecot-imapd dovecot-pop3d libsasl2-2 libsasl2-modules libsasl2-modules-sql sasl2-bin libpam-mysql openssl telnet mailutils

Установка всех пакетов
Установка всех пакетов

Во время установки вам будет задан ряд наводящих  на мысли вопросов навроде пароля суперпользователя mysql. Указывайте то, что не забудете. И лучше сразу записывать куда-нибудь подальше.

Далее, начнется конфигурирование Postfix (диалоговые окна), в которых нужно указать, что наш почтовый сервер является Интернет-сайтом, после чего указать наше hostname в поле ввода имени хоста. Тут указываем полное FQDN-имя:

Конфигурирование Postfix
Конфигурирование Postfix
Вводим FQDN-имя хоста
Вводим FQDN-имя хоста

Остальные настройки будем вносить непосредственно в файл /etc/postfix/main.cf.

Шаг 4. Настройка сервера MySQL

Настройка проста и богата дефолтами. Прежде всего убедимся, что работать будем с локальным хостом, для чего в файле /etc/mysql/my.cnf отметим параметр:

bind-address = 127.0.0.1

Перезапускаем / запускаем службу mysql:

# service mysql restart (или start, если не была запущена ранее)

Проверяем коннект:

# mysql -uroot -p<наш пароль, заданный при установке>

Обратите внимание, что пробелы между -p и паролем не ставятся! Если увидели приглашение mysql> значит всё ок! Идём дальше.

Шаг 5. Создаем служебные таблицы MySQL

Выполняем, как указано выше:

# mysql -u root -p<пароль>

и попадаем в командный режим mysq.

Далее, переписываем туда нижеуказанные команды (можно сделать копипаст):

CREATE DATABASE mail;
USE mail;
GRANT SELECT, INSERT, UPDATE, DELETE ON mail.* TO 'postfixadmin'@'localhost' IDENTIFIED BY 'postfixpassword';
GRANT SELECT, INSERT, UPDATE, DELETE ON mail.* TO 'postfixadmin'@'localhost.localdomain' IDENTIFIED BY 'postfixpassword';
FLUSH PRIVILEGES;
CREATE TABLE domains (domain varchar(30) NOT NULL, PRIMARY KEY (domain) );
CREATE TABLE forwardings (source varchar(80) NOT NULL, destination TEXT NOT NULL, PRIMARY KEY (source) );
CREATE TABLE users (email varchar(80) NOT NULL, password varchar(20) NOT NULL, PRIMARY KEY (email) );
QUIT;

Не забудьте поменять логин с паролем для пущей безопасности!

Шаг 6. Настраиваем Postfix для работы с MySQL

Для того, чтобы Postfix мог брать информацию не из файлов, а из нашей базы данных (какие аккаунты есть, какие домены обслуживать, куда почту перенаправлять), нужно предусмотреть его работу с движком mysql. Для этого создаем служебные файлы следующего содержания:

Файл /etc/postfix/mysql-virtual_domains.cf
user = postfixadmin
password = postfixpassword
dbname = mail
query = SELECT domain AS virtual FROM domains WHERE domain='%s'
hosts = 127.0.0.1

Файл /etc/postfix/mysql-virtual_forwardings.cf
user = postfixadmin
password = postfixpassword
dbname = mail
query = SELECT destination FROM forwardings WHERE source='%s'
hosts = 127.0.0.1

Файл /etc/postfix/mysql-virtual_mailboxes.cf
user = postfixadmin
password = postfixpassword
dbname = mail
query = SELECT CONCAT(SUBSTRING_INDEX(email,'@',-1),'/',SUBSTRING_INDEX(email,'@',1),'/') FROM users WHERE email='%s'
hosts = 127.0.0.1

Файл /etc/postfix/mysql-virtual_email2email.cf
user = postfixadmin
password = postfixpassword
dbname = mail
query = SELECT email FROM users WHERE email='%s'
hosts = 127.0.0.1

Сразу расскажу, для чего нужна та или иная таблица:

  1. domain – в этой таблице хранятся домены, обслуживаемые нашим сервером. Для моего сайта будет litl-admin.ru, если вы купите ещё одно доменное имя, то укажите и его сюда, чтобы наш почтовый сервер мог обслуживать несколько доменов.
  2. forwardings – в этой таблице хранятся данные для перенаправления входящей почты. Например, если мы хотим завести почту с нашим красивым доменом, но не хотим хранить там письма, то можно редиректить всю входящую почту на наш ящик на mail.ru например;
  3. users – в этой таблице хранятся пользователи, созданные на нашем сервере. Хотите добавить нового юзера – просто добавьте запись в эту таблицу. Указывать нужно вместе с доменом.

На все созданные выше файлы назначаем привилегии, для того, чтобы увеличить безопасность. Конечно, чтобы никто другой не прочитал.

# chmod o= /etc/postfix/mysql-virtual_*.cf

Напомню, что формулировка 0= выставляет права для других (Other) равными … ну то есть убирает, при этом не трогая другие права. То есть права владельца и группы остаются неизменными.

Назначим так же группу на эти файлы:

# chgrp postfix /etc/postfix/mysql-virtual_*.cf

Готово! Идём дальше.

Шаг 7. Создаем пользователя для хранения почты

Первым делом, создаем группу virtualmail с gid-ом 5000, конечно можно указать любой gid из не существующих ранее, но почему-то полюбился для постфикса именно этот:

# groupadd -g 5000 virtualmail

Теперь создаем одноименного пользователя с аналогичным uid и домашний каталог для него.

# useradd -g virtualmail -u 5000 virtualmail -d /home/virtualmail -m

Шаг 8. Конфигурируем Postfix

#Указываем баннер для нашего сервера)
smtpd_banner = Welcome to SMTP by Litl-admin.ru
biff = no

# Не будем добавлять .домен, это работа почтового
append_dot_mydomain = no

# Uncomment the next line to generate "delayed mail" warnings
#delay_warning_time = 4h

readme_directory = /usr/share/doc/postfix

# TLS parameters
# Путь к сертификату, сгенерируем его попозже
smtpd_tls_cert_file = /etc/postfix/smtpd.cert
smtpd_tls_key_file = /etc/postfix/smtpd.key
smtpd_use_tls = yes
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache

# Имя хоста, совпадает с сайтом
myhostname = litl-admin.ru
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = /etc/mailname
mydestination = localhost, localhost.localdomain
relayhost =
# Замените [My.Site.Ip.Addr] на ваш IP-адрес
mynetworks = 127.0.0.0/8 [My.Site.Ip.Addr]/32

mailbox_command = procmail -a "$EXTENSION"
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
html_directory = /usr/share/doc/postfix/html

# 30 мегабайт вполне достаточно
message_size_limit = 30720000

virtual_alias_domains =

# Вот тут используем виртуальные адреса для пересылки почты
virtual_alias_maps = proxy:mysql:/etc/postfix/mysql-virtual_forwardings.cf, mysql:/etc/postfix/mysql-virtual_email2email.cf

# Обслуживаемые виртуальные домены
virtual_mailbox_domains = proxy:mysql:/etc/postfix/mysql-virtual_domains.cf
# Обслуживаемые ящики
virtual_mailbox_maps = proxy:mysql:/etc/postfix/mysql-virtual_mailboxes.cf

# Каталог для почты
virtual_mailbox_base = /home/virtualmail
# Владелец каталога (UID, GID)
virtual_uid_maps = static:5000
virtual_gid_maps = static:5000

# Испольуем SASL для аутентификации
smtpd_sasl_auth_enable = yes
broken_sasl_auth_clients = yes
smtpd_sasl_authenticated_header = yes

# Обязательно наличие HELO
smtpd_helo_required = yes

# Отбрасываем тормозов
smtpd_delay_reject = yes

# Команда VRFY помогает злоумышленникам подбирать адреса (можно узнать о существовании адреса)
disable_vrfy_command = yes

# Отсекаем на уровне HELO. Разрешаем всех из mynetworks и успешно аутентифицированных, режем всех, кто представляется инвалидным именем
smtpd_helo_restrictions =
permit_mynetworks
permit_sasl_authenticated
reject_invalid_hostname
permit

# Отсекаем на уровне MAIL FROM. Разрешаем аутентифицированных и из наших подсетей, режем всех, кто представляется не FQDN или неизвестным нам доменом (не пошлют письмо с обратным адресом billi@gates.ass и подобным.
smtpd_sender_restrictions =
permit_sasl_authenticated
permit_mynetworks
reject_non_fqdn_sender
reject_unknown_sender_domain
permit

# Отсекаем на уровне RCPT TO. Разрешаем аналогично. Режем всех, кто шлёт письма в потоке, а так же когда адрес назначения не соответствует нашему серверу или FQDN-записи.
smtpd_recipient_restrictions =
reject_unauth_pipelining
permit_mynetworks
permit_sasl_authenticated
reject_unauth_destination
reject_non_fqdn_recipient
permit

# Отсекаем на уровне DATA. Разрешаем аналогично, режем всех, кто шлет в потоке.
smtpd_data_restrictions =
permit_mynetworks
permit_sasl_authenticated
reject_unauth_pipelining
permit

# Отсекаем на уровне End data, режем всех, кто осуществляет множественную пересылку от пустого имени.
smtpd_end_of_data_restrictions =
permit_mynetworks
permit_sasl_authenticated
reject_multi_recipient_bounce
permit

virtual_create_maildirsize = yes
virtual_maildir_extended = yes
proxy_read_maps = $local_recipient_maps $mydestination $virtual_alias_maps $virtual_alias_domains $virtual_mailbox_maps $virtual_mailbox_domains $relay_recipient_maps $relay_domains $canonical_maps $sender_canonical_maps $recipient_canonical_maps $relocated_maps $transport_maps $mynetworks $virtual_mailbox_limit_maps
virtual_transport = dovecot

Шаг 9. Создаем SSL-сертификат

Переходим в каталог с postfix (по умолчанию это /etc/postfix/, ну вы знаете уже)

# cd /etc/postfix

Генерируем сертификат

# openssl req -new -outform PEM -out smtpd.cert -newkey rsa:2048 -nodes -keyout smtpd.key -keyform PEM -days 365 -x509

Начнутся допросы с пристрастием, отвечаем честно, то есть первое, что придёт в голову. Важно только предпоследнее поле, туда указываем то имя хоста, что у нас в конфиге postfix-а:

Country Name (2 letter code) [AU]:RU
State or Province Name (full name) [Some-State]:Sakhalin isl.
Locality Name (eg, city) []:Yuzhno-Sakhalinsk
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Litl-admin Ltd
Organizational Unit Name (eg, section) []:My Mail Service
Common Name (eg, YOUR name) []:litl-admin.ru
Email Address []:root@litl-admin.ru

Вот и всё. :) Не забываем защитить сертификат от посягательств:

# chmod o= /etc/postfix/smtpd.key

Шаг 9. Учим saslauthd работать с MySQL

Создаем директорию для saslauthd

# mkdir -p /var/spool/postfix/var/run/saslauthd

Начинаем редактировать файл /etc/default/saslauthd, предварительно создав его резервную копию. Вообще, поверьте, перед любым редактированием конфига полезно сделать его резервную копию:

# cp -a /etc/default/saslauthd /etc/default/saslauthd.old

Содержимое конфига /etc/default/saslauthd:

START=yes
DESC="SASL Authentication Daemon"
NAME="saslauthd"
MECHANISMS="pam"
MECH_OPTIONS=""
THREADS=5
OPTIONS="-c -m /var/spool/postfix/var/run/saslauthd -r"

Вслед за этим создаем файл /etc/pam.d/smtp и вставляем в него строки:

auth required pam_mysql.so user=postfixadmin passwd=postfixpassword host=127.0.0.1 db=mail table=users usercolumn=email passwdcolumn=password crypt=1
account sufficient pam_mysql.so user=postfixadmin passwd=postfixpassword host=127.0.0.1 db=mail table=users usercolumn=email passwdcolumn=password crypt=1

Далее, создаем файл /etc/postfix/sasl/smtpd.conf со следующим содержимым:

pwcheck_method: saslauthd
mech_list: plain login
allow_plaintext: true
auxprop_plugin: mysql
sql_hostnames: 127.0.0.1
sql_user: postfixadmin
sql_passwd: postfixpassword
sql_database: mail
sql_select: select password from users where email = '%u'

Аналогичным образом, защищаем эти файлы:

# chmod o= /etc/pam.d/smtp
# chmod o= /etc/postfix/sasl/smtpd.conf

Ну и добавим пользователя в группу:

# adduser postfix sasl

Шаг 10. Конфигурируем Dovecot

Для этого открываем файл /etc/postfix/master.cf и дописываем в конец:

dovecot unix - n n - - pipe
flags=DRhu user=virtualmail:virtualmail argv=/usr/lib/dovecot/deliver -d ${recipient}

Редактируем конфиг dovecot (разумеется, сделав бэкап):

# cp -a /etc/dovecot/dovecot.conf /etc/dovecot/dovecot.conf.old

Открываем этот файл и записываем в него (предварительно грохнув всё, что там есть)

# cat /dev/null > /etc/dovecot/dovecot.conf

Содержимое файла /etc/dovecot/dovecot.conf:

protocols = imap imaps pop3 pop3s
log_timestamp = "%Y-%m-%d %H:%M:%S "
mail_location = maildir:/home/virtualmail/%d/%n/Maildir

ssl_cert_file = /etc/ssl/certs/dovecot.pem
ssl_key_file = /etc/ssl/private/dovecot.pem

namespace private {
separator = .
prefix = INBOX.
inbox = yes
}

protocol lda {
log_path = /home/virtualmail/dovecot-deliver.log
auth_socket_path = /var/run/dovecot/auth-master
postmaster_address = root@litl-admin.ru
mail_plugins = sieve
global_script_path = /home/virtualmail/globalsieverc
}

protocol pop3 {
pop3_uidl_format = %08Xu%08Xv
}

auth default {
user = root

passdb sql {
args = /etc/dovecot/dovecot-sql.conf
}

userdb static {
args = uid=5000 gid=5000 home=/home/virtualmail/%d/%n allow_all_users=yes
}

socket listen {
master {
path = /var/run/dovecot/auth-master
mode = 0600
user = virtualmail
}

client {
path = /var/spool/postfix/private/auth
mode = 0660
user = postfix
group = postfix
}
}
}

Далее, редактируем файл /etc/dovecot/dovecot-sql.conf, предварительно сделал резервную копию.

# cp -a /etc/dovecot/dovecot-sql.conf /etc/dovecot/dovecot-sql.conf.old

driver = mysql
connect = host=127.0.0.1 dbname=mail user=postfixadmin password=postfixpassword
default_pass_scheme = CRYPT
password_query = SELECT email as user, password FROM users WHERE email='%u';

Защищаем конфиги dovecot-а (он будет пахать под учеткой виртуальной почты):

# chgrp virtualmail /etc/dovecot/dovecot.conf
# chmod g+r /etc/dovecot/dovecot.conf

Для нормальной работы Postfix требуются почтовые алиасы (синонимы), редактируем файл /etc/aliases:

postmaster: root
root: root@litl-admin.ru

После того, как сохранили все нужные алиасы, перестраиваем файл алиасов так:

# newaliases

Ну и рестартнем MTA и все сопутствующие сервисы:

# service postfix restart
# service saslauthd restart
# service dovecot restart

Все логи можно смотреть в /var/log/mail.log, предварительно очистим, чтобы не мельтешили лишние записи:

# cat /dev/null > /var/log/mail.log

Интересно? Поделись с другом
Litl-Admin.ru

Comments:

Comments: 14
  1. Борис Гаркун

    Здравствуйте.

    У нас сервер на Debian 7, используется dovecot и postfix. Скажите, пожалуйста, где в этом случае стоит искать логи по всей отправляемой через функцию php mail почте?

    1. litladmin (author)

      Подозреваю, что /var/log/maillog, /var/log/mail.log
      Посмотрите конфиги сислога, может переопределено в другой файл

  2. borro

    Спасибо за статью

    Столкнулся с ситуацией подмены адресата. Когда письма отсылаются на доменную почту сайта(формируются уведомления о заказах), то вместо info@somesite.ru письма уходят на virtuser_501@testrelease.ispsystem.net. Виной всему видимо прописанные строки в настройках main.cf postfix:

    myhostname = testrelease.ispsystem.net

    mydomain = ispsystem.net

    Остается только вопрос почему именно на ящик virtuser_501 домена testrelease.ispsystem.net, где это прописывается?

    1. litladmin (author)

      sender_canonical_maps или smtp_generic_maps или иные алиасы настраивали?

      1. borro

        Здравствуйте. Спасибо.

        Нет, не настраивал, как было так и есть. Если заменить значения myhostname и mydomain в конфигурационном файле, может дальше и лезть не надо будет, и почта будет отправляться без подмены конечного адресата?

        1. litladmin (author)

          Ну смотрите, myhostname – как правило имя текущего хоста, mydomain соответственно домен. Чему равно myorigin? Может полный конфиг скините куда-нибудь на pastebin?

          1. borro

            Спасибо. Вот main.cfhttp://pastebin.com/raw/idSxFmL4
            Нашёл файл etc/mail/virtusertable, в котором была запись вида info@somesite.ru virtuser_501
            затёр её, сохранил файл, но в логах всё равно пишется что пересылается абоненту virtuser_501@somesite.ru. Надо etc/mail/virtusertable.db обновить? Как?

  3. borro

    Попробую с новой строки, а то все уже и уже :)

    Обновил virtusertable.db.
    Теперь новая ситуация :) Попробовал отправить письмо на info@somesite.ru с обычного yandex-го ящика – в логах появляется такое:
    [QUOTE]
    May 17 17:56:33 server1 postfix/smtpd[19508]: NOQUEUE: reject: RCPT from forward9p.cmail.yandex.net[87.250.241.194]: 550 5.1.1 : Recipient address rejected: User unknown in local recipient table; from= to= proto=ESMTP helo=
    [/QUOTE]
    Периодически также мелькает unknown user: “info”
    Как можно создать этого неизвестного юзера в локальной таблице реципиентов?

    1. litladmin (author)

      Вот для этого виртюзертабле и был создан. Можно пользователей хранить в базе, в файле. Как настроено.

      1. borro

        Спасибо. Исправил. Теперь письма на info@somesite.ru отправляются, по крайней мере в логах такое
        May 18 12:51:38 f postfix/local[10672]: 33D173A24537: to=, relay=local, delay=0.97, delays=0.93/0/0/0.04, dsn=2.0.0, status=sent (delivered to command: /usr/bin/procmail)
        и ответных сообщений о недоставке не приходит. Но почему-то писем не видно в интерфейсе SquirellMail. Я так понимаю, что письма должен доставлять procmail, но почему-то нет файла его настроек, файла etc/procmailrc. Видимо из-за этого письма не видны во входящих SquirellMail. Как поступить в этой ситуации?

  4. borro

    Вы знаете, письма в файле var/mail/info есть, видимо squirellmail неправильно настроен. С чего бы начать проверки?

    1. litladmin (author)

      Попробовать получить почту локально через pop/pop3 команды прямо с сервера. Аутентифицироваться, посмотреть письма. Быть может параметры аутентификации (логин-пароль) неверны или незаданы. Так просто в логах должно отразиться на каком шаге происходит отказ. Либо в почтовом клиенте включить расширенное логирование (в Вашем – не знаю где, в TheBat в настройках ящика) и попробовать забрать почту. Потом посмотреть лог-файл.

  5. borro

    Здравствуйте. Спасибо.

    Хостер поменял почтовый клиент на RoundCube, я пересоздал ящик info@somesite.ru через ISP панель с перенаправлением писем на резервный_ящик@bk.ru.

    Если с внешнего личного мэиловского ящика(customer@inbox.ru) писать на доменную почту сайта(info@somesite.ru), то письма приходят в резервный_ящик@bk.ru, а значит и на info@somesite.ru.

    Попробовал оформить заказ с сайта – уведомления по прежнему приходят только на ящик заказчика(в логе это customer@inbox.ru), но не на info@somesite.ru и резервный_ящик@bk.ru.

    Вот какой почтовый лог генерит один заказ на сайте:
    [SPOILER][QUOTE]
    May 21 09:02:33 f postfix/pickup[23370]: 985DC3A2484D: uid=500 from=
    May 21 09:02:33 f postfix/cleanup[24768]: 985DC3A2484D: message-id=
    May 21 09:02:36 f postfix/qmgr[21364]: 985DC3A2484D: from=, size=1322, nrcpt=1 (queue active)
    May 21 09:02:36 f postfix/pickup[23370]: 2F0B03A25195: uid=500 from=
    May 21 09:02:36 f postfix/cleanup[24782]: 2F4283A25197: message-id=
    May 21 09:02:36 f postfix/cleanup[24716]: 2F0B03A25195: message-id=
    May 21 09:02:36 f postfix/qmgr[21364]: 2F4283A25197: from=, size=1459, nrcpt=1 (queue active)
    May 21 09:02:36 f postfix/local[24772]: 985DC3A2484D: to=, orig_to=, relay=local, delay=2.6, delays=2.6/0/0/0.04, dsn=2.0.0, status=sent (forwarded as 2F4283A25197)
    May 21 09:02:36 f postfix/qmgr[21364]: 985DC3A2484D: removed
    May 21 09:02:36 f postfix/qmgr[21364]: 2F0B03A25195: from=, size=1421, nrcpt=1 (queue active)
    May 21 09:02:36 f postfix/smtp[24835]: 2F4283A25197: to=, orig_to=, relay=mxs.mail.ru[217.69.139.150]:25, delay=0.56, delays=0.04/0.07/0.19/0.27, dsn=5.7.1, status=bounced (host mxs.mail.ru[217.69.139.150] said: 550 5.7.1 This message was not accepted due to domain owner DMARC policy (RFC 7489) [url]https://help.mail.ru/mail-help/postmaster/dmarc[/url] (in reply to end of DATA command))
    May 21 09:02:36 f postfix/cleanup[24768]: C15CA3A2484D: message-id=
    May 21 09:02:36 f postfix/qmgr[21364]: C15CA3A2484D: from=, size=3653, nrcpt=1 (queue active)
    May 21 09:02:36 f postfix/bounce[24781]: 2F4283A25197: sender non-delivery notification: C15CA3A2484D
    May 21 09:02:36 f postfix/qmgr[21364]: 2F4283A25197: removed
    May 21 09:02:38 f postfix/smtp[24835]: C15CA3A2484D: to=, relay=mxs.mail.ru[94.100.180.150]:25, delay=1.5, delays=0.03/0/0.34/1.2, dsn=2.0.0, status=sent (250 OK id=1b3zzh-0005bE-5u)
    May 21 09:02:38 f postfix/qmgr[21364]: C15CA3A2484D: removed
    May 21 09:02:39 f postfix/smtp[24836]: 2F0B03A25195: to=, relay=mxs.mail.ru[94.100.180.150]:25, delay=5.9, delays=2.7/0.02/0.58/2.7, dsn=2.0.0, status=sent (250 OK id=1b3zzi-0006de-5y)
    May 21 09:02:39 f postfix/qmgr[21364]: 2F0B03A25195: removed
    [/QUOTE][/SPOILER]
    Интересует ответ серверов mail.ru
    status=bounced (host mxs.mail.ru[217.69.139.150] said: 550 5.7.1 This message was not accepted due to domain owner DMARC policy (RFC 7489) [url]https://help.mail.ru/mail-help/postmaster/dmarc[/url] (in reply to end of DATA command)), когда в параметре from значится customer@inbox.ru, а в to и orig_to соответственно резервный_ящик@bk.ru и info@somesite.ru.
    Такой ответ возвращается из-за того, что программа сайта пытается послать письмо от имени стороннего почтового ящика customer@inbox.ru, а не от info@somesite.ru?

    1. litladmin (author)

      Такое чувство, что некорректно заполняются заголовки, а сервер майла их за это отфутболивает, так как письма с подобной схемой могут использоваться для рассылки спама. Насколько критично использовать свой почтовик? Может перенести всё на почту для домена от, например, яндекса? У меня к ним нареканий нет, зато головняков с настройкой стало 0.

Leave a Reply