我有两个独立的服务器,都运行 Ubuntu 8.04。
服务器 1 拥有我们网站的真实域名,我们将其称为example.com
. 服务器 2 是我使用 postfix/courier 设置的邮件服务器。此服务器的主机名是mail.example.com
。
我在服务器 1 上设置了 iptables,将端口 25 上的所有流量转发到服务器 2。我使用了这个脚本(除了我将目标 IP 地址和端口从 80 更改为 25)。
当我向它发送电子邮件时,[email protected]
它可以工作。但是,当我尝试[email protected]
从 gmail 发送电子邮件时,我收到此错误:
550 550 #5.1.0 Address rejected [email protected] (state 14)
/var/log/mail.log
发生这种情况时不显示新行。
奇怪的是它可以在我的本地机器上使用 telnet。例如:
$ 远程登录 example.com 25 220 VO13421.localdomain SMTP 后缀 EHLO example.com 250-VO13421.localdomain 250-流水线 250 尺寸 10240000 250-ETRN 250-STARTTLS 250 增强状态代码 250-8BITMIME 250 DSN 发件人:[email protected] 250 2.1.0 好的 RCPT 收件人:[email protected] 250 2.1.5 好的 数据 354 请开始邮件输入。 你好用户...你好吗? . 250 邮件排队等待投递。 退出 221 关闭连接。再见。
/var/log/mail.log
显示成功(并且电子邮件发送到 maildr):
2 月 24 日 09:47:36 VO13421 后缀/smtpd[2212]:从 81.208.68.208.static.dnsptr.net[208.68.xxx.xxx] 连接 2 月 24 日 09:48:01 VO13421 后缀/smtpd [2212]:警告:忽略“许可”后的限制“smtpd_data_restrictions” 2 月 24 日 09:48:01 VO13421 后缀/smtpd[2212]: 65C68120321: client=81.208.68.208.static.dnsptr.net[208.68.xxx.xxx] 2 月 24 日 09:48:29 VO13421 后缀/smtpd [2212]:警告:忽略“许可”后的限制“smtpd_data_restrictions” 2 月 24 日 09:48:29 VO13421 后缀/smtpd[2212]: 6BDFA120321: client=81.208.68.208.static.dnsptr.net[208.68.xxx.xxx] 2 月 24 日 09:48:29 VO13421 后缀/清理 [2216]: 6BDFA120321: message-id= Feb 24 09:48:29 VO13421 postfix/qmgr[2042]: 6BDFA120321: from=, size=395, nrcpt=1 (queue active) 2 月 24 日 09:48:29 VO13421 后缀/虚拟[2217]:6BDFA120321:to=,relay=virtual,delay=0.28,delays=0.25/0.02/0/0.01,dsn=2.0.0,status=sent(发送到邮件目录) 2 月 24 日 09:48:29 VO13421 后缀/qmgr[2042]:6BDFA120321:已删除 2 月 24 日 09:48:30 VO13421 后缀/smtpd[2212]:断开与 81.208.68.208.static.dnsptr.net[208.68.xxx.xxx] 的连接
iptables -L -n -v --line
在 example.com 上产生以下内容。任何人都知道一个 iptables 命令来查看端口转发?此外,它似乎接受所有流量,这可能很糟糕吧?;]
num pkts bytes target prot opt in out source destination 1 14041 1023K 全部接受 -- * * 0.0.0.0/0 0.0.0.0/0 Chain FORWARD(策略接受 0 个数据包,0 个字节) num pkts bytes target prot opt in out source destination 1 338 20722 接受所有 -- * * 0.0.0.0/0 0.0.0.0/0 链输出(策略接受 419K 数据包,425M 字节) num pkts bytes target prot opt in out source destination 1 13711 2824K 全部接受 -- * * 0.0.0.0/0 0.0.0.0/0
postconf -n
结果是:
alias_database = hash:/etc/postfix/aliases alias_maps = hash:/etc/postfix/aliases append_dot_mydomain = 否 比夫=没有 config_directory = /etc/postfix delay_warning_time = 4h disable_vrfy_command = 是 inet_interfaces = 所有 local_recipient_maps = 邮箱大小限制 = 0 masquerade_domains = mail.example.com mail1.example.com masquerade_exceptions = 根 最大退避时间 = 8000 秒 最大队列寿命 = 7d minimum_backoff_time = 1000s 我的目的地 = 我的网络 = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 mynetworks_style = 主机 myorigin = example.com 自述目录 = 否 收件人分隔符 = + 中继主机 = smtp_helo_timeout = 60s smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache smtpd_banner = $myhostname SMTP $mail_name smtpd_client_restrictions = reject_rbl_client sbl.spamhaus.org,reject_rbl_client blackholes.easynet.nl,reject_rbl_client dnsbl.njabl.org smtpd_delay_reject = 是 smtpd_hard_error_limit = 12 smtpd_helo_required = 是 smtpd_helo_restrictions = permit_mynetworks、warn_if_reject reject_non_fqdn_hostname、reject_invalid_hostname、permit smtpd_recipient_limit = 16 smtpd_recipient_restrictions = reject_unauth_pipelining,permit_mynetworks,reject_non_fqdn_recipient,reject_unknown_recipient_domain,reject_unauth_destination,允许 smtpd_data_restrictions = reject_unauth_pipelining smtpd_sender_restrictions = permit_mynetworks、warn_if_reject reject_non_fqdn_sender、reject_unknown_sender_domain、reject_unauth_pipelining、permit 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 = 是 unknown_local_recipient_reject_code = 450 virtual_alias_maps = mysql:/etc/postfix/mysql_alias.cf virtual_gid_maps = mysql:/etc/postfix/mysql_gid.cf virtual_mailbox_base = /var/spool/mail/virtual virtual_mailbox_domains = mysql:/etc/postfix/mysql_domains.cf virtual_mailbox_maps = mysql:/etc/postfix/mysql_mailbox.cf virtual_uid_maps = mysql:/etc/postfix/mysql_uid.cf
550 550 #5.1.0 Address rejected [email protected] (state 14)
不是后缀消息,它可以解释“/var/log/mail.log 在发生这种情况时没有显示新行。”;也许您没有连接到您认为自己所在的位置。此外,根据parent_domain_matches_subdomains的设置,*.example.com 将匹配“example.com”,无论它在后缀中配置。
虽然
[email protected] | [email protected]
有点奇怪,但我们还需要查看 virtual_alias_domains 和 virtual_mailbox_* 表的内容。mydestination
Server2:/etc/postfix/main.cf 中设置的变量是什么?除了您可能遇到的其他问题外,我相信如果mydestination
包含,example.com
那么邮件将被接受。如果您需要更多帮助,请评论或更新问题。也许我的
aliases
mysql表有问题?您能否查看 example.com 的 MX 记录是否设置正确。因为正如适配器所说,/var/log/mail.log 中没有错误消息。