便便代码人生

关注技术, 偶尔动动手

[原] qmail打了smtpd-auth补丁后454 oops, unable to write pipe and I can’t auth

Posted by bianbian on 2008-01-03 04:22

本文Tags: ,

qmail打了smtpd-auth补丁后454 oops, unable to write pipe and I can’t auth 的解决:

我打的补丁是qmail-smtpd-auth-043_tgz.bin,google了N久也没找到好办法。幸好我备份了一个qmail-smtpd.c,对比打过补丁后的qmail-smptd.c,发现传入参数处理被改变了,不需要加域名。解决方法就是把 smtpd的run里:
/var/qmail/bin/qmail-smtpd domain.com /home/vpopmail/bin/vchkpw /bin/true 2>&1
的domain.com去掉,即:
/var/qmail/bin/qmail-smtpd /home/vpopmail/bin/vchkpw /bin/true 2>&1

网上还有盛传的一篇文章说的是用户和组设置的问题:
我估计是针对qmail-smtpd-auth-0.31的补丁版本的。
http://blog.5ilinux.com/archives/2006/04/qmailerror.html

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的属性。

qmail的作者真牛,觉得自己写得很好了,再也不更新。导致现在patch漫天飞啊,苦了俺们了。。。
http://www.shupp.org/toaster/?page=toc

标签: ,

遵守创作共用协议,转载请链接形式注明来自http://bianbian.org 做人要厚道

相关日志

One Response to “[原] qmail打了smtpd-auth补丁后454 oops, unable to write pipe and I can’t auth”

  1. linpc Says:

    修改了,还是会报错,,,但第二次点击发送,就能发送成功,当然有时候要点3次发送

Leave a Reply

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <code> <em> <i> <strike> <strong>

(required)