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

Разрешить отправку почты без аутентификации

У меня есть сервер postfix, настроенный на запрос имени пользователя и пароля при отправке электронной почты, однако я хотел бы добавить исключение, которое позволит отправлять почту без какой-либо аутентификации, если она направлена ​​на определенный домен.

Кажется, я не могу найти никакой документации, как этого добиться или возможно ли это.

Мой main.cf:

smtpd_banner = $myhostname ESMTP $mail_name
biff = no

append_dot_mydomain = no
readme_directory = /usr/share/doc/postfix
smtpd_tls_cert_file = /etc/ssl/certs/server.crt
smtpd_tls_key_file = /etc/ssl/private/server.key

smtpd_use_tls = yes
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache

myhostname = ****.com
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = /etc/mailname
mydestination =
relayhost =
mynetworks = 127.0.0.0/8
recipient_delimiter = +
inet_interfaces = all
html_directory = /usr/share/doc/postfix/html
virtual_alias_domains =
virtual_alias_maps = proxy:mysql:/etc/postfix/mysql-virtual_forwardings.cf, mysql:/etc/postfix/mysql-virtual_email2email.cf
virtual_mailbox_domains = proxy:mysql:/etc/postfix/mysql-virtual_domains.cf
virtual_mailbox_maps = proxy:mysql:/etc/postfix/mysql-virtual_mailboxes.cf
virtual_mailbox_base = /home/vmail
virtual_uid_maps = static:5000
virtual_gid_maps = static:5000
smtpd_sasl_auth_enable = yes
broken_sasl_auth_clients = yes
smtpd_sasl_authenticated_header = yes
smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination
transport_maps = proxy:mysql:/etc/postfix/mysql-virtual_transports.cf
virtual_create_maildirsize = yes
virtual_maildir_extended = yes
virtual_mailbox_limit_maps = proxy:mysql:/etc/postfix/mysql-virtual_mailbox_limit_maps.cf
virtual_mailbox_limit_override = yes
virtual_maildir_limit_message = "The user you are trying to reach is over quota."
virtual_overquota_bounce = yes
proxy_read_maps = $local_recipient_maps $mydestination $virtual_alias_maps $virtual_alias_domains $virtual_mailbox_maps $virtual_mailbox_domains $relay_recipient_maps $
content_filter = amavis:[127.0.0.1]:10024
receive_override_options = no_address_mappings
message_size_limit = 1024000000
virtual_mailbox_limit = 1073741824
smtpd_milters = inet:localhost:8892

Это можно сделать, добавив чек получателя в свой smtpd_recipient_restrictions так что это будет выглядеть примерно так в main.cf:

smtpd_recipient_restrictions =
  permit_mynetworks,
  check_recipient_access hash:/etc/postfix/access.recipients,
  permit_sasl_authenticated,
  reject_unauth_destination

Вам также необходимо создать файл, указанный в качестве аргумента для check_recipient_access Правило, вот это /etc/postfix/access.recipients.
Это должно выглядеть так (если example.com были доменом получателя, который вы хотите разрешить):

example.com OK

И каждый раз, когда вы вносите изменения в этот файл, вам нужно запускать команду:

postmap /etc/postfix/access.recipients

Я совершенно уверен, что это невозможно. Причина в том, что после того, как клиент отправит HELO / EHLO, сервер попросит клиента пройти аутентификацию, прежде чем позволить клиенту выдавать любые другие команды.