Chinaunix首页 | 论坛 | 博客
  • 博客访问: 595260
  • 博文数量: 142
  • 博客积分: 10016
  • 博客等级: 上将
  • 技术积分: 1835
  • 用 户 组: 普通用户
  • 注册时间: 2008-07-10 14:30
个人简介

工作中~

文章分类

全部博文(142)

文章存档

2009年(25)

2008年(117)

我的朋友

分类:

2008-09-02 20:36:56

问题
log中报告450 Client host rejected: cannot find your hostname

解决方案
/var/log/maillog中,一段典型的450错误邮件log日志:

Jul 11 15:07:47 mail postfix/smtpd[8435]: 63B7C62157: reject_xheader: RCPT from unknown[211.158.129.127]: 450 Client host rejected: cannot find your hostname, [211.158.129.127]; from= to= proto=ESMTP helo=

各部分内容意义如下:

Jul 11 15:07:47 日期
mail 服务器主机名的缩写
postfix/smtpd[8435] 服务/进程[进程号]
63B7C62157 message id
reject_xheader 消息类型,reject_xheader = 本来应该拒绝的,不拒绝,只是加一条邮件头
RCPT from unknown[211.158.129.127]: 消息体,smtp协议的rcpt命令阶段记录的日至,来源ip是211.158.129.127
450 Client host rejected: cannot find your hostname, [211.158.129.127];错误号 错误消息, 对211.158.129.127这个客户端ip找不到反向主机名解析
from= smtp协议的mail from命令中,客户端声称自己来自的邮件地址
to= smtp协议的rcpt to命令中,客户端要传送的邮件的目的地址
proto=ESMTP smtp协议,ESMTP代表扩展的smtp,也就是支持smtp身份认证的,这样的协议第一句话是ehlo 开头,普通的以helo开头
helo= smtp协议第一阶段,客户端问候服务器的时候,声称的她自己的名字

从日志中可以看出,报告ip反向解析找不到,并不是造成邮件没有收到的原因。如果要查看到底为什么没收到邮件,需要到日志中,查找该邮件的ID号,来判断。例如:

grep 63B7C62157 /var/log/maillog

在标准的postfix上,postfix的配置文件/usr/prima/postfix/conf/main.cf中,对smtpd_recipient_restrictions定义如下:

smtpd_recipient_restrictions = ...
reject_unknown_hostname,
...

这表示,如果找不到hostname(即找不到ip反向解析),则拒收邮件。

而Prima的postfix系统上,postfix的配置文件/usr/prima/postfix/conf/main.cf中,对smtpd_recipient_restrictions定义如下:

smtpd_recipient_restrictions = ...
xheader_if_reject reject_unknown_hostname,
...

这表示,如果一封邮件是找不到反向解析的,那么系统并不拒收这封邮件,而是为邮件加上如下的一个标记:

X-Reject: 450 Client host rejected: cannot find your hostname

这个标记的作用是,为webmail中反垃圾邮件策略做标识。当用户在webmail中,把垃圾邮件策略由“默认”调整为“高”时,那么凡是标有X-Reject的邮件将会被视为垃圾邮件。而标记了X-Reject: 450的邮件只是其中一种垃圾邮件。

用户对垃圾邮件可以进行分类处理:删除、放进垃圾邮件箱、放进收件箱。maildrop将依靠邮件头上的标记来处理。处理的规过程可以在/usr/prima/etc/mail/maildroprc文件中看到。

如果邮件没有收到,需要查看maillog里边是否有具体更详细的信息。可以用grep命令针对性的查找某个邮箱。
阅读(3008) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~