当前位置: 首页 > news >正文

Linux系统Email服务搭建完整文档

系统环境:CentOS 7
服务器IP:172.10.192.64
邮件域名:mail.test.com
组件:postfix(发邮件SMTP) + dovecot(收邮件POP3) + cyrus‑sasl(身份认证)

一、准备工作

1. 网络配置(配置静态IP)

  1. 使用root用户登录系统
  2. 进入网卡配置目录
cd /etc/sysconfig/network-scripts/
  1. 查看网卡配置文件,排除回环网卡lo
ll | grep ifcfg | grep -v lo

示例输出网卡:ifcfg‑ens192ifcfg‑ens195

  1. 编辑网卡配置文件(以ens192为例)
vim ifcfg-ens192

修改/追加如下配置项

ONBOOT=yes
BOOTPROTO=static
IPADDR=172.10.192.64
NETMASK=255.255.255.0
GATEWAY=172.10.192.2
DNS1=114.114.114.114
  1. 重启网卡使网络配置生效
systemctl restart network

2. 切换YUM源

将CentOS7默认YUM源替换为阿里云国内源,提升软件包下载速度。

3. 修改主机名(邮件服务器域名:mail.test.com)

  1. 修改hostname文件
vim /etc/hostname

写入内容

mail.test.com
  1. 修改hosts解析
vim /etc/hosts

追加

172.10.192.64 mail.test.com
  1. 修改network配置
vim /etc/sysconfig/network

写入

HOSTNAME=mail.test.com
  1. hostnamectl命令即时生效主机名
hostnamectl hostname mail.test.com

4. 防火墙处理

二选一:直接关闭防火墙 或者 放行邮件服务端口

方式1:关闭并禁用防火墙

systemctl stop firewalld
systemctl disable firewalld

方式2:防火墙放行邮件端口

邮件服务端口说明:

  • 25/tcp:SMTP发送邮件
  • 110/tcp:POP3接收邮件
firewall-cmd --zone=public --add-port=25/tcp --permanent
firewall-cmd --zone=public --add-port=110/tcp --permanent
firewall-cmd --reload
# 查看已放行端口
firewall-cmd --list-ports

5. 安装邮件相关服务组件

yum -y install postfix dovecot cyrus-sasl

二、Postfix配置(SMTP邮件发送服务)

主配置文件:/etc/postfix/main.cf

vim /etc/postfix/main.cf

修改/取消注释、新增以下参数,注意等号两边保留空格

#邮件服务器主机名
myhostname = mail.test.com
#邮件域名
mydomain = test.com
#对外发邮件的邮件后缀
myorigin = $mydomain
#监听本机所有网卡
inet_interfaces = all
#禁止接收外部未知域名邮件
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
#允许本地网段
mynetworks = 127.0.0.0/8,172.10.192.0/24
#开启sasl认证,防止匿名转发
smtpd_sasl_auth_enable = yes
smtpd_sasl_type = cyrus
smtpd_sasl_path = smtpd
broken_sasl_auth_clients = yes
smtpd_recipient_restrictions = permit_mynetworks,permit_sasl_authenticated,reject_unauth_destination

校验postfix配置语法,无报错代表配置正确

postfix check

三、Dovecot配置(POP3邮件接收服务)

3.1 修改dovecot主配置

vim /etc/dovecot/dovecot.conf

修改

#监听所有协议
protocols = pop3

3.2 修改pop3协议配置

vim /etc/dovecot/conf.d/10-mail.conf

修改邮件存储路径

mail_location = mbox:~/mail:INBOX=/var/mail/%u

3.3 修改认证配置,允许明文密码(内网测试使用)

vim /etc/dovecot/conf.d/10-auth.conf
disable_plaintext_auth = no
auth_mechanisms = plain login

3.4 修改监听端口配置

vim /etc/dovecot/conf.d/10-pop3.conf

确保如下配置开启

pop3_listen = *
pop3s_listen =

四、cyrus‑sasl认证配置

vim /etc/sasl2/smtpd.conf

写入配置

pwcheck_method: auxprop
auxprop_plugin: sasldb
mech_list: PLAIN LOGIN

五、服务开机自启与启动服务

#停止系统自带sendmail(防止端口冲突)
systemctl stop sendmail
systemctl disable sendmail#启动postfix并设置开机自启
systemctl start postfix
systemctl enable postfix#启动dovecot并设置开机自启
systemctl start dovecot
systemctl enable dovecot#启动saslauthd认证服务
systemctl start saslauthd
systemctl enable saslauthd

查看服务运行状态

systemctl status postfix
systemctl status dovecot
systemctl status saslauthd

端口验证,确认25、110端口监听

netstat -tulnp | grep -E "25|110"

预期结果:postfix占用25端口,dovecot占用110端口

六、创建邮件系统用户

postfix使用系统本地用户作为邮件账号,不需要额外数据库。创建两个测试用户 user1、user2

useradd user1
passwd user1useradd user2
passwd user2

账号:user1@test.com 、user2@test.com,密码为设置的系统用户密码

七、收发邮件测试

方式1:服务器本地命令行测试

1. 使用telnet测试SMTP发送邮件(25端口)

yum install telnet -y
telnet 172.10.192.64 25

telnet交互完整示例

ehlo test.com
auth login
#输入base64编码后的用户名user1
dXNlcjE=
#输入base64编码后的user1密码
cGFzc3dvcmQxMjM=
mail from:<user1@test.com>
rcpt to:<user2@test.com>
data
subject:test mail
hello,this is test email
.
quit

2. telnet测试POP3接收邮件(110端口)

telnet 172.10.192.64 110

交互示例

user user2
pass 用户密码
list
retr 1
quit

方式2:查看本地邮件文件

邮件存储路径 /var/mail/用户名

cat /var/mail/user2

方式3:客户端软件测试(Thunderbird/Foxmail)

  • SMTP服务器:mail.test.com 端口:25,无加密
  • POP3服务器:mail.test.com 端口:110,无加密
  • 账号:user1@test.com / user2@test.com,使用系统用户密码

八、常见排错

  1. 端口无法访问:检查firewalld放行端口,selinux是否关闭
setenforce 0
  1. postfix启动失败:执行postfix check检查配置文件语法
  2. 收不到邮件:查看日志 /var/log/maillog,邮件服务全部日志均输出到此文件
tail -f /var/log/maillog

参考资料

  1. CentOS7搭建简单的邮件服务器 - 秋夜雨巷 - 博客园
  2. linux搭建邮件服务器 - NAVYSUMMER - 博客园
  3. Linux下Postfix邮件服务器搭建 - 准备篇_Linux系统门户网站

提示:本教程为内网测试邮件服务器,公网使用需要配置DNSMX记录、SSL证书,否则邮件会被判定为垃圾邮件。

http://www.jsqmd.com/news/1353322/

相关文章:

  • 零基础入门RNA剪接分析:使用HAL模型的3个核心步骤
  • 机械键盘新手入门指南:从结构原理到选购避坑
  • 28天零基础掌握GDScript编程:从游戏开发小白到实战高手的完整学习路径
  • 嵌入式软件测试——RobotFramework 实战指南
  • Android Studio中文界面设置:告别英文障碍,提升开发效率
  • 终极GitHub加速解决方案:Fast-GitHub插件完全指南
  • 2026年靠谱AI快速开发工具深度评测推荐(零基础程序员都能用)
  • 2026免费音频转M4A工具全攻略|苹果兼容+保姆级教程 - 今日咨询
  • 三步掌握:如何从智慧教育平台轻松获取电子课本PDF
  • Prompt(提示词)
  • Cortex-M3:为什么地址计数器 . 可以从加载域复制到执行域?
  • 无感电阻与普通电阻的本质区别、选型指南及高频电路应用解析
  • 智慧教育平台电子课本下载终极指南:tchMaterial-parser让你的教材永不离线
  • JavaScript基础语法:前端开发的核心基石
  • PP-OCRv6-small-rec-GGUF性能测试报告:从cosine相似度到logits分析的全面评估
  • 2026 年资质全的土工膜厂家推荐:专业测评**指南 - 思溯深度专栏
  • Guava 库新手快速上手与实战指南
  • Inconsolata:重新定义代码可读性的等宽字体革命
  • LibGDX游戏开发入门:从环境搭建到跨平台部署的Java框架实战
  • AI代理工作流引擎:本地部署与自动化文档处理实战指南
  • Git误操作急救指南:12种常见场景解决方案
  • JSON翻译解决方案:多语言应用开发实战指南
  • 2026 年太原沙发翻新、沙发换皮、窗帘定制,旧房软装改造实测分享 - LYL仔仔
  • 2023电赛仪器与元器件清单深度解读:从采购指南到实战策略
  • 如何快速下载国家中小学智慧教育平台电子教材:智能解析工具完整指南
  • PP-OCRv6-small-rec-GGUF实战指南:使用CrispEmbed实现工业级文本识别应用
  • 如何快速掌握Mi-Create:免费打造小米手表个性化表盘的终极指南
  • 培训机构哪家好?推荐与报班全攻略 - 资讯报道
  • Windows防撤回工具RevokeMsgPatcher:让微信QQ消息永不消失的秘密武器
  • 从一键安装到手动部署:深入理解脚本部署原理与实战