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

Как сделать так, чтобы Postfix мог отправлять сообщения миру?

Я настраиваю SMTP-сервер на основе Postfix с PostgreSQL. Когда я пытаюсь отправить письмо на другой домен, я получаю Адрес получателя отклонен: доступ запрещен ошибка.

Вот моя конфигурация:

# 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
local_recipient_maps = 
mailbox_size_limit = 0
mydestination = lan.example.com, localhost, localhost.localdomain, localhost
myhostname = example.com
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
readme_directory = no
recipient_delimiter = +
relayhost = lan.example.com
smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)
smtpd_recipient_restrictions = permit_mynetworks, permit_auth_destination, reject
virtual_alias_maps = pgsql:/etc/postfix/pgsql.d/virtual_alias.cf
virtual_gid_maps = static:108
virtual_mailbox_base = /var/spool/postfix/incoming
virtual_mailbox_domains = pgsql:/etc/postfix/pgsql.d/virtual_domain.cf
virtual_mailbox_limit = 51200000
virtual_mailbox_maps = pgsql:/etc/postfix/pgsql.d/virtual_mailbox.cf
virtual_transport = virtual
virtual_uid_maps = static:105

Вот, example.com это доменное имя сервера, и lan.example.com это доменное имя узла ретрансляции.

Вот полная ошибка:

Oct 15 10:22:08 authentification postfix/smtpd[9930]: connect from unknown[10.1.250.173]
Oct 15 10:22:08 authentification postfix/smtpd[9930]: NOQUEUE: reject: RCPT from unknown[10.1.250.173]: 554 5.7.1 <david.jose.delassus@gmail.com>: Recipient address rejected: Access denied; from=<noreply@example.com> to=<david.jose.delassus@gmail.com> proto=ESMTP helo=<localhost>
Oct 15 10:22:08 authentification postfix/smtpd[9930]: lost connection after RSET from unknown[10.1.250.173]
Oct 15 10:22:08 authentification postfix/smtpd[9930]: disconnect from unknown[10.1.250.173]

Если я правильно понял ваш вопрос, вы хотите отправить письмо через lan.example.com. Если lan.example.com такая же коробка, relayhost = lan.example.com не следует устанавливать (так как это уже хост-ретранслятор).

Из документация по postfix

By default, the Postfix SMTP server accepts:

  Mail from clients whose IP address matches $mynetworks, or
  Mail to remote destinations that match $relay_domains, except for addresses
   that contain sender-specified routing (user@elsewhere@domain), or
  Mail to local destinations that match $inet_interfaces or $proxy_interfaces,
    $mydestination, $virtual_alias_domains, or $virtual_mailbox_domains.

Следует указать сеть 10.1.250.0/24 (или любая другая битовая маска), чтобы быть частью $mynetworks, или, в частности, поместить его в smtpd_relay_restrictions:

smtpd_relay_restrictions = $mynetworks, 10.1.250.0/24