QMAIL的排错集1.虚拟域用户无法收信?Q:虚拟域为qmail.com,向fish@qmail.com用户发送邮件,邮件接收失败。查看/var/log/qmail/send/current,发现”_no_mailbox_here_by_that_name”的错误提示。A:进入/var/qmail/control/目录,编辑locals文件,将qmail.com条目删除即可。当locals和virtualdomains这两个文件同时记录了一个相同域名时,虚拟域将接收不了邮件,因为locals文件优先级高。另外,如果/var/qmail/control/rcpthosts文件内的格式不正确也会发生此问题。正确格式:”domain.com”2.使用ps–ef|grepsvscan命令后,发现该svscan服务没有运行?A:进入/package/admin/daemontools/common/目录,运行一下命令./svscanboot手动启动svscan服务。3.单独运行各个服务的run脚本,出现”softlimit:fatal:unabletorun:filedoesn’texist”A:确保所有run脚本没有多于的空格4.qmail-send服务启动失败Q:启动qmail,发现qmail-send服务没有起来。进入/var/qmail/supervise/qmail-send/目录,运行./run命令,发现”cannotstart:unabletoopenmutex”错误A:可能出现的原因就是sendmutex文件丢失。所以执行下列2个命令重新创建该文件。touch/var/qmail/queue/lock/sendmutexChownqmails:qmail/var/qmail/queue/locks/sendmutex7.Error:couldn’tconnecttoPSNforpreferences?A:可以尝试重新给MYSQL用户赋予权限,使用以下命令:Grantselect,insert,update,delete,onsquirrelmail.*tosquirrelmailuser@localhostidentifiedby“squirrelpassword”8.Tcpserver;fatal:temporarilyunabletofigureoutIPaddressfor0.0.0.0:filedoesnotexist?A:touch/etc/dnsrewrite9.无法发送邮件,查看/var/log/qmail/send/current日志,报如下错误:“deferral:uh-oh:_.qmail_has_prog_delivery_but_has_x_bit_set._”A:找到所有.qmail文件,去除执行位”x”即可12.为QMAIL安装stmtpd补丁包,操作流程(vpopmail安装后再打补丁)A:进入netqmail安装目录cd/usr/local/src/Qmail_setup/netqmail-1.05/netqmail-1.05patch/usr/local/src/Qmail_setup/netqmail-1.05-tls-smtpauth-20070417.patchmakeqmailctlstopmakesetupcheckmakecertmaketmprsadh13.451qqwriteerrorordiskfullA.qmailqueue所在磁盘空间不足Qmail-queue的权限设置不正确或文件有问题14.Thesmtpserverreply:qqcrashedA.修改smtp启动脚本,改大smtp的softlimit15.IGENUS登录后显示空白页面,查看日志提示:”calltoundefinedfunction”:mysql_connect()A.出现以上错误是”php-mysql”包没有安装导致尝试chgrp-Rvchkpw/var/lib/php/session16.vpopmail用户的ID和vchkpw组的ID要与/var/qmail/user/assign文件中的邮件地址域的ID号要相同。17.安装“uscpi-tcp-0.88”遇到下列错误:Install:fatal:unabletowrite…/bin/tcpserver:textbusyA:说明tcpserver还在运行,杀掉进程再安装18.增加某个虚拟域时,提示“Error-noauthenticationdatabaseconnectioninitialopen”A:如果是用源代码安装的mysql,通常vpopmail找不到“/var/lib/mysql/mysql.sock“文件,需要做个连接:ln–s/tmp/mysql.sock/var/lib/mysql/mysql.sock19.qmail-smtpd服务启动失败,运行其脚本出现如下错误:“QMAILUID,NOFILESGID,MAXSMTPD,orLOCALisunsetin/var/qmail/supervise/qmail-smtpd/run“A:说明其中一个变量值为空,确保每个变量都有正确的值,确保/var/qmail/control/目录下的“me,rcpthosts,defaultdomain,plusdomain“这四个文件有正确的域名,域名格式如下:domain.com:domain.com20.tcpserver:warning:dropingconnecting,unabletoread/home/vpopmail/etc/tcp.smtp.cdbfiledoesnotexist.A:chmod755/home/vpopmailchownroot.root/home/vpopmailchownroot.root/home/vpopmail/etcchownroot.root/home/vpopmail/etc/tcp.smtpchownroot.root/home/vpopmail/etc/tcp.smtp.cdb重启机器。21.客户端无法收取邮件,错误日志如下:Vchkpw-pop3:vpopmailusernotfoundxxx@:192.168.0.5A:将客户端的帐号改为:user@domain.com确保该帐号确实存在。22.邮件发生失败,提示下列错误:Delivery2:deferral:unableto_switch_to_/home/vpopmail/domain/xxx.com:_access_deniedA:出现此错误可能的原因是修改了vpopmail和vchkpw的uid和gidcd/var/qmail/usersqmail-pw2u/etc/passwordassignqmail-newu23.运行smtp脚本时报错:badinterpreter.NosuchfileordirectoryA:原因不是找不到文件,而是脚本的文件格式不对,很可能是DOS格式,可以用下列方法查看文件格式打开smtp的脚本:virun查看文件格式::setff?可以看到dos或unix字样,若是dos,即可用:setff=unix转换格式,存盘退出24.客户端连接Qmail超时A:大多数原因是smtp脚本设置不正确少了一个“-H“参数,将“tcpserver–v–R–l0–x/home/vpopmail/etc/tcp.smtp.cdb“改成“tcpserver–v–H–R–l0–x/home/vpopmail/etc/tcp.smtp.cdb“其原因是当连接25端口时,QMAIL会查询远端主机的信息,加了“-H“就可以解决此问题25.发送信件时报错:“SMTPServerreply451SPFlookupfailure“A:原因是在/var/qmail/control/目录下有个“spfbehavior“文件,可以临时性的将此文件移除该目录即可26.打完SMTP验证补丁后,验证失败报错:“unabletowritepipeandIcan’tauth“A:出现这种原因是,在打完补丁后,没有对其SMTP脚本做如下修改:将“QMAILUID=`id–uqmaild`““NOFILESGID=`id–uqmaild`“改成“QMAILUID=`id–uvpopmail`““NOFILESGID=`id–uvpopmail`“27.删除邮件队列里的邮件A:qmailctlstopmv/var/qmail/queue/lock/tmpfind/var/qmail/queue–typef|xargsrm–fmv/tmp/lock/var/qmail/queue/qmailctlstart28.telnetlocalhost25失败,日志如下:“warning:dropingconnecting,unabletoread/home/vpopmail/etc/tcp.smtp.cdb::accessdenied“A:chmod755/home/vpopmail29.由于各种原因,在添加虚拟域的时候,提示该错误“Error:Domainalreadyexists”A:通过以下步骤排除错误:1.重新启动qmail服务2.尝试删除该域:vdeldomaindomain.com3.如果上述操作失败,进入数据库,看该域是否存在,如果存在就把它删除4.进入/var/qmail/control/目录,尝试清除如下文件里的域:virtualdomainsmelocalsrcpthostsdefaultdomainplusdomain5.进入/var/qmail/users/目录,查看assign文件,清除相应域的记录,并执行下列命令刷新qmail-newu30.发送邮件失败,出现下列错误日志信息:“delivery8:failure:Connected_to_24.24.24.2_but_sender_was_rejected./Remote_host_said:_554_5.1.0_Sender_Denied/”原因分析:Qmail试图向远端的24.24.24.2的邮件系统发送邮件,但是却遭到了对方的拒绝。A:1.如果您是向合伙人或者分支机构间发送邮件时遇到此类问题,请与对方的管理员取得联系,查明是否设置过滤将自己给挡在了外面。2.如果是将邮件发送于此类hotmail.com邮件系统却遭到了同样的问题,请确保自己的邮件服务器的IP地址没有被列入黑名单。31.实现邮件监控目的:当用户在发送或收取邮件的同时,会将邮件的副本发送到另一个邮箱中以实现邮件备份的方式A:要实现这个目的,就需要进入Qmail的源目录(netqmail-1.05/netqmail-1.05),编辑extra.h文件。假设建立一个monitor邮件账户,该账户就是用来转存所有用户发送或收取邮件的同时将副本发送到此邮箱。编辑内容如下:#defineQUEUEEXTRA“Tmonitor\0”#defineQUEUEEXTRALEN9QUEUEEXTRA是这样设置的,大写字母T,然后是用户名,最后是空字符“\0”。QUEUEEXTRALEN表示是QUEUE_EXTRALEN的程度,上面算下来是九个字符,所以它为9。然后生成~alias/.qmail-log,在此文件里面添加:./logmaildir/最后重新编译Qmail32.重复收取同一封邮件的问题。当A给B发邮件,B会收取A的多个邮件副本。A:尝试删除用户邮件目录下的.qmail文件可以解决该问题。33.阐述Qmail控制文件特性,这些控制文件位于/var/qmail/control/目录下badmailfrom:拒绝接收邮件,可以防范垃圾邮件,每一个条目占一行。例如,要拒绝abc@sohu.com和hotmail.com域的邮件,格式如下:abc@sohu.com@hotmail.comconcurrenc