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

Почему Postfix не выполняет доставку из локальных учетных записей в локальные?

У меня установлен постфикс на машине с именем smtp.mydomain.com с виртуальным доменом mydomain.com. Если какое-либо электронное письмо придет на smtp.mydomain.com для локального пользователя на этой машине из внешний Затем SMTP-сервер доставляется локально, как и ожидалось.

Однако если user1@mydomain.com отправляет в user2@mydomain.com с помощью smtp.mydomain.com тогда электронное письмо не доставляется локально пользователю user2, как ожидалось, а вместо этого передается псевдониму catch all someone@otherdomain.com для домена mydomain.com.

Таким образом, в основном локальный пользователь для локального пользователя, использующего машину Postfix, не работает. Есть предложения, как это исправить или диагностировать? Это должно быть что-то действительно очевидное.

Я размещаю здесь свою конфигурацию на случай, если это поможет:

postconf -n:

alias_maps = hash:/etc/aliases
broken_sasl_auth_clients = yes
command_directory = /usr/sbin
config_directory = /etc/postfix
daemon_directory = /usr/libexec/postfix
debug_peer_level = 2
html_directory = no
mailq_path = /usr/bin/mailq.postfix
manpage_directory = /usr/share/man
myhostname = smtp.mydomain.com
myorigin = mydomain.com
newaliases_path = /usr/bin/newaliases.postfix
readme_directory = /usr/share/doc/postfix-2.3.3/README_FILES
sample_directory = /usr/share/doc/postfix-2.3.3/samples
sendmail_path = /usr/sbin/sendmail.postfix
setgid_group = postdrop
smtp_tls_note_starttls_offer = yes
smtp_use_tls = yes
smtpd_recipient_restrictions = permit_mynetworks permit_sasl_authenticated reject_unauth_destination check_policy_service inet:127.0.0.1:10023 reject_unknown_reverse_client_hostname
smtpd_sasl_auth_enable = yes
smtpd_sasl_path = private/auth
smtpd_sasl_security_options = noanonymous noplaintext
smtpd_sasl_type = dovecot
smtpd_tls_auth_only = yes
smtpd_tls_cert_file = /etc/pki/tls/certs/smtp.mydomain.com.cert
smtpd_tls_key_file = /etc/pki/tls/private/smtp.mydomain.com.key
smtpd_tls_loglevel = 1
smtpd_tls_received_header = yes
smtpd_tls_session_cache_database = btree:/var/spool/postfix/smtpd_tls_cache
smtpd_tls_session_cache_timeout = 3600s
smtpd_use_tls = no
tls_random_source = dev:/dev/urandom
unknown_local_recipient_reject_code = 550
virtual_alias_maps = hash:/etc/postfix/virtual

cat /etc/postfix/virtual:

mydomain.com  mydomain.com
@mydomain.com someone@otherdomain.com
user1@mydomain.com       user1.mydomain.com
user2@mydomain.com     user2.mydomain.com

Переместите линию @mydomain.com someone@otherdomain.com в конец файла. Вот и все.

О, и теперь я вижу: должно быть @s в адресах назначения. Итак, ваш файл должен выглядеть так:

mydomain.com    mydomain.com
user1@mydomain.com    user1@mydomain.com
user2@mydomain.com    user2@mydomain.com
@mydomain.com    someone@otherdomain.com