« 近期学习计划 | 首页 | squid快速编译安装 »

April 12, 2006

qmail中的几个error的产生的原因和解决方法

qmail中的几个error的产生的原因和解决方法

1 deferral: Unable_to_chdir_to_maildir._(#4.2.1)

这个是qmail找不到用户的收信目录所致。如果你是用vpopmail的虚拟域名来管理的,那看看你的control/locals文件,里面不能有虚拟域名,只能有实际域名(这个实际域名的意思应该是使用系统用户作为用户的域,而不是使用vpopmail的虚拟用户的域)。因此呢,如果不是用vpopmail,那么可能是系统用户的目录权限设置不正确。

如果发生这个错误,首先保证你没有对user/assign做过手动修改,添加域名都是使用vpopmail的vadddomin命令来添加的,没有修改过~vopmail/domins目录以及其下面目录的权限和属主,然后修改了locals文件之后重启应该就没有问题了。

2 deferral: Uh-oh:_.qmail_has_prog_delivery_but_has_x_bit_set._(#4.7.0)

这个是因为你的.qmail文件设置了x属性,把.qmail文件的x去掉就ok了。这个.qmail文件就在你的domins/xxx.com下面,包括比如.qmail-default之类的文件,修改一下权限,去掉x就ok了。

3 454 oops, unable to write pipe and I can't auth (#4.3.0)

这个错误是在你打了smtp auth的补丁之后,却发现不能正常auth,输入了正确的用户名密码还是提示不正确。可以通过下面的命令来测试。

[root@caph qmail-smtpd]# telnet localhost 25
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 xxx.com ESMTP
ehlo
250-xxx.com
250-PIPELINING
250-8BITMIME
250-SIZE 104857600
250 AUTH LOGIN PLAIN CRAM-MD5 //显示这个通常表示你已经打好了补丁,不过这个是可以通过修改qmail-smtp.c文件来定制的。
auth login
334 VXNlcm5hbWU6
awefaq23rasdf
334 UGFzc3dvcmQ6
awefwaef
454 oops, unable to write pipe and I can't auth (#4.3.0)
quit
221 xxx.com
Connection closed by foreign host.

出现了这种问题是因为smtp运行脚本没有设置正确的用户所致。将你的smtp的tcpserver命令的运行用户和组指定一下。

QMAILDUID=`id -u vpopmail`
QMAILDGID=`id -g vpopmail`

/usr/local/bin/tcpserver -v -H -R -l "$LOCAL" -x /etc/tcp.smtp.cdb -c "$MAXSMTPD"
-u "$QMAILDUID" -g "$QMAILDGID" 0 smtp /usr/local/bin/rblsmtpd -r relays.ordb.org
/var/qmail/bin/qmail-smtpd
/home/vpopmail/bin/vchkpw /bin/true /bin/cmd5checkpw /bin/true 2>&1

不需要修改~vpopmail/bin/vchkpw的属性。

4 451 qq write error or disk full (#4.3.0)

通常产生这个可能有2个原因:(1)你的qmail queue所在的磁盘空间不足。(2)qmail-queue的权限设置不正确或者文件有问题。

 

错误信息:the smtp server reply:qq crashed (#5.1.1)
修改stmp启动脚本,改大smtp的softlimit

Sorry. Although I'm listed as a best-preference MX or A for that host,it isn't in my control/locals file, so I don't treat it as local. (#5.4.6)
修改源码:ipme.c
ip_scan("0.0.0.0",&ix.ip);--92行左右加进
if (!ipalloc_append(&ipme,&ix)) { close(moreipme_fd); return 0; }

 

在邮件队列中快速删除从一个地方发过来但又不存在的邮件?
A:
设bad.jite.com是这个域。可以键入以下命令

echo # > ~alias/.qmail-baddomain-default
echo bad.jite.com:alias-baddomain>> /var/qmail/control/virtualdomains
echo bad.jite.com:127.0.0.1 >> /var/qmail/control/smtproutes
然后运行/var/qmail/bin/qmail-tcpok,给qmail-send 一个HUP信号

 

解决qmail经常收到来至<#@[]>这样的邮件!
首先说明一下<>和<#@[]>都是系统bouce信件信封(envelope)上的寄信人地址
这两种信都是系统产生的,区别在于<>往往是系统single bouce的地址,而<#@[]>则是系统double bounces或者triple bouces的地址
系统用这两种地址是为了避免邮件回路(mail loops)
来自<#@[]>一般都是系统的double bounces
要去掉这些double bounces可以有一种简单的办法
其原理是产生一个nobody的地址,发往这里的信件都会被丢弃,这样double bouces就不会烦你的postmaster了
具体步骤如下:
echo # > /var/qmail/alias/.qmail-nobody
echo nobody > /var/qmail/control/doublebounceto

由 frank 发表于 April 12, 2006 5:14 AM

本网所有文章建立在 创作公用 协议下。版权声明:可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息及以上“创作共用”声明。

您好

我在linux下安装的qmail,为什么给gmail, sina,hotmail等发信到垃圾箱中阿

我需要向网站的注册会员不定期的发一些信息,比如生日祝福,到期提醒等等。
我的实现方式是使用jmail,然后自己建立一个mail服务器。

现在的问题是,我建好的mail服务器,往下列邮箱发信,会出问题。
gmail.com 垃圾邮件文件夹
163.com 成功
hotmail.com 垃圾邮件文件夹
yahoo.com.cn 垃圾邮件文件夹
126.com 成功
sina.com 垃圾邮件文件夹
sohu.com 发送不过去(deferral: Sorry,_I_wasn't_able_to_establish_an_SMTP_connection._(#4.4.1)/)
tom.com 发送过去了,但是却收不到
21cn.com 成功

现在说明一下服务器的配置
os: linux as4
qmail-1.03-patched
daemontools-0.70
ucspi-tcp-0.88
vpopmail-5.4.13

顺便说明,我的ip已经作了反解,登记了mx记录。

我也不知道,是不是只要在自己的服务器上配置好了,就能往上面的系统发信了呢,

您能帮我解答一下吗,如果在北京的话,可以请您吃饭,呵呵
yinzhiyuan@gmail.com

由 yzy 发表于 December 15, 2006 5:50 PM

sohu.com 发送不过去(deferral: Sorry,_I_wasn't_able_to_establish_an_SMTP_connection._(#4.4.1)/)


我的也是这样。

但我发现是因为 服务器所在的机房根本 连不上sohu的邮件服务器,telnet sohumx.sohu.com 25 是连不上的,所以当然qmail说无法建立连接了。

而我在其他地方就能telnet上。

我的机房在汕头,你的呢??

sealinger 发表于 February 9, 2007 4:29 PM

发表评论




是否保存个人讯息?