Catch-all хорошо работает для существующих почтовых ящиков, но не для случайных почтовых ящиков. Что не так?
Отправка на несуществующий почтовый ящик даст ( /etc/log/maillog
):
Dec 27 23:09:42 vps40198 postfix/smtpd[18623]: NOQUEUE: reject: RCPT from mail-oa0-f47.google.com[209.85.219.47]: 550 5.1.1 <[email protected]>: Recipient address rejected: User unknown in virtual mailbox table; from=<[email protected]> to=<[email protected]> proto=ESMTP helo=<mail-oa0-f47.google.com>
Мой почтовый сервер находится по адресу fake.tld
и random
является несуществующим пользователем.
Вот соответствующие /etc/postfix/*.cf
файлы:
#mysql-domains.cf
host = localhost
user = postfix
password = xxxx
dbname = postfix
query = SELECT 1 FROM domain WHERE domain = '%s'
#mysql-email2email.cf
host = localhost
user = postfix
password = xxxx
dbname = postfix
query = SELECT username FROM user WHERE username = '%s'
#mysql-forwards.cf
host = localhost
user = postfix
password = xxxx
dbname = postfix
query = SELECT dst FROM forward WHERE src = '%s'
#mysql-mailboxes.cf
host = localhost
user = postfix
password = xxxx
dbname = postfix
query = SELECT CONCAT(SUBSTRING_INDEX(username,'@',-1),'/mail/',username,'/') FROM user WHERE username = '%s'
Домен пользователя существует в базе данных.
Что не так?
РЕДАКТИРОВАТЬ:
Полагаю, ему нужен каталог для сохранения почты. Как мне перенаправить почту, не сохраняя ее на диск?
решение1
Оказалось, что я использовал virtual_mailbox_alias_maps вместо virtual_alias_maps. Первого не существует, но Postfix не жаловался. Понятия не имею, как так получилось, может, какой-то неисправный путеводитель или моя собственная опечатка.