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

Postfix: как заставить работать псевдонимы электронной почты?

В документации утверждается, что я могу добавлять псевдонимы в файл (например, / etc / postfix / virtusertable), а затем использовать директиву virtual_maps, чтобы указать на него. Однако, похоже, это не работает.

Моя почта отправляется с:

Recipient address rejected: User unknown in local recipient table;

Если я отправлю пользователю письмо с сервера с помощью команды mail, это сработает.

mail myuser

Сообщение проходит через постфикс и правильно вставляется в почтовый ящик Cyrus.

Когда я использую fetchmail для передачи сообщений пользователя с сервера pop3, postfix не работает. Электронная почта пользователя - «myuser@mydomain.com», но, похоже, она неправильно отображается на «myuser», имя почтового ящика cyrus.



/etc/postfix/main.cf

myhostname = localhost
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = /etc/mailname
mydestination = localhost
relayhost =
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
mailbox_transport = lmtp:unix:/var/run/cyrus/socket/lmtp
#lmtp:unix:/var/run/lmtp
virtual_alias_domains = mydomain.com
virtual_maps = hash:/etc/postfix/virtusertable



/ и т.д. / fetchmailrc

et syslog;
set daemon 20;

poll "mail.pop3server.com"
with protocol pop3
user "myuser@mydomain.com" password "12345" is "myuser"
fetchall keep



/ и т.д. / postfix / virtusertable

myuser@mydomain.com     myuser



postconf -n

alias_database = hash:/etc/aliases
alias_maps = hash:/etc/aliases
append_dot_mydomain = no
biff = no
config_directory = /etc/postfix
inet_interfaces = all
mailbox_size_limit = 0
mailbox_transport = lmtp:unix:/var/run/cyrus/socket/lmtp
mydestination = localhost 
myhostname = localhost
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
myorigin = /etc/mailname
readme_directory = no
recipient_delimiter = +
relayhost = 
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)
smtpd_tls_cert_file = /etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file = /etc/ssl/private/ssl-cert-snakeoil.key
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtpd_use_tls = yes
virtual_alias_domains = mydomain.com

Почему он игнорирует мой псевдоним?

Локальные псевдонимы входят в

alias_database = hash:/etc/aliases (не в /etc/postfix/virtusertable) в следующем формате:

alias: destination. После этого бега newaliases.

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

Поскольку я мог доставлять прямые, включая "+" адреса, но адреса с псевдонимами отклонялись ... К вашему сведению, я обнаружил, что адреса псевдонимов были переписаны. [myalias] стал [myalias@myhost.mydomain.tld]

Так что пока я не разобрался, как отключить расширение или поменять его на падение [myhost], обходным путем было расширение файла псевдонимов [myalias@mydomain.tld] вместо того [myalias]

Наконец я наткнулся на это, когда наконец заметил журнал, показывающий FQDN а не просто домен, как я использовал в sendmail.