资源描述
搭建sendmail邮件服务器
1 要求
有两台服务器192.169.25.1 192.169.25.252 ,分别在两台服务器上搭建sendmail服务器,在192.169.25.1上搭建DNS服务器,实现两台邮件服务器能相互发送邮件
2 步骤
2.1配置好两台服务器的主机名,不仅要使用hostname 命令修改,还要修改/etc/hosts 和/etc/sysconfig/network 中的主机名,切记两台sendmail的主机名不能一样,否则发送邮件会报错”loop back me (?MX problems) “ 因为邮件服务器不能是发送到其他服务器还是就在本地发送邮件。配置如图:
192.169.25.1
192.169.25.252
2.2在192.168.25.1上配置DNS服务器,需要注意的是每个MX记录都要有对应的A记录指向正确的服务器IP地址,一定要配置好反解,否则邮件有可能 邮件已经发送 但是接受方却没接收到。
/var/named/chroot/etc/named.conf
配置域 的数据文件 /var/named/chroot/var/named/.zone
配置域 的数据文件 /var/named/chroot/var/named/.zone
配置反解 192.168.25数据文件 /var/named/chroot/var/named/192.168.25.rev
3测试DNS服务器,测试必须成功,否则不能进行下一步的配置,如图的检测结果为成功
192.168.25.1
192.168.25.252
4 sendmail 的安装和配置
3.1安装包 yum install sendmail* -y
yum install m4 -y
yum install dovecot -y
yuminstall cyrus-sasl* -y
yum install procmail -y
3.2 修改配置文件/etc/mail/sendmail.mc ,这是sendmail的主配置文件,该配置文件有效配置如下 其中标记部分是需要修改的或去掉注释的,其他是系统默认就存在的。配置文件中每行都要顶格写并以dnl结尾,行开头的 dhl 表示注释该行
[root@pxy ~]# grep -v "^dnl" /etc/mail/sendmail.mc
divert(-1)dnl
include(`/usr/share/sendmail-cf/m4/cf.m4')dnl
VERSIONID(`setup for linux')dnl
OSTYPE(`linux')dnl
define(`confDEF_USER_ID', ``8:12'')dnl
define(`confTO_CONNECT', `1m')dnl
define(`confTRY_NULL_MX_LIST', `True')dnl
define(`confDONT_PROBE_INTERFACES', `True')dnl
define(`PROCMAIL_MAILER_PATH', `/usr/bin/procmail')dnl
define(`ALIAS_FILE', `/etc/aliases')dnl
define(`STATUS_FILE', `/var/log/mail/statistics')dnl
define(`UUCP_MAILER_MAX', `2000000')dnl
define(`confUSERDB_SPEC', `/etc/mail/userdb.db')dnl
define(`confPRIVACY_FLAGS', `authwarnings,novrfy,noexpn,restrictqrun')dnl
define(`confAUTH_OPTIONS', `A')dnl
TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl <------这两行是打开安全验证模块
define(`confTO_IDENT', `0')dnl
FEATURE(`no_default_msa', `dnl')dnl
FEATURE(`smrsh', `/usr/sbin/smrsh')dnl
FEATURE(`mailertable', `hash -o /etc/mail/mailertable.db')dnl
FEATURE(`virtusertable', `hash -o /etc/mail/virtusertable.db')dnl
FEATURE(redirect)dnl
FEATURE(always_add_domain)dnl
FEATURE(use_cw_file)dnl
FEATURE(use_ct_file)dnl
FEATURE(local_procmail, `', `procmail -t -Y -a $h -d $u')dnl
FEATURE(`access_db', `hash -T<TMPF> -o /etc/mail/access.db')dnl
FEATURE(`blacklist_recipients')dnl
EXPOSED_USER(`root')dnl
DAEMON_OPTIONS(`Port=smtp,Addr=0.0.0.0, Name=MTA')dnl <--设置为全网监听
DAEMON_OPTIONS(`Port=submission, Name=MSA, M=Ea')dnl
FEATURE(`accept_unresolvable_domains')dnl
LOCAL_DOMAIN(`localhost.localdomain')dnl
LOCAL_DOMAIN(`')dnl <--打开短域名支持 为完全域名
MAILER(smtp)dnl
MAILER(procmail)dnl
修改完这个文件后,sendmail 并不能识别,需要使用m4命令转换成可用的配置文件
m4 /etc/mail/sendmail.mc > /etc/mail/sendmial.cf
如果命令不好使,需要检查我们的 m4包是否安装好了
3.3 修改配置文件 /etc/mail/access 该文件用于控制能使用该邮件服务器 发送/接收的 域名,IP,网段.
192.168.25.1
192.168.25.252
sendmail 也不能直接的识别access 文件 需要使用makemap 命令来转换为一个hash数据库
makemap hash /etc/mail/access.db < /etc/mail/access
3.5 配置文件/etc/mail/local-host-names 通过设置该文件可以控制 本地上能向外发送邮件的域
192.168.25.1
[root@pxy mail]# cat local-host-names
# local-host-names - include all aliases for your machine here.
.
192.168.25.252
[root@ehome mail]# cat local-host-names
# local-host-names - include all aliases for your machine here.
.
sendmail 能直接识别该文件
3.6 修改配置文件/etc/dovecot.conf
如果没有则说明 dovecot 包安装有错误
这个配置文件的作用是用来接收pop3协议的邮件,因为sendmail 不支持pop3协议
找到以下行 去掉注释后就打开了这些协议的支持
protocols = imap imaps pop3 pop3s
3.7 重启服务
开启服务前要 停掉iptables 和 selinux
service iptables stop
setenforce 0
开启服务
service sendmail restart
service saslauthd restart
service dovecot restart
3.8 检测
使用namp <IP> 命令查看
25/tcp open smtp端口
110/tcp open pop3
111/tcp open rpcbind
143/tcp open imap
993/tcp open imaps
995/tcp open pop3s
如果没有打开就要/etc/dovecot.conf iptables 和selinux设置和包的安装
如果没上述问题,在/etc/services 找到相应的服务端口 去掉行首注释
3.9 使用mail 命令发送接收邮件
3.9.1 发送 echo “hello” | mail -s “tatil” we@ (要保证用户是存在的)
3.9.2 接收 su到收件者 执行 mail 或者 cat /var/log/mail/we
3.9.3 查看发送队列 mailq 查看邮件状态 mailstats
3.9.4 邮件日志 /var/log/maillog
3.10 使用thunderbird 发送接收邮件
在thunderbird 设置时有一点要注意
用户设置-->安全设置 要和 发送服务器smtp-->安全及认证一致,否则会报
“kerberos/gssapi 检测失败的错误“
至此 2台简单的邮件服务器配置完成,接下来分别在两台服务器上创建用户 相互发送测试通过。
总结:
sendmail 的设置相对简单,按照配置流程来基本不会有问题,问题大多出在sendmail对dns的支持。Sendmail 貌似很依赖完整的主机名或域名,在配置中使用到他们的时候尽量写完整。
注意主机名的问题:主机域名最好和dns配置的域名相同 两台sendmail的主机名不要重名,否则会报 "look back me (?MX problems)” 的错。
DNS 反解要写上
/etc/sysconfig/sendmail 中邮件检测频率最好设置得小一点。
展开阅读全文