当前位置:首页 > 技术 > 正文内容

Linux下Postfix邮件服务器配置与465端口使用

访客 技术 2026年7月18日 1

在Linux系统中搭建一个支持SSL加密并通过465端口发送邮件的Postfix邮件服务器,是一个常见的需求。本文将详细介绍如何配置Postfix和Dovecot,并解决云服务器25端口被封导致无法发送邮件的问题。

1. 基础环境准备

配置Dovecot SSL

编辑/etc/dovecot/conf.d/10-ssl.conf文件,确保以下内容正确:

ssl = yes
ssl_cert = </etc/pki/tls/certs/server.crt
ssl_key = </etc/pki/tls/private/server.key

配置Postfix主配置文件

编辑/etc/postfix/main.cf文件,添加或修改以下内容:

smtpd_use_tls = yes
smtpd_tls_cert_file = /etc/pki/tls/certs/server.crt
smtpd_tls_key_file = /etc/pki/tls/private/server.key
smtpd_tls_session_cache_database = btree:/var/lib/postfix/smtpd_scache

注意:在设置mynetworks时,请确保IP地址范围格式正确。例如,172.21.0.0/28是正确的写法,而172.21.0.1/28则是错误的。

开放安全组端口

确保防火墙允许通过以下端口:25(SMTP)、110(POP3)、143(IMAP)以及465(SMTPS)。

2. 解决25端口被封问题

当云服务提供商封禁了25端口时,可以通过启用465端口来发送邮件。以下是两种可行方法:

方法一:通过transport_maps指定特定邮箱使用465端口

编辑/etc/postfix/main.cf,添加以下内容:

transport_maps = hash:/etc/postfix/transport

编辑/etc/postfix/transport文件,指定目标域名及其端口:

example.com relay-smtps:[smtp.example.com]:465

编辑/etc/postfix/master.cf,定义新的传输服务:

relay-smtps unix - - n - - smtp
    -o smtp_tls_security_level=encrypt
    -o smtp_tls_wrappermode=yes

更新并重载Postfix配置:

postmap /etc/postfix/transport
systemctl reload postfix

方法二:通过iptables将25端口映射到465端口

此方法适用于所有外发邮件默认走465端口的情况。

安装并启动iptables服务:

yum install iptables-services
systemctl start iptables

添加端口映射规则:

iptables -t nat -A OUTPUT -p tcp --dport 25 -j DNAT --to-destination :465

保存并查看iptables规则:

service iptables save
iptables-save

注意事项:启用iptables后,请先测试SSH连接是否正常,避免因规则误配导致无法登录服务器。

3. 启用Postfix客户端TLS加密

确保Postfix版本为3.0及以上,执行以下命令以启用客户端TLS:

postfix tls enable-client

检查并确认main.cf中已添加以下内容:

smtp_tls_session_cache_database = btree:/var/lib/postfix/smtp_scache
smtp_tls_security_level = may
tls_random_source = dev:/dev/urandom
smtp_tls_loglevel = 1

4. 测试与验证

查看邮件队列

postqueue -p

查看日志

journalctl -u postfix

使用openssl测试连接

openssl s_client -connect mail.example.com:465

如果连接成功,说明SSL配置无误。

5. DNS自动配置记录

为了方便邮件客户端自动配置,可以添加以下SRV记录:

_imap._tcp.         IN      SRV     10 10 143 mail.example.net.
_imaps._tcp.        IN      SRV     10 10 993 mail.example.net.
_pop3._tcp.         IN      SRV     10 10 110 mail.example.net.
_pop3s._tcp.        IN      SRV     10 10 995 mail.example.net.
_smtps._tcp.        IN      SRV     10 10 465 mail.example.net.
_submission._tcp.   IN      SRV     10 10 587 mail.example.net.

同时,可添加常见的子域名解析记录,如smtp.mail.等。

标签: postfix

相关文章

Linux crontab 详解

1) crontab 是什么cron 是 Linux 的定时任务守护进程;crontab 是用来编辑/查看“按时间周期执行命令”的表(cron table)。常见两类:用户 crontab:每个用户一份(crontab -e 编辑)系统级 crontab / cron.d:可指定执行用户(/etc/crontab、/etc/cron.d/*)2) crontab 时间...

富文本里可以允许的 HTML 属性

一、所有标签默认允许的安全属性(极少)class        (可选)id           (通常建议禁用)title️ 注意:id 容易被滥用做锚点注入,很多系统直接禁用class 允许的话最好只允许固定前缀(如 editor-*)二、a 标签允许属性<a href="" t...

Mac 安装 Node.js 指南

方法一:通过官网安装包(最简单,适合初学者)如果你只是想快速安装并开始使用,这是最直接的方法。访问 Node.js 官网。页面会显示两个版本:LTS (Recommended For Most Users):长期支持版,最稳定。建议选这个。Current:最新特性版,包含最新功能但可能不够稳定。下载 .pkg 安装包并运行。按照安装向导点击“下一步”即可完成。方法二:使用 Homebrew 安装(...

Dom\HTML_NO_DEFAULT_NS 的副作用:自动加闭合标签

在使用Dom\HTMLDocument时,Dom\HTML_NO_DEFAULT_NS 将禁止在解析过程中设置元素的命名空间, 此设置是为了与DOMDocument向后兼容而存在的。当使用它时,已知的一个副作用就是:自动加闭合标签例如 </img> 为什么会这样?当你使用:Dom\HTML_NO_DEFAULT_NS文档会变成 无命名空间模式,此时内部更接近 XML...

Laravel 事件和监听器创建

在 Laravel 中,使用 Artisan 命令创建 Events(事件) 和 Listeners(监听器) 是非常高效的。你可以通过以下几种方式来实现:1. 手动创建单个 Event如果你只想创建一个事件类,可以使用 make:event 命令:Bashphp artisan make:event UserRegistered执行后,文件将生成在 app/Even...

自定义域名解析神器 dnsmasq

什么是 dnsmasq?dnsmasq 是一个轻量级、功能强大的网络服务工具,专为小型和中等规模网络设计。它是一个综合的网络基础设施解决方案[1]。dnsmasq 能做什么?功能说明应用场景DNS 转发与缓存将 DNS 查询转发到上游服务器(ISP、Google DNS 等),并在本地缓存结果加快 DNS 查询速度,减少外部 DNS 流量本地 DNS解析本地网络设备的主机名,无需编辑&n...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。