尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
CentOS 7 搭建 Postfix + Dovecot 邮件系统并配置 SMTP、POP3、IMAP 与 TLS
CentOS 7 搭建 Postfix Dovecot 邮件系统并配置 SMTP、POP3、IMAP 与 TLS1. 服务介绍Postfix 是邮件传输代理MTA负责通过 SMTP 接收、投递和转发邮件Dovecot 提供 POP3、IMAP 和用户认证让客户端读取邮箱。两者组合后可搭建基础邮件系统并通过 TLS 保护客户端认证和邮件传输。本实验配置域名解析、本地域账号、Maildir 邮箱、SMTP AUTH、Submission 端口以及 Outlook 收发测试。2. 准备运行环境示例环境如下| 角色 | 地址 | 用途 || --- | --- | --- || 邮件服务器 | 10.1.100.101 |mail.qwe.com运行 Postfix 和 Dovecot || 邮件域 | qwe.com | 用户邮箱域名 || Windows 客户端 | 10.1.100.50 | Outlook 收发测试 || 测试用户 | qwe、ewq |qweqwe.com、ewqqwe.com|• 操作系统CentOS 7.x。• 操作账号root 或具备 sudo 权限的管理员。• 软件源YUM 可用。• DNSmail.qwe.com的 A 记录指向10.1.100.101qwe.com的 MX 记录指向mail.qwe.com。• 时间服务端和客户端时间同步避免 TLS 证书验证异常。检查环境cat /etc/centos-release ip addr timedatectl status getent hosts mail.qwe.com dig MX qwe.com short3. 相关知识• SMTP 常用 TCP 25客户端认证发信通常使用 587POP3/POP3S 使用 110/995IMAP/IMAPS 使用 143/993。• MX 记录用于定位收信服务器A 记录负责把邮件主机名解析为 IP。公网邮件还依赖 PTR、SPF、DKIM 和 DMARC。•mynetworks只能包含可信客户端网段。设置为0.0.0.0/0会造成开放中继风险。• Postfix 负责邮件传输Dovecot 负责邮箱读取和 SASL 认证排错时要区分 SMTP 投递问题与 POP3/IMAP 登录问题。• Maildir 每封邮件单独保存目录由cur、new、tmp组成比传统 mbox 更适合并发访问。•disable_plaintext_authyes只允许在 TLS 保护下使用 PLAIN/LOGIN 认证避免密码明文传输。• 实验自签名证书会触发客户端信任提示。生产环境应使用可信 CA 证书并配置正确主机名。• 邮件服务不应靠关闭防火墙或 SELinux 解决问题应放行明确端口并检查日志和安全上下文。4. 实验步骤4.1 配置 DNS 和主机名DNS 区域中加入mail IN A 10.1.100.101 IN MX 10 mail.qwe.com.配置服务器主机名hostnamectl set-hostname mail.qwe.com hostname4.2 安装邮件组件yum install -y postfix dovecot mailx openssl systemctl enable postfix dovecot如果系统运行 Sendmail先停用避免抢占 TCP 25systemctl disable --now sendmail 2/dev/null alternatives --set mta /usr/sbin/sendmail.postfix 2/dev/null4.3 配置 Postfix 基础参数备份配置cp -a /etc/postfix/main.cf /etc/postfix/main.cf.bak使用postconf -e写入关键参数postconf -e myhostname mail.qwe.com postconf -e mydomain qwe.com postconf -e myorigin $mydomain postconf -e inet_interfaces all postconf -e inet_protocols ipv4 postconf -e mydestination $myhostname, localhost.$mydomain, localhost, $mydomain postconf -e mynetworks 127.0.0.0/8, 10.1.100.0/24 postconf -e home_mailbox Maildir/ postconf -e smtpd_banner $myhostname ESMTP postconf -e relay_domains $mydestination限制中继目标postconf -e smtpd_recipient_restrictions permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination4.4 创建测试账号和 Maildiruseradd qwe passwd qwe useradd ewq passwd ewq创建邮箱目录maildirmake.dovecot /home/qwe/Maildir maildirmake.dovecot /home/ewq/Maildir chown -R qwe:qwe /home/qwe/Maildir chown -R ewq:ewq /home/ewq/Maildir chmod -R 700 /home/qwe/Maildir /home/ewq/Maildir4.5 创建实验 TLS 证书mkdir -p /etc/pki/mail/private /etc/pki/mail/certs openssl req -x509 -nodes -newkey rsa:2048 -days 365 \ -keyout /etc/pki/mail/private/mail.qwe.com.key \ -out /etc/pki/mail/certs/mail.qwe.com.crt \ -subj /CCN/STZhejiang/LHangzhou/OLab/CNmail.qwe.com chmod 600 /etc/pki/mail/private/mail.qwe.com.key4.6 配置 Dovecot备份配置文件cp -a /etc/dovecot/dovecot.conf /etc/dovecot/dovecot.conf.bak cp -a /etc/dovecot/conf.d/10-auth.conf /etc/dovecot/conf.d/10-auth.conf.bak cp -a /etc/dovecot/conf.d/10-mail.conf /etc/dovecot/conf.d/10-mail.conf.bak cp -a /etc/dovecot/conf.d/10-ssl.conf /etc/dovecot/conf.d/10-ssl.conf.bak cp -a /etc/dovecot/conf.d/10-master.conf /etc/dovecot/conf.d/10-master.conf.bak在/etc/dovecot/dovecot.conf设置protocols imap pop3 lmtp listen *在/etc/dovecot/conf.d/10-auth.conf设置disable_plaintext_auth yes auth_mechanisms plain login在/etc/dovecot/conf.d/10-mail.conf设置mail_location maildir:~/Maildir在/etc/dovecot/conf.d/10-ssl.conf设置ssl required ssl_cert /etc/pki/mail/certs/mail.qwe.com.crt ssl_key /etc/pki/mail/private/mail.qwe.com.key在/etc/dovecot/conf.d/10-master.conf的service auth段加入unix_listener /var/spool/postfix/private/auth { mode 0660 user postfix group postfix }4.7 配置 Postfix SMTP AUTH 和 TLSpostconf -e smtpd_sasl_type dovecot postconf -e smtpd_sasl_path private/auth postconf -e smtpd_sasl_auth_enable yes postconf -e broken_sasl_auth_clients yes postconf -e smtpd_tls_cert_file /etc/pki/mail/certs/mail.qwe.com.crt postconf -e smtpd_tls_key_file /etc/pki/mail/private/mail.qwe.com.key postconf -e smtpd_tls_security_level may postconf -e smtpd_tls_auth_only yes postconf -e smtp_tls_security_level may编辑/etc/postfix/master.cf启用 587 Submission 服务submission inet n - n - - smtpd -o syslog_namepostfix/submission -o smtpd_tls_security_levelencrypt -o smtpd_sasl_auth_enableyes -o smtpd_recipient_restrictionspermit_sasl_authenticated,reject4.8 配置防火墙并启动服务firewall-cmd --permanent --add-servicesmtp firewall-cmd --permanent --add-port587/tcp firewall-cmd --permanent --add-port995/tcp firewall-cmd --permanent --add-port993/tcp firewall-cmd --reload postfix check doveconf -n systemctl restart postfix dovecot systemctl status postfix dovecot --no-pager4.9 客户端 DNS 和连通性检查Windows 客户端 DNS 指向实验 DNS 服务器然后检查解析和网络nslookup mail.qwe.com ping mail.qwe.com4.10 配置 Outlook 第一个账号选择手动配置账号选择 POP 或 IMAP 类型推荐客户端参数| 项目 | 参数 || --- | --- || 邮箱 | qweqwe.com || 用户名 | qwe || 收件服务器 | mail.qwe.com || 发件服务器 | mail.qwe.com || SMTP | 587STARTTLS启用身份认证 || IMAP | 993SSL/TLS || POP3 | 995SSL/TLS |执行账号测试完成配置4.11 配置第二个账号并测试收发使用相同方法添加ewqqwe.com从 qwe 向 ewq 发送测试邮件5. 验证结果5.1 服务端配置和端口postfix check postconf -n doveconf -n systemctl status postfix dovecot --no-pager ss -lntp | grep -E :25|:587|:993|:9955.2 用户认证与 TLSdoveadm auth test qwe openssl s_client -connect mail.qwe.com:587 -starttls smtp openssl s_client -connect mail.qwe.com:993 openssl s_client -connect mail.qwe.com:995TLS 握手成功、证书主机名正确、doveadm auth test返回认证成功说明认证和加密链路正常。5.3 本地投递测试echo postfix local delivery test | mail -s mail test ewqqwe.com find /home/ewq/Maildir/new -type f -maxdepth 1 -ls postqueue -p邮件进入ewq的 Maildir队列没有持续堆积说明本地域投递正常。5.4 日志和故障排查tail -n 100 /var/log/maillog journalctl -u postfix -n 50 --no-pager journalctl -u dovecot -n 50 --no-pager grep -E reject|warning|error|auth failed /var/log/maillog | tail -n 50Outlook 两个账号均能通过加密端口登录qwe 和 ewq 可以互发邮件服务端队列和日志无持续错误说明 Postfix Dovecot 邮件系统配置完成。
RELATED

相关推荐

AI流动性模型解析:8万亿美元货币基金缩短久期,避险资金重构配置逻辑的智能预测框架

AI流动性模型解析:8万亿美元货币基金缩短久期,避险资金重构配置逻辑的智能预测框架

摘要:本文通过AI流动性分析模型,结合货币市场基金久期变化、利率预期、资金流向及短端债券配置数据,构建资金行为识别框架,分析8万亿美元货币市场基金为何集体缩短久期,并探讨这一调整对未来利率环境及全球资产配置的影…

📅 2026/8/23 17:00:35
基于SpringBoot的社区诊所药品管理平台设计与实现

基于SpringBoot的社区诊所药品管理平台设计与实现

目 录 摘 要 Abstract 1 绪论 1.1 选题依据及意义 1.2 国内外研究现状 1.3论文结构安排 2 相关技术介绍 2.1 B/S结构 2.2 MySQL数据库 2.3 Java语言 2.4 SpringBoot框架 3 系统分析 3.1可行性分析 3.2系统流程分析 3.3系统功能需求分析 3.4 系…

📅 2026/9/14 2:30:37
从0到1开发Calculator:新手友好的Java Swing编程实践

从0到1开发Calculator:新手友好的Java Swing编程实践

从0到1开发Calculator:新手友好的Java Swing编程实践 【免费下载链接】Calculator Calculator app created with Java Swing, It is simple with an easy code to help novices learn how to operate a calculator. 项目地址: https://gitcode.com/gh_mirrors/cal…

📅 2026/8/23 17:00:38
MORE NEWS

更多资讯

📰

Spring Boot民宿系统源码解析:事务边界、MyBatis映射与Vue权限拦截

简介:这是一套基于 JavaSpringBootVue 前后端分离架构的民宿预订管理系统完整源码,适合作为毕业设计、课程设计或团队协作项目参考。资源共 381 个文件,约 10.17MB,包含 79 个 Java 后端源文件、38 个 Vue 组件、24 个 TypeScript…

📰

STM32电机PID闭环控制:增量式算法、M法测速与调参实战

简介:基于STM32的PID电机自控制工程,主要面向嵌入式学习者和自动化方向学生,用一套完整实例说明PID算法如何在真实MCU上实现电机速度与位置控制。压缩包共180个文件、4.97MB,包含35个H头文件与33个C源文件,以及Keil工程…

📰

Android旅游APP毕设实战:高德地图集成与离线缓存开发

简介:本资源是一套完整的Android毕业设计项目源码,面向计算机、软件工程等专业本科生及移动开发初学者,聚焦旅游服务类APP开发实践,解决从需求分析、功能实现到部署运行的全流程学习需求。压缩包共5828个文件,总计65.4…

📰

汕头30米DEM数据全流程处理:从Shapefile裁剪到Python分析

简介:汕头市30米分辨率DEM数字高程数据包,面向GIS分析、城市规划、灾害评估等场景,提供完整的地形栅格与行政边界矢量数据,可直接用于坡度计算、可视域分析、径流模拟、环境评估等专业应用。压缩包内共12个文件,涵盖TI…

📰

CubeSandbox 浏览器沙箱实战:在 MicroVM 中运行无头 Chromium 并用 Playwright CDP 远程驱动

CubeSandbox 浏览器沙箱实战:在 MicroVM 中运行无头 Chromium 并用 Playwright CDP 远程驱动 【免费下载链接】CubeSandbox Instant, Concurrent, Secure & Lightweight Sandbox for AI Agents. 项目地址: https://gitcode.com/GitHub_Trending/cu/CubeSandbo…

📰

STM32G431嵌入式开发:CubeMX驱动封装与BSP分层实战

简介:一份完整的蓝桥杯嵌入式竞赛源码包,基于STM32G431RBT6主控芯片,适合正在备赛的高校学生,也适合电子信息、计算机等专业将其用于课程设计、期末大作业或毕业设计参考。工程集成HAL库外设驱动,包含定时器PWM、ADC采…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬