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 。

标签: