2023年12月6日发(作者:)
搭建sendmail邮件服务器
搭建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/
配置反解 192.168.25数据文件 /var/named/chroot/var/named/ 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的主配置文件,该配置文件有效配置如下 其中标记部分是需要修改的或者去掉注释的,其他是系统默认就存在的。配置文件中每行都要顶格写并以dnl结尾,行开头的 dhl 表示注释该行
[root@pxy ~]# grep -v "^dnl" /etc/mail/
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/')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/')dnl
FEATURE(`virtusertable', `hash -o /etc/mail/')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
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(`omain')dnl
MAILER(smtp)dnl
MAILER(procmail)dnl
修改完这个文件后,sendmail 并不能识别,需要使用m4命令转换成可用的配置文件
m4 /etc/mail/ > /etc/mail/
假如命令不好使,需要检查我们的 m4包是否安装好了
3.3 修改配置文件 /etc/mail/access 该文件用于操纵能使用该邮件服务器 发送/接收的 域名,IP,网段.
192.168.25.1
192.168.25.252 sendmail 也不能直接的识别access 文件 需要使用makemap 命令来转换为一个hash数据库
makemap hash /etc/mail/ < /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 包安装有错误
这个配置文件的作用是用来接收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
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/ iptables 与selinux设置与包的安装
假如没上述问题,在/etc/services 找到相应的服务端口 去掉行首注释
3.9 使用mail 命令发送接收邮件
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 中邮件检测频率最好设置得小一点。


发布评论