允许发送无需身份验证的邮件

允许发送无需身份验证的邮件

我有一个 postfix 服务器,配置为在发送电子邮件时需要用户名/密码,但我想添加一个例外,如果邮件被定向到某个域,则允许在不进行任何身份验证的情况下发送邮件。

我似乎找不到任何关于如何实现这一点或是否有可能实现这一点的文档。

我的主配置文件

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

答案1

这可以通过向您的收件人添加支票来完成, 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

答案2

我确信这是不可能的。原因是在客户端发送 HELO/EHLO 后,服务器将要求客户端进行身份验证,然后才允许客户端发出任何其他命令。

相关内容