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 -o /etc/mail/')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(`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 中邮件检测频率最好设置得小一点。