sendmail邮件服务器详细配置讲解
Sendmail服务软件包:
sendmail-
sendmail-cf-
sendmail-devel-
sendmail-doc-
m4-
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
[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 "
type master;
file "
查看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
www A
@ MX 10 mail.rgb.com.
mail A
[root@localhost ~]# vim /var/named/
$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 www.rgb.com.
@ MX 10 mail.rgb.com.
100 PTR mail.rgb.com.
改 正、反区域文件的权限:
[root@localhost named]# chgrp named rgb.com.zone
重启named 服务,现在来测试MX记录:
[root@localhost named]# nslookup
> set q=mx //测试MX记录
> rgb.com //检测MX记录时这里一定要输入这个区域名,而不是主机名+区域名
Server:
Address:
rgb.com mail exchanger = 10 mail.rgb.com. //这里显示已成功
二、接下来就是安装sendmail包了: 默认已安装sendmail-
[root@localhost Packages]# rpm -ivh sendmail-cf-
warning: sendmail-cf-
[root@localhost Packages]# rpm -ivh dovecot-
warning: dovecot-
此时需要安装的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改为
dnl DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')dnl 或 DAEMON_OPTIONS(`Port=smtp,Addr=
第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:
或者
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
250-localhost.localdomain Hello localhost.localdomain [127.0.0.1], pleased to meet you
250-ENHANCEDSTATUSCODES
250-PIPELINING
250-8BITMIME
250-SIZE
250-DSN
250-ETRN
250-AUTH DIGEST-MD5 CRAM-MD5 LOGIN PLAIN //在AUTH后面有LOGIN就基本上可以在
250-DELIVERBY OutlookExpress上认证了
250 HELP
quit //这是退出界面的意思
注: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 <access //生成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。
延伸阅读: