1、/var/spool/clientmqueue 爆满问题
当你使用简单的sendmail发邮件的时候,或者系统默认要发一些邮件(比如cron发的邮件)的时候,首先会把邮件拷贝到这个目录里,然后等待MTA(mail transfer agent) 来处理,MTA做的事情通常是把这个目录中的邮件弄到/var/spool/mqueue里,然后再发送到真正的目的地。出现/var/spool/clientmqueue/非常大的情况通常因为没有合适的MTA发送邮件,就都积累在这里了,假如这里的邮件并不是你需要的,比如是系统默认发的每分钟跑一次的什么什么cron的信,你可以简单的删掉他们。当然,文件多了一些,直接rm -f *,系统可能会说argument too long什么的,没有关系,find /var/spool/clientmqueue/ -type f �Cdelete或者find /var/spool/clientmqueue/ -type f -exec rm {} \+可能对你有帮助,当然这两条命令要求find的版本比较新。如果不幸你的版本比较低,可以尝试find /var/spool/clientmqueue/ -type f -exec rm {} \;
2、can not chdir(/var/spool/clientmqueue/): Permission denied
错误报警:
而对/var/spool/clientmqueue查看权限:
[root@xx_xx_xx_xx mail]# ll /var/spool/
total 72
drwxr-xr-x 2 root root 4096 Jul 3 2010 anacron
drwx------ 3 daemon daemon 4096 Jul 3 2010 at
drwxrwx--- 2 smmsp smmsp 4096 Nov 26 14:34 clientmqueue
drwxr-x--- 2 root mail 4096 Nov 26 14:34 mqueue
检查下来,clientmqueue和mqueue目录的权限都没问题,然后检查sendmail的权限问题
[root@xx_xx_xx_xx mail]# ll /usr/sbin/sendmail
lrwxrwxrwx 1 mhfs root 21 Jul 3 2010 /usr/sbin/sendmail -> /etc/alternatives/mta
[root@xx_xx_xx_xx mail]# ll /etc/alternatives/mta
lrwxrwxrwx 1 root root 27 Jul 3 2010 /etc/alternatives/mta -> /usr/sbin/sendmail.sendmail
[root@xx_xx_xx_xx mail]# ll /usr/sbin/sendmail.sendmail
-rwxr-xr-x 1 root root 806460 Nov 28 2006 /usr/sbin/sendmail.sendmail
/usr/sbin/sendmail.sendmail权限不正确,进行如下修改:
chown root.smmsp /usr/sbin/sendmail.sendmail
chmod g+s /usr/sbin/sendmail.sendmail
/etc/init.d/sendmail stop
/etc/init.d/sendmail start
再尝试发邮件,搞定。
3、My unqualified host name (c1) unknown; sleeping for retry
/var/log/maillog
启动sendmail服务时,长时间无法启动,而且mail日志会有如下输出:
由于你没有用到域名,所以/etc/mail/sendmail.cf中“Dj$w.hpaps” 这一行应该注释掉,否则系统sendmail时会把hpaps 作为域名加到主机名后组成完整的长名 hpaps.hpaps来访问,系统当然就会报“unable to qualify my own domain name (hpaps)” ,因为此时根据你的配置,hpaps还是你的域名,系统肯定找不到
Dj$w就是为了没有域名的时候,在Dj$w.后面加上自己的域名用的!
所以,若不用FQDN域名(一般用/etc/hosts)做名字解析的时候,要把这行的注释去掉!
同时发邮件时出现DSN:Service unavailable报警:
解决办法如下二种:
(1)、修改/etc/hosts:
192.168.166.67 192_168_166_67.localdomain 192_168_166_67
并且修改/etc/resolv.conf,注释掉search localdomain
(2)、修改/etc/resolv.conf,指定搜索的域名:search localdomain,而/etc/hosts配置文件中无需添加具体解析。
操作完成后重启sendmail,即可正常发送邮件。