CentOS/RedHat的Sendmail发信

sendmail是Linux下优秀的邮件系统。在不做任何设定的情况下,sendmail发出邮件的邮箱源地址形如[email protected]ldo,这种地址几乎会被所有的邮箱认定为SPAM(垃圾邮件)或直接拒收。

1、 Sendmail安装

在CentOS下,sendmail一般默认是随操作系统一起安装的。如果安装系统时没有安装sendmail服务,手动安装sendmail也很简单:

  1. yum install -y sendmail
  2. yum install -y sendmail-cf
  3. #Redhat需配yum源

2、 Senmail的SMTP认证配置(不需要认证的可忽略此步)

首先确认saslauthd服务是否安装或启动。

安装saslauthd服务:

  1. yum install -y saslauthd

启动saslauthd服务:

  1. service saslauthd start

(1) 配置Senmail的SMTP认证

  1. dnl TRUST_AUTH_MECH(EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
  2. dnl define(confAUTH_MECHANISMS’, EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
  3. #将上面两行的行首和行尾的dnl去掉

(2) 设置Sendmail服务的网络访问权限

  1. vi /etc/mail/sendmail.mc
引用
DAEMON_OPTIONS(Port=smtp,Addr=127.0.0.1, Name=MTA’)dnl

将127.0.0.1改为0.0.0.0,意思是任何主机都可以访问Sendmail服务。如果仅让某一个网段能够访问到Sendmail服务,将127.0.0.1改为形如192.168.1.0/24的一个特定网段地址。   如果需要外部访问用这台服务器发邮件,就需要将Addr配置成0.0.0.0。如果不需要请忽略本步骤。

3、 生成Sendmail配置文件

Sendmail的配置文件由m4来生成,m4工具在sendmail-cf包中。如果系统无法识别m4命令,说明sendmail-cf软件包没有安装。

生成Sendmail的配置文件:

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

4、 Sendmail邮件域名配置

配置sendmail使用合法的域名分两步,修改sendmail的配置文件和添加域名MX记录。

sendmail可以直接使用 “-r [email protected]” 参数来以任意源地址发送邮件,但目前主流的邮箱都会将源地址和反向解析IP进行比较,如果解析不到或是解析的IP不匹配,轻则将邮件直接归为SPAM,严重的就直接拒绝接收。

MX记录(Mail Exchanger Record)主要是接收邮件时使用,即当投递一封新邮件时,会查询收件人域名的MX记录,然后通过MX记录得到的IP地址进行投递。同时邮件厂商在接收邮件的时候也会将源地址和MX记录进行比较,作为垃圾邮件的判断标准之一。

(1) 将域名加入到local-host-names文件

# vi /etc/mail/local-host-names,添加

  1. aliyun.com

(2) 修改submit.cf文件

# vi /etc/mail/submit.cf,找到行 #Dj$w.Foo.COM,修改为

  1. Djaliyun.com

至此,sendmail邮件命名配置完毕,重启sendmail使配置生效

  1. service sendmail restart

如果邮件能成功发出,证明你已经完成了上面步骤,但细心的朋友可能会发现,发出的邮件被过滤掉了。这是怎么回事哩?

主要就是因为你所配置的域名的MX DNS记录值并未指向发出邮件的主机的IP,从而被拒绝。解决方法很简单,去DNS解析里把MX值指向正确即可。

发表评论