我遇到了一个问题,我无法使用 Thunderbird 等通过 SMTP 发送邮件 - 但在本地机器上,邮件发送工作正常。邮件服务器也配置好了 dovecot - 可以正常工作,spamassassin 也可以正常工作。我可能遗漏了一些显而易见的东西,但我就是找不到它。
在日志中,当我尝试通过远程主机上的 Thunderbird 发送邮件时,我收到此信息:
5 月 22 日 14:06:16 d7205 postfix/smtpd[11560]: 正在设置来自未知 [xyzc] 的 TLS 连接 5 月 22 日 14:06:16 d7205 postfix/smtpd[11560]: 从未知 [xyzc] 建立匿名 TLS 连接:TLSv1 密码为 DHE-RSA-CAMELLIA256-SHA(256/256 位) 5 月 22 日 14:06:17 d7205 postfix/smtpd[11560]: NOQUEUE: 拒绝:来自未知 [xyzc] 的 RCPT: 554 5.7.1: 中继访问被拒绝;来自= 到= proto=ESMTP helo= 5月22日 14:06:18 d7205 postfix/smtpd[11560]: 断开与未知[xyzc]的连接
当前 postfix 配置(postfix -n):
别名数据库 = 哈希:/etc/aliases alias_maps = hash:/etc/aliases bounce_queue_lifetime = 2d broken_sasl_auth_clients = 是 命令目录 = /usr/sbin 配置目录 = /etc/postfix daemon_directory = /usr/libexec/postfix 数据目录 = /var/lib/postfix debug_peer_level = 2 home_mailbox = Maildir/ html_directory = 否 inet_interfaces = 全部 inet_protocols = ipv4 mail_owner = postfix mail_spool_directory = /var/spool/mail 邮箱大小限制 = 256000000 mailq_path = /usr/bin/mailq.postfix manpage_directory = /usr/share/man 最大队列寿命 = 3d mydestination = pcre:/etc/postfix/mydomains mydomain = 域名.tld myhostname = domain.tld 我的网络 = 192.168.1.0/24, 127.0.0.0/8 myorigin = $mydomain newaliases_path = /usr/bin/newaliases.postfix 队列目录 = /var/spool/postfix 队列运行延迟 = 30 秒 readme_directory = /usr/share/doc/postfix-2.6.6/README_FILES 收件人分隔符 = + 中继域 = $我的目的地 样本目录 = /usr/share/doc/postfix-2.6.6/samples sendmail_path = /usr/sbin/sendmail.postfix setgid_group = postdrop smtp_sasl_security_options = noplaintext,noanonymous smtp_tls_cert_file = /etc/pki/tls/certs/postfix.crt smtp_tls_key_file = /etc/pki/tls/certs/postfix.key smtp_tls_note_starttls_offer = 是 smtp_tls_session_cache_database = btree:${queue_directory}/smtp_scache smtp_use_tls = 是 smtpd_banner = $myhostname ESMTP smtpd_recipient_restrictions = rejection_unauth_destination,允许 smtpd_sasl_auth_enable = 是 smtpd_sasl_local_domain = $myhostname smtpd_sasl_path = private/auth smtpd_sasl_security_options = noanonymous smtpd_sasl_type=dovecot smtpd_sender_restrictions = permit_sasl_authenticated, 拒绝未知发件人域名, 拒绝非 FQDN 发送者, 拒绝未知地址, 允许 smtpd_tls_auth_only = 否 smtpd_tls_cert_file = /etc/pki/tls/certs/postfix.crt smtpd_tls_key_file = /etc/pki/tls/certs/postfix.key smtpd_tls_loglevel = 1 smtpd_tls_received_header = 是 smtpd_tls_session_cache_database = btree:${queue_directory}/smtpd_scache smtpd_tls_session_cache_timeout = 3600s smtpd_use_tls = 是 tls_random_source = dev:/dev/urandom 未知本地收件人拒绝代码 = 550
master.cf 如下所示:
smtp inet n - - - - smtpd 提交 inet n - n - - smtpd # -o smtpd_tls_security_level =加密 # -o smtpd_sasl_auth_enable=是 # -o smtpd_client_restrictions=permit_sasl_authenticated,拒绝 # -o milter_macro_daemon_name=起始 -o content_filter=垃圾邮件过滤器 smtps inet n - - - - smtpd # -o smtpd_tls_wrappermode=是 # -o smtpd_sasl_auth_enable=是 # -o smtpd_client_restrictions=permit_sasl_authenticated,拒绝 # -o milter_macro_daemon_name=起始 #628 inet n-n--qmqpd 拾取 fifo n - n 60 1 拾取器 清理 unix n - n - 0 清理 qmgr fifo n - n 300 1 qmgr #qmgr fifo n - n 300 1 oqmgr tlsmgr unix--n 1000?1 tlsmgr 重写 unix - - n - - 简单重写 弹跳 unix - - n - 0 弹跳 推迟 unix - - n - 0 反弹 跟踪 unix - - n - 0 反弹 验证 unix - - n - 1 验证 刷新 unix n - n 1000? 0 刷新 代理映射 unix - - n - - 代理映射 proxywrite unix - - n - 1 proxymap smtp unix - - n - - smtp # 当将邮件作为备份 MX 中继时,禁用 fallback_relay 以避免 MX 循环 中继 unix - - n - - smtp -o smtp_fallback_relay= # -o smtp_helo_timeout=5 -o smtp_connect_timeout=5 showq unix n - n - - showq 错误 unix - - n - - 错误 重试 unix - - n - - 错误 丢弃 unix - - n - - 丢弃 本地 unix-nn--本地 虚拟 unix - nn - - 虚拟 lmtp unix - - n - - lmtp anvil unix - - n - 1 铁砧 scache unix - - n - 1 scache dovecot unix-nn--管道 标志=DRhu argv=/usr/lib/dovecot/deliver -d ${recipient} spamassassin unix-nn--管道 用户 = spamd argv = / usr / bin / spamc -f -e /usr/sbin/sendmail -oi -f ${发送者} ${收件人}
答案1
问题是我在 Postfix 配置中没有这个特定的设置:
smtpd_recipient_restrictions= 允许通过 SASL 进行身份验证, 允许我的网络, 检查中继域