我有两台独立的服务器,都运行 Ubuntu 8.04。
服务器 1 有我们网站的真实域名,我们将其称为example.com
。服务器 2 是我用 postfix/courier 设置的邮件服务器。该服务器的主机名是mail.example.com
。
我在服务器 1 上设置了 iptables,将端口 25 上的所有流量转发到服务器 2。我使用了这个脚本(除了我将目标 IP 地址和端口从 80 更改为 25)。
当我发送电子邮件时,[email protected]
它可以正常工作。但是,当我尝试从 Gmail 发送电子邮件时[email protected]
,我收到此错误:
550 550 #5.1.0 Address rejected [email protected] (state 14)
/var/log/mail.log
发生这种情况时,不会显示新行。
奇怪的是,它可以与我本地机器上的 telnet 一起使用。例如:
$ telnet example.com 25 220 VO13421.localdomain SMTP 后缀 EHLO 示例.com 250-VO13421.本地域名 250-流水线 250-尺寸 10240000 250-ETRN 250-STARTTLS 250-增强状态代码 250-8BITMIME 250 DS 邮件发件人:[电子邮件保护] 250 2.1.0 确定 收件地址:[电子邮件保护] 250 2.1.5 确定 数据 354 请开始邮件输入。 您好,用户...您最近怎么样? 。 250 邮件排队等待投递。 辞职 221 正在关闭连接。再见。
/var/log/mail.log
显示成功(并且电子邮件发送到 maildr):
2 月 24 日 09:47:36 VO13421 postfix/smtpd[2212]: 从 81.208.68.208.static.dnsptr.net[208.68.xxx.xxx] 连接 2 月 24 日 09:48:01 VO13421 postfix/smtpd[2212]: 警告:'permit' 之后的限制 'smtpd_data_restrictions' 被忽略 2 月 24 日 09:48:01 VO13421 postfix/smtpd[2212]: 65C68120321: 客户端=81.208.68.208.static.dnsptr.net[208.68.xxx.xxx] 2 月 24 日 09:48:29 VO13421 postfix/smtpd[2212]: 警告:'permit' 之后的限制 'smtpd_data_restrictions' 被忽略 2 月 24 日 09:48:29 VO13421 postfix/smtpd[2212]: 6BDFA120321: 客户端=81.208.68.208.static.dnsptr.net[208.68.xxx.xxx] 2 月 24 日 09:48:29 VO13421 postfix/cleanup[2216]: 6BDFA120321: message-id= 2 月 24 日 09:48:29 VO13421 postfix/qmgr[2042]: 6BDFA120321: from=, size=395, nrcpt=1 (队列活跃) 2 月 24 日 09:48:29 VO13421 postfix/virtual[2217]: 6BDFA120321: to=, reply=virtual, delay=0.28, delays=0.25/0.02/0/0.01, dsn=2.0.0, status=sent (已送达 maildir) 2 月 24 日 09:48:29 VO13421 postfix/qmgr[2042]: 6BDFA120321: 已删除 2 月 24 日 09:48:30 VO13421 postfix/smtpd[2212]: 断开与 81.208.68.208.static.dnsptr.net[208.68.xxx.xxx] 的连接
iptables -L -n -v --line
在 example.com 上得到以下结果。有人知道查看端口转发的 iptables 命令吗?此外,它似乎接受所有流量,这可能很糟糕,对吧?;]
数据包数量 字节数 目标 协议 选择加入 退出 源 目标 1 14041 1023K 接受全部 -- * * 0.0.0.0/0 0.0.0.0/0 链转发(策略接受 0 个数据包,0 字节) 数据包数量 字节数 目标 协议 选择加入 退出 源 目标 1 338 20722 接受全部 -- * * 0.0.0.0/0 0.0.0.0/0 链输出(策略接受 419K 数据包,425M 字节) 数据包数量 字节数 目标 协议 选择加入 退出 源 目标 1 13711 2824K 接受全部 -- * * 0.0.0.0/0 0.0.0.0/0
postconf -n
结果是:
别名数据库 = 哈希:/etc/postfix/aliases alias_maps = hash:/etc/postfix/aliases append_dot_mydomain = no biff = 没有 配置目录 = /etc/postfix 延迟警告时间 = 4 小时 disable_vrfy_command = 是 inet_interfaces = 全部 本地收件人地图 = 邮箱大小限制 = 0 masquerade_domains = mail.example.com mail1.example.com masquerade_exceptions = root 最大退避时间 = 8000 秒 最大队列寿命 = 7d minimal_backoff_time = 1000s 我的目的地 = 我的网络 = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 mynetworks_style = 主机 myorigin = example.com readme_directory = 否 收件人分隔符 = + 中继主机 = smtp_helo_timeout = 60 秒 smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache smtpd_banner = $我的主机名 SMTP $邮件名称 smtpd_client_restrictions = rejection_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 rejection_non_fqdn_hostname,reject_invalid_hostname,允许 smtpd_recipient_limit = 16 smtpd_recipient_restrictions = rejection_unauth_pipelining,permit_mynetworks,reject_non_fqdn_recipient,reject_unknown_recipient_domain,reject_unauth_destination,允许 smtpd_data_restrictions = rejection_unauth_pipelining smtpd_sender_restrictions = 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 = mysql:/etc/postfix/mysql_gid.cf 虚拟邮箱库 = /var/spool/mail/virtual 虚拟邮箱域 = mysql:/etc/postfix/mysql_domains.cf virtual_mailbox_maps = mysql:/etc/postfix/mysql_mailbox.cf virtual_uid_maps = mysql:/etc/postfix/mysql_uid.cf
答案1
550 550 #5.1.0 Address rejected [email protected] (state 14)
不是后缀消息,这可以解释“发生这种情况时,/var/log/mail.log 不显示新行。”;也许您没有连接到您认为的位置。
此外,取决于父域名与子域名匹配, 无论在 postfix 中配置在哪里,*.example.com 都会匹配“example.com”。
虽然有点奇怪,但我们也需要查看 virtual_alias_domains 和 virtual_mailbox_* 表的内容。[email protected] | [email protected]
答案2
Server2:/etc/postfix/main.cf 中的变量mydestination
设置是什么?除了您可能遇到的其他问题外,我相信如果mydestination
包含example.com
,那么邮件将被接受。如果您需要更多帮助,请评论或更新问题。
答案3
aliases
也许我的mysql表有问题?
+------+------------------------+----------------------+---------+ | pkid | 邮件 | 目的地 | 启用 | +------+------------------------+----------------------+---------+ | 1 | postmaster@localhost | root@localhost | 1 | | 2 | sysadmin@localhost | root@localhost | 1 | | 3 | webmaster@localhost | root@localhost | 1 | | 4 | abuse@localhost | root@localhost | 1 | | 5 | 根@localhost | 根@localhost | 1 | | 6 | @localhost | root@localhost | 1 | | 7 | @localhost.localdomain | @localhost | 1 | | 8 | @mail.example.com | @example.com | 1 | | 9 |[电子邮件保护]| postmaster@localhost | 1 | | 10 |[电子邮件保护] | 滥用@localhost | 1 | | 11 |[电子邮件保护] |[电子邮件保护] | 1 | +------+------------------------+----------------------+---------+
答案4
您能否查看 example.com 的 MX 记录是否设置正确。因为如 adaptr 所述,/var/log/mail.log 中没有出现错误消息。