
Linux电子邮件服务器
Linux 电子邮件服务器
引导
- 了解电子邮件系统作用和构成
- 了解DNS在电子邮件系统中的作用
- 熟悉MUA、MTA、MDA和MRA的功能
- 掌握电子邮件系统相关软件的安装和管控
- 熟悉电子邮件系统重要配置文件的重要配置项
- 掌握电子邮件系统的配置和邮件收发测试
1. 电子邮件系统基础
1.1 电子邮件工作流程
- 发送过程:
- 用户通过MUA(邮件客户端)发送邮件至SMTP服务器(Sendmail)
- SMTP服务器解析收件地址:
- 本地域邮件 → 存入本地邮箱
- 外部域邮件 → 转发至目标域SMTP服务器
- 接收过程:
- 用户通过MUA连接POP3/IMAP服务器(Dovecot)请求邮件
- Dovecot从邮件存储路径(
/var/mail/
)读取邮件 - MUA下载邮件至客户端
1.2 核心组件与协议
- MUA:邮件客户端(Foxmail/Outlook)
- MTA:邮件路由(Sendmail/Postfix)
- MDA:本地邮件投递(Procmail)
- MRA:邮件接收服务(Dovecot)
- 关键协议:
- SMTP(TCP 25):发送邮件
- POP3(TCP 110):下载邮件(服务器不保留副本)
- IMAP(TCP 143):在线管理邮件(服务器保留副本)
1.3 DNS与MX记录
- 邮件域(如
cqcetli.net
)需在DNS中配置MX记录指向邮件服务器 - 示例DNS记录:
@ IN MX 10 mail.cqcetli.net. mail IN A 192.168.11.254
2. 部署环境准备
2.1 服务器配置
- IP分配:
- DNS服务器:192.168.11.252
- 邮件服务器:192.168.11.254
- 域名:
cqcetli.net
- 关闭冲突服务:
systemctl mask postfix.service # 禁用默认Postfix服务
2.2 安装核心软件
# 安装Sendmail及相关工具
yum install -y sendmail m4 sendmail-cf
# 安装Dovecot(POP3/IMAP服务)
yum install -y dovecot
# 安装邮件客户端(测试用)
yum install -y mailx
3. 配置Sendmail(SMTP服务)
3.1 生成主配置文件
- 编辑模板文件
/etc/mail/sendmail.mc
:# 修改监听地址(非127.0.0.1) DAEMON_OPTIONS(`Port=smtp,Addr=192.168.11.254, Name=MTA')dnl # 设置本地域名 LOCAL_DOMAIN(`cqcetli.net')dnl
- 编译生成
sendmail.cf
:m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf
3.2 关键配置文件
- 本地域名 (
/etc/mail/local-host-names
):cqcetli.net mail.cqcetli.net
- 邮件中继 (
/etc/mail/access
):
生成数据库:cqcetli.net RELAY 192.168.11.0/24 RELAY
makemap hash /etc/mail/access.db < /etc/mail/access
- 邮件别名 (
/etc/aliases
):
更新数据库:# 群发功能:发给stud的邮件转发给多个用户 stud: zhangsan,lisi,wangwu
newaliases
3.3 创建邮件用户
groupadd stud
useradd -g stud -s /sbin/nologin zhangsan
useradd -g stud -s /sbin/nologin lisi
useradd -g stud -s /sbin/nologin wangwu
echo "123456" | passwd --stdin zhangsan # 设置密码
echo "123456" | passwd --stdin lisi
echo "123456" | passwd --stdin wangwu
3.4 启动服务
systemctl restart sendmail
systemctl enable sendmail
4. 配置Dovecot(POP3/IMAP服务)
4.1 修改主配置
/etc/dovecot/dovecot.conf
:protocols = imap pop3 lmtp # 启用协议 listen = 192.168.11.254, :: # 监听地址
- 允许明文认证(测试用):
echo "disable_plaintext_auth = no" >> /etc/dovecot/conf.d/10-auth.conf
4.2 设置邮件存储
编辑 /etc/dovecot/conf.d/10-mail.conf
:
mail_location = mbox:~/mail:INBOX=/var/mail/%u
4.3 修复权限问题
chmod 0600 /var/mail/* # 必须权限
systemctl restart dovecot
5. 客户端测试
5.1 Linux客户端(mailx)
- 配置
/etc/mail.rc
:set from=lisi@cqcetli.net set smtp=mail.cqcetli.net set smtp-auth-user=lisi@cqcetli.net set smtp-auth-password=123456
- 发送邮件:
echo "Hello" | mail -s "Test" zhangsan@cqcetli.net
- 接收邮件(用户zhangsan):
mail -u zhangsan
5.2 Windows客户端(Foxmail)
- 新建账户:
- 邮箱地址:
zhangsan@cqcetli.net
- 密码:
123456
- POP3服务器:
mail.cqcetli.net
(端口110) - SMTP服务器:
mail.cqcetli.net
(端口25)
- 邮箱地址:
- 测试收发:
- 发送邮件至
lisi@cqcetli.net
- 接收邮箱验证邮件
- 发送邮件至
6. 高级配置
6.1 SMTP身份验证(防垃圾邮件)
- 安装SASL:
yum install -y cyrus-sasl systemctl start saslauthd
- 修改
/etc/mail/sendmail.mc
:TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl DAEMON_OPTIONS(`Port=submission, Name=MSA, M=Ea')dnl # 启用认证端口
- 重新编译并重启:
m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf systemctl restart sendmail
6.2 虚拟域配置
- DNS添加虚拟域:
zone "long.com" IN { type master; file "long.com.zone"; }
/var/named/long.com.zone
:@ IN MX 10 mail.long.com. mail IN A 192.168.11.254
- Sendmail配置:
- 添加虚拟域到
/etc/mail/local-host-names
- 配置虚拟用户映射 (
/etc/mail/virtusertable
):user1@long.com user1@cqcetli.net
- 生成数据库:
makemap hash /etc/mail/virtusertable.db < /etc/mail/virtusertable
- 添加虚拟域到
关键日志与排查:
- Sendmail日志:
/var/log/maillog
- Dovecot日志:
/var/log/dovecot.log
- 测试命令:
telnet 192.168.11.254 25 # 测试SMTP telnet 192.168.11.254 110 # 测试POP3
通过以上步骤,即可完成基于Sendmail和Dovecot的电子邮件系统部署。
本文是原创文章,采用 CC BY-NC-ND 4.0 协议,完整转载请注明来自 牧之小岛-Allende
评论
匿名评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果