У меня есть виртуальная установка postfix с MySQL и dovecot. Все работает нормально, единственная проблема в настоящее время заключается в том, что письма в root не доставляются локально, как должно быть. Вместо этого postfix заменяет письма, отправленные на «root», на «root@example.com». Поскольку для root@example.com нет виртуального почтового ящика, они не могут быть доставлены:
Nov 17 03:20:26 xxx postfix/qmgr[16914]: E49903AB4045: from=<root@example.com>, size=783, nrcpt=1 (queue active)
Nov 17 03:20:26 xxx postfix/pipe[17901]: E49903AB4045: to=<root@example.com>, orig_to=<root>, relay=dovecot, delay=626, delays=625/0.01/0/0.17, dsn=4.1.1, status=SOFTBOUNCE (user unknown)
Чтобы исправить это, я попробовал то, что описано на
http://www.postfix.org/STANDARD_CONFIGURATION_README.html#some_local
и добавил корневой псевдоним в мои карты виртуальных псевдонимов sql:
| address | goto | domain | created | modified | active |
+---------------+------------------+---------------+---------------------+---------------------+--------+
| root | root@localhost | localhost | 2013-11-18 11:20:00 | 2013-11-18 11:20:00 | 1 |
По крайней мере, сейчас он немного изменился, но он все еще не работает, поскольку кажется, что имя домена теперь расширено до root@localhost.example.com:
Nov 18 11:36:39 xxx postfix/qmgr[16914]: 0741763B6001: from=<root@example.com>, size=316, nrcpt=1 (queue active)
Nov 18 11:36:39 xxx postfix/smtp[30046]: 0741763B6001: to=<root@localhost.example.com>, orig_to=<root>, relay=none, delay=11, delays=11/0/0.52/0, dsn=4.4.6, status=SOFTBOUNCE (mail for localhost.example.com loops back to myself)
Из моего main.cf:
mydestination = localhost.localdomain, localhost
mydomain = example.com
myhostname = mail.example.com
myorigin = $mydomain
smtpd_recipient_restrictions = permit_mynetworks,reject_non_fqdn_recipient,permit_sasl_authenticated,reject_unauth_destination,reject_rbl_client zen.spamhaus.org,pcre:/etc/postfix/dspam_filter_access
virtual_alias_maps = mysql:/etc/postfix/sql_virtual_alias_maps.cf
virtual_mailbox_domains = mysql:/etc/postfix/sql_virtual_domain_maps.cf
virtual_mailbox_maps = mysql:/etc/postfix/sql_virtual_mailbox_maps.cf
Насколько я понимаю, Postfix должен проверять sql_virtual_alias_maps, пересылать письма на root
к root@localhost
, и попробуйте доставить это локально.
Что я делаю не так и как мне заставить postfix доставлять эти корневые письма локально?
Хорошо, я исправил. Проблема заключалась в параметре
append_dot_mydomain
который установлен на yes
по умолчанию. После установки
append_dot_mydomain = no
, в main.cf
, он работает как надо.
Похоже, он пытается переслать самому себе, вы случайно не определяете, что поле «goto» в вашей базе данных является адресом пересылки? если да, попробуйте удалить это форвард и посмотреть, поможет ли это