资源描述
A、安装相应软件
邮件服务器需要安装以下软件
0.查看是否已经安装
rpm -qa | grep sendmail
rpm -qa | grep m4
rpm -qa | grep dovecot
rpm -qa | grep cyrus
1.安装邮件服务器
yum install sendmail sendmail-cf sendmail-doc sendmail-devel
sendmail主程序包
sendmail-cf宏文件包
sendmail-doc说明文档 /usr/share/sendmail-cf/README
sendmail-devel服务器开发工具
yum install m4
宏处理过滤
2.安装pop3/imap服务
yum install dovecot
3.安装用户认证
yum install cyrus-sasl cyrus-sasl-plain cyrus-sasl-lib cyrus-sasl-md5
或安装所有组件
yum install cyrus-sasl cyrus-sasl-*
4.安装邮件过滤器SpamAssassin
yum install spamassassin
chkconfig spamassassin on
service spamassassin restart
B、配置服务
B.1、配置sendmail.cf
sendmail.cf是sendmail的核心配置文件,位于/etc/mail/sendmai.cf,里面有大量的宏语言,一般直接编辑的难度很大,所以我们需要编辑另外一个配置文件sendmail.mc,然后使用m4命令生成sendmail.cf文件。
1.编辑sendmail.mc
vi /etc/mail/sendmail.mc
1.1.SendMail在默认只侦听127.0.0.1,此处要修改为侦听指定网络接
#DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')dnl
找到以上行,更改为下面的行
DAEMON_OPTIONS(`Port=smtp,Addr=0.0.0.0, Name=MTA')dnl
1.2.设置SMTP的用户认证
TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
找到以上行,把上面两行前面的dnl给删除掉,让这两行的配置生效,这两行的作用是激活邮件服务器的认证功能。
1.3.设本地域名为
找到以下行
LOCAL_DOMAIN(`')dnl
1.4.使以下配置生效
DAEMON_OPTIONS(`Port=submission,Name=MSA,M=Ea')dnl
2.生成sendmail.cf
因为sendmail.cf的配置文件全部是用宏语言来编写的,一般人很难读懂,所以我们上步骤中的配置是为了最终体现在sendmail.cf文件中,在这里要用到m4命令。
cd /etc/mail/
m4 sendmail.mc > sendmail.cf
3.重启sendmail和saslauthd服务
service sendmail restart
service saslauthd restart
4.开机启动sendmail和saslauthd服务
chkconfig sendmail on
chkconfig saslauthd on
B.2、修改local-host-names文件
local-host-names用来收发邮件的主机别名。举个例子吧:假设邮件服务器有两个主机名称,分别是和,而只想收到发给的信件,发给的邮件则拒收,那么需要添加到/etc/mail/local-host-names文件中,即可实现。
vi /etc/mail/local-host-names
# local-host-names - include all aliases for your machine here.
添加这个字段
B.3、修改access文件
1.配置access
vi /etc/mail/access
允许所有网段访问并转发,
RELAY 表示允许转发的
OK 表示无条件转发
DISCARD:拒绝
REJECT 表示拒绝并发退信通知
在原有基础上添加以下内容
#Connect:0.0.0.0 RELAY
Connect: RELAY
Connect:192.168.1 RELAY
2.编译生成访问控制文件
makemap hash access.db<access
B.4、修改aliases文件
定义邮箱别名
B.5、修改saslauthd文件
SMTP认证功能
vi /etc/sysconfig/saslauthd
把MECH=pam改为MECH=shadow
B.6、配置dovecot
为了保证客户端能够使用加密的形式接受邮件,还需要为dovecot添加相应的密钥和证书,启动pop3s或者IMAPS的支持。
1.生成私钥和自签名证书
cd /etc/pki/tls/certs
make -C /etc/pki/tls/certs/ dovecot.pem
2.修改dovecot.conf配置文件
vi /etc/dovecot.conf
2.1.找到以下配置
protocols=imap imaps pop3 pop3s
删除前面的#,使其生效。
2.2.找到以下配置
ssl_cert_file = /etc/pki/tls/certs/dovecot.pem
ssl_key_file = /etc/pki/tls/certs/dovecot.pem
改成以上形式
3.重启dovecot服务
service dovecot restart
4.开机启动dovecot服务
chkconfig dovecot on
B.7、配置procmail
现在SpamAssassin安装好了,如何告诉sendmail调用SpamAssassin扫描邮件呢?这里使用procmail来处理。
vi /etc/procmailrc
添加以下内容
LOGFILE=/var/log/procmail.log
MAILDIR=/var/mail
VERBOSE=off
PATH=/bin:/sbin:/usr/bin:/usr/sbin/:/usr/local/bin:/usr/local/sbin
LOGFILE=/var/log/procmail.log
:0fw: spamassassin.lock
* < 100000
| /usr/bin/spamassassin
:0:
* ^X-Spam-Flag: Yes
$HOME/mail/spam-mail
C、测试邮箱
1.添加邮件用户
groupadd mailgroup
adduser -g mailgroup -s /sbin/nologin mail1
adduser -g mailgroup -s /sbin/nologin mail2
这样添加的用户名就没有了shell,只能收发信而不能登录到服务器运行其他程序
2.本地测试
用CentOS自带的Evolution进行测试
点击编辑->首选项,点击添加按钮,邮件地址输入mail1@,接受服务器选POP或者IMAP,服务器地址输入本机IP地址,发送服务器选Sendmail,也可以选择SMTP,SMTP服务器输入本机IP地址。
设置完成,可以发邮件测试。
3.局域网内测试
用Windows下 Outlook进行测试
点击工具->帐号设置,邮箱地址输入mail2@,接受邮件服务器输入邮件服务器IP地址,发送服务器只能选SMTP,发送邮件服务器输入邮件服务器IP地址。设置用户名密码。
设置完成,可以发邮件测试。
展开阅读全文