Назад | Перейти на главную страницу

Проблема с псевдонимом Postfix [пользователь неизвестен]

Поэтому мне нужно создать псевдоним на моем сервере postfix, который будет перенаправлять всю почту на несколько адресов электронной почты.

У меня есть postfix + postfixadmin с настроенным dovecot, и все, кажется, работает нормально, и сервер может получать электронную почту и отправлять электронную почту, так же как и создание новых учетных записей, но не псевдонимов.

При попытке отправить электронное письмо на только что созданный псевдоним (созданный с помощью postfixadmin) в /var/log/mail.log я вижу следующее

Mar 11 14:24:53 somedomain postfix/pipe[28581]: B1FEDBC0899: to=<testing@somedomain.com>, relay=dovecot, delay=0.68, delays=0.63/0/0/0.05, dsn=5.1.1, status=bounced (user unknown)
Mar 11 14:24:53 somedomain postfix/cleanup[26467]: 3B549BC0BE4: message-id=<20140311102453.3B549BC0BE4@somedomain.com>
Mar 11 14:24:53 somedomain postfix/bounce[28583]: B1FEDBC0899: sender non-delivery notification: 3B549BC0BE4

И электронная почта возвращается с той же ошибкой.

Проблема в том, что псевдоним существует, и я вижу его в базе данных MySQL и в интерфейсе postfixadmin.

root@someserver:~# postconf | grep alias
alias_database = hash:/etc/aliases
alias_maps = hash:/etc/aliases
allow_mail_to_commands = alias, forward
allow_mail_to_files = alias, forward
expand_owner_alias = no
local_recipient_maps = proxy:unix:passwd.byname $alias_maps
newaliases_path = /usr/bin/newaliases
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 $sender_bcc_maps $recipient_bcc_maps $smtp_generic_maps $lmtp_generic_maps
unknown_virtual_alias_reject_code = 550
virtual_alias_domains = $virtual_alias_maps
virtual_alias_expansion_limit = 1000
virtual_alias_maps = proxy:mysql:/etc/postfix/mysql_virtual_alias_maps.cf, proxy:mysql:/etc/postfix/mysql_virtual_alias_domain_maps.cf, proxy:mysql:/etc/postfix/mysql_virtual_alias_domain_catchall_maps.cf
virtual_alias_recursion_limit = 1000
virtual_mailbox_maps = proxy:mysql:/etc/postfix/mysql_virtual_mailbox_maps.cf, proxy:mysql:/etc/postfix/mysql_virtual_alias_domain_mailbox_maps.cf

и еще некоторая информация, которая может быть интересна

myhostname = somedomain.com
mydestination = localhost.$mydomain, localhost, mail.somedomain.com
relayhost =

/ etc / aliases файл

# /etc/aliases
mailer-daemon: postmaster
postmaster: root
nobody: root
hostmaster: root
usenet: root
news: root
webmaster: root
www: root
ftp: root
abuse: root
noc: root
security: root
clamav: root
testing: info

Тем не менее, без этой тестовой строки электронная почта даже не возвращается

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

в /etc/postfix/master.cf добавлена ​​следующая строка

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

в /etc/dovecot/dovecot-sql.conf

driver = mysql
connect = host=localhost dbname=postfixadmin user=postfixadmin password=somepassword
default_pass_scheme = MD5
password_query = SELECT password FROM mailbox WHERE username = '%u'
user_query = SELECT maildir, 125 AS uid, 125 AS gid, CONCAT('maildir:storage=', FLOOR( quota / 1024 ) ) AS quota FROM mailbox WHERE username = '%u' AND active = '1'

в /etc/postfix/mysql_virtual_alias_maps.cf

user = postfixadmin
password = somepassword
hosts = 127.0.0.1
dbname = postfixadmin
query = SELECT goto FROM alias WHERE address='%s' AND active = '1'
#expansion_limit = 100

У меня заканчиваются идеи, в чем может быть проблема, поэтому любая помощь очень ценится, спасибо!

Проблема, как указано, в том, что dovecot не знает, кто это псевдоним, потому что на самом деле это не учетная запись электронной почты. postfix должен сообщать ему, на какую учетную запись (а) доставить его. Либо ваш mysql_virtual_alias_maps (если пользователь находится в виртуальных доменах), либо / etc / aliases не расширяется, и псевдоним (вместо фактического почтового ящика) передается в dovecot.

Изменить: на самом деле в Screatch's main.cf была установлена ​​опция receive_override_options = no_address_mappings который часто используется для предотвращения расширения псевдонимов (и других сопоставлений) перед их передачей в фильтры содержимого. В его случае не было фильтра содержимого, и это препятствовало расширению его псевдонимов до того, как postfix передал его dovecot для доставки.

Обновление за ноябрь 2015 г.

Та же проблема, псевдоним не работал.

Итак, я пошел в /etc/postfix/main.cf и изменено (по умолчанию):

local_recipient_maps = unix:passwd.byname

по

local_recipient_maps = unix:passwd.byname $alias_maps

и теперь это работает