我已经设置了一个可以正常工作的 Postfix 服务器,但所有传入邮件都会被拒绝。
当我尝试通过 telnet 发送邮件时:
MAIL FROM: <[email protected]>
250 2.1.0 Ok
RCPT TO: <[email protected]>
554 5.7.1 <my.host.name[1.2.3.4]>: Client host rejected: Access denied
我的postconf -n
别名数据库 = 哈希:/etc/postfix/aliases alias_maps = hash:/etc/postfix/aliases append_dot_mydomain = no biff = 没有 broken_sasl_auth_clients = 否 配置目录 = /etc/postfix 延迟警告时间 = 4 小时 inet_interfaces = 全部 邮箱大小限制 = 0 masquerade_domains = mail.mydomain.com www.mydomain.com 最大退避时间 = 8000 秒 最大队列寿命 = 7d minimal_backoff_time = 1000s 我的目的地 = 我的网络 = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 myorigin = techxonline.net readme_directory = 否 收件人分隔符 = + 中继主机 = smtp_helo_timeout = 60 秒 smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache smtpd_banner = $myhostname ESMTP $mail_name smtpd_client_restrictions = rejection_rbl_client sbl.spamhaus.org,reject_rbl_client blackholes.easynet.nl,reject_rbl_client dnsbl.njabl.org smtpd_data_restrictions = rejection_unauth_pipelining smtpd_hard_error_limit = 12 smtpd_helo_restrictions = permit_mynetworks,warn_if_reject rejection_non_fqdn_hostname,reject_invalid_hostname,允许 smtpd_recipient_limit = 16 smtpd_recipient_restrictions = rejection_unauth_pipelining,permit_mynetworks,permit_sasl_authenticated,reject_non_fqdn_recipient,reject_unknown_recipient_domain,reject_unauth_destination,check_policy_service inet:127.0.0.1:10023,允许 smtpd_sasl_auth_enable = 是 smtpd_sasl_本地域= smtpd_sasl_security_options = noanonymous smtpd_sender_restrictions = permit_sasl_authenticated、permit_mynetworks、warn_if_reject、reject_non_fqdn_sender、reject_unknown_sender_domain、reject_unauth_pipelining、允许 smtpd_soft_error_limit = 3 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 = 是 未知本地收件人拒绝代码 = 450 virtual_alias_maps = mysql:/etc/postfix/mysql_alias.cf virtual_gid_maps = 静态:5000 虚拟邮箱库 = /var/spool/mail/virtual 虚拟邮箱域 = mysql:/etc/postfix/mysql_domains.cf virtual_mailbox_maps = mysql:/etc/postfix/mysql_mailbox.cf virtual_uid_maps = 静态:5000
/var/log/syslog
从 Gmail 发送后:
Oct 18 21:30:01 appman postfix/smtpd[25307]: connect from mail-gx0-f181.google.com[209.85.161.181]
Oct 18 21:30:01 appman postfix/smtpd[25307]: NOQUEUE: reject: RCPT from mail-gx0-f181.google.com[209.85.161.181]: 554 5.7.1 <mail-gx0-f181.google.com[209.85.161.181]>: Client host rejected: Access denied; from=<[email protected]> to=<[email protected]> proto=ESMTP helo=<mail-gx0-f181.google.com>
Oct 18 21:30:01 appman postfix/smtpd[25307]: disconnect from mail-gx0-f181.google.com[209.85.161.181]
我怎样才能让我的 postfix 服务器接受邮件?如果我可以提供任何其他信息,请告诉我。
编辑:似乎服务器需要身份验证才能在此处接收邮件。它似乎不受主机限制——从服务器本身使用 telnet 仍会导致邮件被拒绝。使用 SASL 进行身份验证然后发送电子邮件可以正常工作。
因此,问题似乎是服务器期望在最终目的地传递邮件时进行身份验证,但事实并非如此。有什么想法吗?
答案1
我认为您需要输入mydestination = mydomain.com
您的配置。
下一个猜测:我们知道域名是正确的,并且 SASL 有效……所以我现在怀疑我们在你的限制中看到了错误。我会从收件人限制开始,删除 permit_sasl_authenticated 之后的所有拒绝。如果有效,请一次添加一个。如果不行,你的下一个测试是 sender_restrictions。
答案2
首先删除策略委托机制check_policy_service inet:127.0.0.1:10023
。然后重试。这很有可能阻碍了您的交付。