sendmail邮件服务器详细配置讲解
sendmail 邮件服务器详细配置讲解Sendmail 服务软件包:sendmail-8.13.8-2.el5.i386.rpm //sendmail服务的主程序包sendmail-c
sendmail 邮件服务器详细配置讲解
Sendmail 服务软件包:
sendmail-8.13.8-2.el5.i386.rpm //sendmail服务的主程序包
sendmail-cf-8.13.8-2.el5.i386.rpm //sendmail宏文件包
sendmail-devel-8.13.8-2.el5.i386.rpm //sendmail服务器开发工具软件包
sendmail-doc-8.13.8-2.el5.i386.rpm //sendmail服务器的说明文档
m4-1.4.5-3.el5.1.i386.rpm //宏处理过虑软件包
dovecot-1.0-1.2.rc15.el5.i386.rpm //接收邮件软件包,安装时需要注意安装顺序
Sendmail 相关配置文档:
/etc/mail/sendmail.cf //sendmail核心配置文件。
/etc/mail/sendmail.mc //模板文件,定义了操作系统类型、文件位置、请求特征及邮件发
送工 具、用户列表等信息,通过编辑此文件后再使用m4工具将
结果导入sendmail.cf 完成配置sendmail 核心配置文件,降低配置
复杂度。
/etc/mail/local-host-name //本地主机名和域名的列表,决定收到的邮件是本地邮件,还是远
程邮件,然后决定是本地投送还是转发
/etc/mail/access //完成中继转发功能,即加入允许访问的域名
/etc/mail access.db //是通过access 文件生成的数据库
/etc/aliases.db //用来定义邮箱别名,位于/etc/mail/aliases.db
virtusertable.db //用来设置虚拟账户,位于/etc/mail/virtusertable.db /etc/mail/sendmail.cw //当一个主机有多个域名时,在此加入这些域名 /var/spool/mqueue //邮件队列临时存放的目录
/var/mail //存放所有收到的邮件
/var/log/maillog //日志文件
搭建Sendmail 服务器流程:
(*)配置好DNS 下的邮件交换器记录 *邮件交换器记录必需要添加,不然不能发送邮件
(1)配置sendmail.mc 文件
(2)使用m4工具将sendmail.mc 文件导入sendmail.cf 文件
(3)配置local-host-names 文件
(4)建立用户帐号
(5)重新启动服务使配置生效
,现在开始安装sendmail 服务
一、首先安装好DNS 服务器
[root@localhost ~]# vim /etc/resolv.conf //编辑DNS 地址
nameserver 10.6.7.100
[root@localhost ~]# vim /etc/named.conf //编辑配置文件
options {
listen-on port 53 { any; }; listen-on-v6 port 53 { any ; }; allow-query { any; };
zone "." IN {
type hint; file "named.ca";
};
zone "rgb.com " IN {
type master;
file "rgb.com.zone ";
};
zone "7.6.10.in-addr.arpa " IN { type master ;
file "10.6.7.arpa ";
查看DNS 正向反向区域里面是否添加了MX 邮件交换记录: [root@localhost ~]# vim /var/named/rgb.com.zone $TTL 1D
@ IN SOA ns.rgb.com. root.rgb.com. (
0 serial 1D refresh 1H retry 1W expire
3H ) minimum
NS ns.rgb.com.
ns A 10.6.7.100 www A 10.6.7.100 @ MX 10 mail.rgb.com. mail A 10.6.7.100
[root@localhost ~]# vim /var/named/10.6.7.arpa $TTL 1D
@ IN SOA ns.rgb.com. root.rgb.com (
0 serial 1D refresh 1H retry
,1W expire
3H ) minimum
NS ns.rgb.com.
100 PTR ns.rgb.com.
100 PTR
@ MX 10 mail.rgb.com.
100 PTR mail.rgb.com.
改 正、反区域文件的权限:
[root@localhost named]# chgrp named rgb.com.zone 10.6.7.arpa
重启named 服务,现在来测试MX 记录:
[root@localhost named]# nslookup
> set q=mx //测试MX 记录
> rgb.com //检测MX 记录时这里一定要输入这个区域名,而不是主机名 区域名 Server: 10.6.7.100
Address: 10.6.7.100#53
rgb.com mail exchanger = 10 mail.rgb.com. //这里显示已成功
二、接下来就是安装sendmail 包了: 默认已安装sendmail-8.13.8-2.el5及m4-1.4.5-3.el5.1包,我们只需要安装sendmail-cf-8.13.8-2.el5宏文件包和dovecot-1.0.5-1.fc8.i386.rpm 接收邮件软件包就可以了。
[root@localhost Packages]# rpm -ivh sendmail-cf-8.14.1-4.2.fc8.i386.rpm
warning: sendmail-cf-8.14.1-4.2.fc8.i386.rpm: Header V3 DSA signature: NOKEY, key ID 4f2a6fd2 Preparing... ########################################### [100] 1:sendmail-cf ########################################### [100]
[root@localhost Packages]# rpm -ivh dovecot-1.0.5-1.fc8.i386.rpm
warning: dovecot-1.0.5-1.fc8.i386.rpm: Header V3 DSA signature: NOKEY, key ID 4f2a6fd2 Preparing... ########################################### [100] 1:dovecot ########################################### [100]
此时需要安装的rpm 包已装完,现在就差配置了,在配置之前,最好是对/etc/mail下面这几个文件备个份: sendmail.mc sendmail.cf
[root@localhost mail]# cp sendmail.mc sendmail.mc.bak
[root@localhost mail]# cp sendmail.cf sendmail.cf.bak
三、开启sendmail 认证功能
接下来就开始编辑sendmail.mc 发信认证这个文件了,打开这个文件编辑如下:
[root@localhost ~]#vim /etc/mail/sendmail.mc
将52-53两行配置文件前面的dnl 去掉:
TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
#注意:TRUST_AUTH_METH define 前面不要留有空格
第116行将smtp 侦听范围从127.0.0.1改为0.0.0.0或将这行前面加dnl 注释掉。
dnl DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')dnl 或
,DAEMON_OPTIONS(`Port=smtp,Addr=0.0.0.0, Name=MTA')dnl
第155行:LOCAL_DOMAIN(``localhost.localdomain ')dnl 修改成如下自己域:
LOCAL_DOMAIN(`rgb.com')dnl //这里的是本地邮箱的域名
四、更改访问数据库文件,再来修改access 配置文件,把想要接收和发送的网段添加到最后面,如下:
[root@localhost ~]#vim /etc/mail/access
# By default we allow relaying from localhost...
Connect:localhost.localdomain RELAY
Connect:localhost RELAY
Connect:127.0.0.1 RELAY
Connect:10.6.7.0 RELAY //这是你要接收和发送的网段 或者
Connect:rgb.com RELAY //这是你接收和发送的域名
五、现在再来添加sendmail 服务器邮箱的域名
[root@localhost mail]# vim local-host-names
在里面添加邮箱域名,
rgb.com /例:用户名@域名 qqq@rgb.com
如果想用IP 地址接收邮件,则需要在该文件中写入IP
六、再来修改接收邮件服务的这个配置文件,如下:
[root@localhost mail]# vim /etc/dovecot.conf
将第20行前面的#号去掉
protocols = imap imaps pop3 pop3s //没有这行utlookExpress 只能发送不能接收邮件 到这一步所有的配置文件都修改好了。
七、现在就要开始用运行M4程序,重新生成sendmail.cf 文件,如下:
[root@localhost mail]# m4 sendmail.mc > sendmail.cf
八、再用makemap 命令进行数据库更新,如下:
[root@localhost mail]# makemap hash access.db < access
到了现在基本上都配置完成了,现在就要添加用户了
#useradd qqq
#useradd www
#passwd qqq
#passwd www
【修改/etc/dovecot.conf pop3服务文件
#vi /etc/dovecot.conf
把#protocols=IMAP IMAPS POP3 POP3S 这行改成
去掉“ #”注释符号
,protocols=POP3
这行就配置了POP3服务的功能】
九、用户添加了现在就可以启动邮件服务了,默认sendmail 服务已启动,dovecot 服务没有启动,启动如下
#service sendmail restart
#service dovecot restart
【邮件测试。重启所有的服务(目的是确保服务都启动了)
#service named restart (DNS 启动)
#service dovecot restart (pop3服务启动)
#service sendmail restart (邮件服务启动)】
十、可以通过telnet 本机IP 25来验证sendmail 服务是否已经正常启动,若登陆成功,则说明sendmail 服务已经成功启动。
[root@localhost mail]# telnet localhost 25
【开始测试端口 #telnet localhost 25】
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 localhost.localdomain ESMTP Sendmail 8.14.1/8.14.1; Wed, 2 Nov 2011 01:22:44 0800 ehlo localhost //这是要输入的命令
,注:DNS 中邮件交换器记录必需要添加,不然不能接收邮件
在客户端打开outlook ,配置时要注意下面这一对话框:

【】
常用知识:
创建邮件列表别名:
# vim /etc/aliases
最后一行加入:
Laoban: qqq,www 给laoban 发邮件,qqq,www 这两个用户可以收到邮件 ltocc: qqq 给ltocc 发邮件,qqq 可以收到邮件
#newaliases 使别名生效,或者重启动service sendmail restart服务使别名生效 通过这种方法可以达到邮件群发的目的 Relay 转发
#vim /etc/mail/access
通常情况下,Sendmail 不会为邮件服务Relay 信息,这样可以防止一些有恶意的人利用别人的邮件服务器乱发邮件。缺省情况下,Sendmail 关闭了Relay 功能。如果你要为别的服务器邮件,可以进行如下设置——在access 文件中加入要为其Relay 信件的机器,格式为: hostname RELAY
ipaddress RELAY
如果要为一个域内多个机器Relay 信件,则可以在/etc/mail/access文件中直接加入其子网IP 或域名,如下所示:
access 文件内容:
domainname.com RELAY(允许为域domainname 的所有计算机relay 邮件)
localhost RELAY
192.168.1.0 RELAY (为192.168.1.0此网内所有机器relay 邮件)
此文件惟一决定了哪些机器、哪个域可以使用邮件服务器转发邮件。
根据自己需要修改完成后,生成数据库文件:
#makemap hash access.db service sendmail restart 建立邮箱 例如:将邮箱目录放在/boot下的mail1,mail2目录 useradd mail1 -d /boot/mail1 useradd mail2 -d /boot/mail2 passwd mail1 passwd mail2 修改转发和返回时间, 最大邮件kb, 连接的最长时间, 修改sendmail.cf (/etc/mail/sendmail.cf) 前提用M4重新生成sendmail.cf 文件后再改 修改如下: O Timeout.connect=1m 设置等待连接的最长时间为1分钟,在318行 O Timeout.queuereturn=5d 335行 O Timeout.queuewarn=3h 设定服务器为邮件转发时间为3h(如果信寄不出去, 系统会寄一封信通知使用者, 继续5d) 340行 设置用户邮件的大小限制(187行) 在sendmail.mc 中没有这个选项,这个要在sendmail.cf 中设置 前提是先把sendmail.mc 生成sendmail.cf 后再在sendmail.cf 中设置,不然会替换掉 vim /etc/mail/sendmail.cf # maximum message size #O MaxMessageSize=0 默认不限制,以字节为单位 我们可以设置成邮件最大不超过20MB ,Relay O MaxMessageSize=20971520 //20MB=20*1024KM*1024b 意思为每次收发邮件最大为20MB ,任何超过这个值的邮件将被拒绝。 O MaxMessageSize = 1048576 这是按字节算的1024字节=1K 1024K=1M 意为每次收发邮件最大为1MB ,任何超过这个值的邮件将被拒绝。 利用quota 限制用户邮箱大小 先修改fstab 文件(/etc/fstab)使目录开启quota 功能,如对/var做quota 将LABEL=/var /var ext3 defaults 1 2 修改后 LABEL=/var /var ext3 defaults,usrquota,grpquota 1 2 重启系统后才能开启quota 功能 命令: quotacheck -avug !生成aquota.user 和aquota.group quotaon -avug !开启quota 功能 修改用户限制 edquota -u mail1 # mail1是要设置磁盘配额的用户 修改里面的soft,hard(soft为警戒线,hard 为最大) Disk quotas for user rgb (uid 500): Filesystem blocks soft hard inodes soft hard /dev/sda2 4 0 20000 1 0 0 这里mail 用户修改为hard(20000),意思是容量不能超过20M 。