惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

博客园_首页
IT之家
IT之家
博客园 - Franky
Stack Overflow Blog
Stack Overflow Blog
宝玉的分享
宝玉的分享
Recent Announcements
Recent Announcements
Engineering at Meta
Engineering at Meta
S
SegmentFault 最新的问题
V
Visual Studio Blog
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Last Week in AI
Last Week in AI
H
Help Net Security
V
V2EX
H
Hackread – Cybersecurity News, Data Breaches, AI and More
量子位
博客园 - 叶小钗
J
Java Code Geeks
博客园 - 【当耐特】
月光博客
月光博客
爱范儿
爱范儿
人人都是产品经理
人人都是产品经理
酷 壳 – CoolShell
酷 壳 – CoolShell
小众软件
小众软件

树 - 洞

SMTP2GO 拯救你的 25 端口限制 | 树 Bilibili Linux 客户端 VAAPI 硬解折腾全记录 | 树 Bilibili Linux 客户端 VAAPI 硬解折腾全记录 | 树 震惊!insmtr 的 MySQL 数据库居然被勒索软件攻击了! | 树 震惊!insmtr 的 MySQL 数据库居然被勒索软件攻击了! | 树 再探阿里云 DNS 对 CloudFront 的解析情况 | 树 再探阿里云 DNS 对 CloudFront 的解析情况 | 树 为单板机配置超简单 VNC 环境 改良版 | 树 为单板机配置超简单 VNC 环境 改良版 | 树 Ubuntu 22.04 Rust OpenCV 注意事项 | 树 Redmi AX6000 hanwckf U-Boot 安装 OpenWrt 24 | 树 为单板机配置超简单 VNC 环境 | 树 Ubuntu 22.04 Rust OpenCV 注意事项 | 树 Redmi AX6000 hanwckf U-Boot 安装 OpenWrt 24 | 树 为单板机配置超简单 VNC 环境 | 树 在 WSL 中使用 ISE | 树 在 WSL 中使用 ISE | 树 Jetson AGX Orin CH340 驱动安装 | 树 Jetson AGX Orin CH340 驱动安装 | 树 在 Ubuntu 22.04 上运行 PX4-Autopilot 1.13 | 树 在 Ubuntu 22.04 上运行 PX4-Autopilot 1.13 | 树 在 Thunderbird 里使用沉浸式翻译插件 | 树 在 Thunderbird 里使用沉浸式翻译插件 | 树 搭建自定义域名邮箱 | 树 - 洞 搭建自定义域名邮箱 | 树 - 洞 Android Box for root 透明代理 | 树 再见,曾经热爱的算法竞赛 | 树 - 洞 再见,曾经热爱的算法竞赛 | 树 - 洞
SMTP2GO 拯救你的 25 端口限制 | 树
insmtr · 2026-05-20 · via 树 - 洞

之前我有和大家分享过如何搭建自定义域名邮箱,现在这台搬瓦工的服务器我已经出掉了,所以要把邮箱服务器迁移到哪里就成了一个困扰我的问题。当然,如果你也想搭建邮件服务器的话可以去看一下那篇文章,本文所讲的内容是建立在那篇文章的基础上的。

问题

很多 IDC 的机器都是不允许用户向其它服务器的 25 端口建立连接的,这是为了保护 IP 段的信誉,毕竟如果 IDC 的客户多的话 IP 滥用很严重,而那几个邮箱黑名单的解封价格又贵得离谱,很多时候 IDC 并不愿意支付这笔额外开支。而像 DMIT 就更狠了,直接封禁 25 端口的出站,也就是本机的 25 端口无法向外发送数据,但是其它机器向它的 25 端口发送是可以收到的。也就是说在 DMIT 的机器上我连收件也做不到——因为 25 端口只接收数据还不够,回程的包也是从 25 出的,直接被拦截了。但是这也只是一个个例,大部分的 IDC 都是只封目标端口为 25 的连接的。

我肯定不会为了一个邮件服务器去单独买个不封 25 的 VPS,结果我在查询资料的时候发现了 SMTP Relay 这种东西。而 SMTP2GO 是一个可以免费提供 SMTP Relay 服务的商家,虽然免费账户每天只能发 200 封邮件,每月只能发 1000 封邮件,但对于我这种个人用户来说已经足够了。

部署

先打开 SMTP2GO 的官网,注册一个账户,然后在 Dashboard 里它会提示你按 4 步走。

第一步,「Enter the domain you’d like to add」,输入你想要添加的域名,就是你邮箱的「@」后面的部分,比如我的就是「insmtr.cn」。

第二步,「Add a Verified Sender」,这一步它会让你添加 3 条 TXT 记录到你的域名。如果你用的是一些主流的 DNS 服务商(比如 Cloudflare),它会提供一键添加 TXT 记录的功能,直接点一下按钮就自动添加了。如果你的 DNS 服务商不支持一键添加,你也可以手动添加这些 TXT 记录。完成之后点击「Verify」验证成功即可。

完成之后,在 DNS 设置中将原来的 v=spf1 mx ~all 这条根 TXT 记录改成 v=spf1 -all。原来的 v=spf1 mx ~all 表示只有你的域名的 MX 记录所示的域名可以代你发送邮件,而修改之后的 v=spf1 -all 表示允许其它 IP 代表你的域名发送邮件,搭配刚才 SMTP2GO 让我们添加的 em 开头的 TXT 记录,表示只有 SMTP2GO 的服务器可以代表你的域名发送邮件。em 开头的那个域名就是 SMTP2GO 发件时候用的 Return-Path 里显示的域名,邮件服务器会检查这个域名的 SPF 记录来判断发件服务器的 IP 地址是否有权限代表这个域名发送邮件。

第三步,「Get an SMTP username or API key」,这一步就是邮件服务器连接 SMTP2GO 的凭据了。SMTP2GO 提供了两种接入方式,一种是 SMTP User,可以把邮件用 SMTP 协议转发给上游,上游再代为发送;另一种是 HTTP API,可以直接通过 HTTP API 调用 SMTP2GO 的服务。而我用的 maddy 服务器只支持 SMTP User 模式,所以我们在左侧的 Sending 里面找到 SMTP Users,创建一个 SMTP User,记录下它的用户名和密码。

接下来我们去修改 maddy 的配置文件,如果你用的是其它邮件服务器,可以自行搜索教程,道理类似。

找到 target.remote outbound_delivery 这段,内容是这样的:

target.remote outbound_delivery {
    limits {
        # Up to 20 msgs/sec across max. 10 SMTP connections
        # for each recipient domain.
        destination rate 20 1s
        destination concurrency 10
    }
    mx_auth {
        dane
        mtasts {
            cache fs
            fs_dir mtasts_cache/
        }
        local_policy {
            min_tls_level encrypted
            min_mx_level none
        }
    }
}

给它整段注释掉,然后在下面添加新的配置:

target.smtp smtp2go_relay {
    targets tcp://mail.smtp2go.com:587
    starttls yes
    auth plain "你刚刚创建的 SMTP User 用户名" "你刚刚创建的 SMTP User 密码"
}

然后下面的 target.queue remote_queue 里把 target &outbound_delivery 改成 target &smtp2go_relay 就行了。

target.queue remote_queue {
    # target &outbound_delivery
    target &smtp2go_relay

    autogenerated_msg_domain $(primary_domain)
    bounce {
        destination postmaster $(local_domains) {
            deliver_to &local_routing
        }
        default_destination {
            reject 550 5.0.0 "Refusing to send DSNs to non-local addresses"
        }
    }
}

最后改一下 DKIM 签名,找到 submission 相关的这段:

modify {
    dkim $(primary_domain) $(local_domains) default
}

给它注释掉,注意就只注释这一小段。注释之后,DKIM 签名就由 SMTP2GO 接管,确保你的域名信誉不受影响。

第四步,重启邮件服务器,大功告成!现在你就可以通过 SMTP2GO 的服务器来发送邮件了,即使你的服务器被封了 25 目的端口也没关系了,理论上随便找台 VPS 大概率都没问题。

惊喜

本来我以为这么配置之后只是可以绕过 25 端口发件了而已,结果在测试的时候发现,我向 Outlook 邮箱发送邮件时,Outlook 竟然没有把邮件扔进垃圾箱!众所周知,Outlook 自己有一套非常严格的垃圾邮件过滤机制,即使你的发件服务器的 IP 不在任何黑名单内,也是有极大概率直接进垃圾箱的,包括我之前那台搬瓦工。这说明 SMTP2GO 的服务器的 IP 地址的信誉非常好,这真是一个意外的惊喜!

结语

总之,SMTP2GO 是一个非常好用的 SMTP Relay 服务商,免费账户的限制对于个人用户来说已经足够了,而且可以绕过烦人的 25 端口限制。如果你也想搭建邮件服务器的话,不妨试试 SMTP2GO 吧!