/ 中存储网

Linux系统中sendmail发送失败的解决办法

2014-12-24 15:40:22 来源:中存储网

用linux 自带的sendmail 工具来作为smtp 服务器发送邮件,如何配置?
只需要修改三句话即可:

vi /etc/mail/sendmail.mc
1.
DAEMON_OPTIONS('Port=smtp,Addr=127.0.0.1,Name=MTA')dn1   ->   DAEMON_OPTIONS('Port=smtp,Addr=0.0.0.0,Name=MTA')dn1
作用:让所有的ip都能通过smtp端口使用我们的邮箱服务器了。
2.
dnl TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN’)dnl
 ->   TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN’)dnl 
3.
dnl define(`confAUTH_MECHANISMS’, `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN’)dnl
->   define(`confAUTH_MECHANISMS’, `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN’)dnl
作用: 去掉开头的dnl(dnl在这里是注释的意思),放行这些EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN等方式验证的邮件用户,无视access文件中的设置

用m4 重新生成一下 cf文件
cd /etc/mail
m4 sendmail.mc > sendmail.cf

**********************************************************

如果出现:sendmail.mc:10: m4: cannot open `/usr/share/sendmail-cf/m4/cf.m4': No such file or directory

说明需要安装sendmail-cf

yum install sendmail-cf

***********************************************************

搞定,重启一下 sendmail service
/etc/init.d/sendmail restart

问题汇总:
1. 配置好后在客户端总是提示说:
javax.mail.MessagingException: Could not connect to SMTP host
解决办法: 防火墙挡住了,MaCfee里面disable 邮件扫描和过滤等就可以

2. 客户端提示说:Relaying denied. IP name lookup failed [**.**.**.**]
/etc/mail/access
加入
IP地址  RELAY
重启service就可以了