WenRou's Blog
sendmail无法发送邮件以及发送过慢等相关问题
2015-3-9 温柔哥


        今天在折腾阿里云的sendmail时候 ,邮件无法发送以及发送很慢的问题记录



折腾环境: Centos 6.5



邮件组件:sendmail







一、主机虽支持mail()函数,却无法发送邮件;

先使用以下命令检查是否已安装sendmail:


rpm –q sendmail


检测结果确实未安装该组件,果断安装:


yum install sendmail


等待安装完成后去检查了下php.ini配置,里面需要修改相关参数,直接:


vi /usr/local/php/etc/php.ini


找到 sendmail_path 所在行,发现是未启用,去掉前面的分号;(按i编辑模式),去掉分号,并将其改为:


sendmail_path = /usr/sbin/sendmail -t –i


这个有的默认就会是这个值。接着重启sendmail:


service sendmail restart







二:发送邮件过慢问题

上面的步骤已经可以正常发送邮件了,但是却发现发送过慢,此时,请检查hosts:


cat /etc/hosts


结果发现:


127.0.0.1               localhost.localdomain localhost


中并没有hostname,将其加入,查看主机名称直接命令:hostname ,这里加入主机名称为:testhost,则改过后的内容则为:


127.0.0.1               localhost.localdomain localhost testhost


接着,重启sendmail;



完成此步骤后还可以解决一个sendmail和sm-client启动慢的问题;








三、邮件发送方为:root@localhost.domain代发问题



方法一:修改hostname为个人域

方法二:伪装成user@domain.com



执行以下命令:


/etc/mail/sendmail.mc


打开后编辑文件,在末端加入以下内容:


MASQUERADE_AS(wenrouge.com)
dnl FEATURE(masquerade_envelope)
dnl FEATURE(masquerade_entire_domain)
dnl MASQUERADE_DOMAIN(wenrouge.com)dnl


将其中的   wenrouge.com  换成你自己的域名,然后保存。接着执行以下命令:


 m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf


而后,重启sendmail服务。








四:执行 m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf 时,报错:sendmail.mc:10: m4: cannot open `/usr/share/sendmail-cf/m4/cf.m4': No such file or directory,并且导致sendmail相关服务无法正常启动。



原因:未安装sendmail-cf

解决:执行以下命令:


yum install sendmail-cf


完成后问题解决。



五、再次执行 m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf  没有报错,给出了一个警告如下:



       m4:/etc/mail/sendmail.mc:181: Warning: end of file treated as newline



        解决办法: 你在程序代码sendmail.mc的最后面多敲一个空行,也就是说在右括号后打个回车键。



       因为gcc对你的源文件有要求,就是.mc  ,   .c    , .cpp    文件后面要有一个空行,不然就有一个warning.你也可以无视它。

发表评论:
昵称

邮件地址 (选填)

个人主页 (选填)

内容