/ 中存储网

Linux sendmail基础配置简单搞定

2014-11-15 00:25:30 来源:中存储网

Sendmail邮件配置 安装包(sendmail-8.13.8-2.el5.i386.rpm,sendmail-cf-8.13.8-2.el5.i386.rpm,m4-1.4.5-3.el5.1.i386.rpm)
由于sendmail的真正配置文件作者是用一种生僻的语言写的,号称天书,没几个人看得懂,所以我们配置的时候是配置的/etc/mail/sendmail.mc,这个比较好懂,每次修改后都要用m4 sendmail.mc > sendmail.cf将修改的内容写到天书里面去。
/etc/mail下面的文件
[root@Server mail]# ls
access       domaintable.db    mailertable     sendmail.cf      submit.cf      trusted-users access.db    helpfile        mailertable.db  sendmail.cf.bak  submit.cf.bak  virtusertable domaintable  local-host-names  Makefile        sendmail.mc      submit.mc      virtusertable.db
首先修改local-host-names
vim local-host-names
# local-host-names - include all aliases for your machine here.
mail.chinastor.cn #让sendmail知道哪些邮件属于本地域的邮件,这里添加了@mail.chinastor.cn
chinastor.cn      #和@chinastor.cn,凡是邮件后缀是这2个的都认为是本地邮件。
修改配置文件sendmail.mc #这个只是比较易懂的配置文件,修改以后必须用m4生成sendmail.mc才生效
首先先来修改服务器smtp的监听范围,就是来自哪个地方的邮件sendmail会帮他发送。默认是监听本机的,所以在客户端发邮件不成功。
修改之前我们应该备份一下配置文件,以免修改乱了还可以还原回来。
cp -avp /etc/mail/sendmail.mc /etc/mail/sendmail.mc.bak
cp -avp /etc/mail/sendmail.cf /etc/mail/sendmail.cf.bak
修改的地方:
112 dnl # The following causes sendmail to only listen on the IPv4 loopback address
113 dnl # 127.0.0.1 and not on any other network devices. Remove the loopback
114 dnl # address restriction to accept email from the internet or intranet.
115 dnl #
116 DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')dnl
将Addr=127.0.0.1改为0.0.0.0即可
m4 sendmail.mc > sendmail.cf
service sendmail restart  #如果启动很慢,vim /etc/hosts文件,加入
   #192.168.x.x mail.chinastor.cn Server(DNS里面
 设置的也加进来) #是啥意思还没完全搞懂
现在默认本地用户就可以发信了,还不能用pop收信,要安装dovecot这个组件才能启用pop3收信。
那么往外域发送邮件呢?下面就来进行邮件中继的设置
2台电脑之间发生的邮件收发不会产生中继,涉及到3台电脑的就会有中继发生,最常见的就是内部用户通过本地的邮件服务器外发给外域的用户。
有2个方法:
1、修改/etc/mail/access文件,
# Check the /usr/share/doc/sendmail/README.cf file for a description
# of the format of this file. (search for access_db in that file)
# The /usr/share/doc/sendmail/README.cf is part of the sendmail-doc
# package.
#
# by default we allow relaying from localhost...
Connect:localhost.localdomain           RELAY
Connect:localhost                       RELAY
Connect:127.0.0.1                       RELAY
(默认只对本机发送的邮件中继,在下面添加中继)
192.168.2                RELAY  #192.168.2.0/24网段可以中继
2、启用smtp身份认证,凡是属于我服务器的合法用户都中继
修改/etc/mail/sendmail.mc
……
50 dnl # Please remember that saslauthd needs to be running for AUTH.
51 dnl #
52 dnl TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
53 dnl define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
……
红色2行就是和smtp认证有关的,取消前面的dnl注释,不要留空格,就开启了smtp认证功能。
m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf
service sendmail restart
service saslauthd restart #和认证相关的服务,不开这个就启用不了smtp身份认证。
开启认证以后客户端的MUA要在服务器一项上设置我的smtp服务器需要身份验证,但是如果是第一种方法就不需要了。
邮件别名:可以定义一个或多个用户的别名,发送的时候收件人为设定的别名就可以了
修改/etc/aliases  #启用转发,发给某个用户的邮件自动转发到指定的另外一个用户
# Person who should get root's mail
#root:          marc
rsb:           tom,mike #这里rsb这个是没有的用户
修改后执行newaliases #不执行发送的时候会拒绝这个收件人
启动pop3
这个最简单,直接安装dovecot,然后service dovecot start 就可以了,什么都不用设置。