找免费SMTP服务器,一般就两条路子,直接用别人做好的发送服务,或是自己在服务器搭建一套。两种方案各有弊端,适用场景也不一样。
直接用现成的免费SMTP服务
只是写小型工具、跑监控脚本,每天几十封通知邮件,直接选用带免费额度的SMTP服务商最简单。Brevo免费方案每日300封,在免费选项里面额度最高,不限时间。Mailtrap每月4000封,更偏向开发测试场景。SMTP2GO每日200封,Mailgun、SendGrid每日100封,Postmark每月仅100封。亚马逊SES前12个月每月3000封,之后按量计费,每千封0.10美元,有AWS账户的话成本最低。

这类服务操作方式大同小异:注册账号,验证发信域名或者邮箱,获取SMTP地址与端口,把认证信息填入代码或者应用。大多兼容标准SMTP协议,587端口搭配STARTTLS,或者465端口搭配SSL。
免费额度看着够用,实际使用会碰到各类限制。每日300封听着不少,如果跑订单通知系统,几百单就会把额度用尽。发信频率限制更麻烦,腾讯云SES同一个发件人向同一个收件人每小时最多10封,超额直接拒绝投递。还有发信域名信誉问题,免费服务大多是共享IP,发送量稍微上去,邮件容易被判定成垃圾邮件。
本地搭一个测试用的SMTP服务器
处在开发阶段,不想测试邮件真投递到用户邮箱,MailHog是轻量化选择。它是Go编写的单文件程序,下载之后直接运行,不用部署数据库、写配置文件。默认1025端口作为SMTP服务,8025端口提供Web页面,所有投递到它的邮件都会捕获展示在网页,不会向外发送。代码内SMTP地址填写localhost:1025,其余参数正常填写,发出邮件就能在http://localhost:8025查看。支持Docker部署,也可以配置systemd服务实现开机自启。
MailHog定位明确,只作为测试工具,不能用来对外真实发信。想要一套完整收发邮件服务器,Postfix是更成熟的选择。
在VPS上自建Postfix邮件服务器
搭建Postfix搭配Dovecot,可以完全掌控邮件收发流程。Postfix负责SMTP传输,Dovecot负责邮件本地存储,并且提供IMAP/POP3邮件拉取能力,两者依靠LMTP协议联动。
Ubuntu、Debian系统安装很简单,一条命令一次性装好postfix、dovecot核心组件。安装过程弹出配置向导,选择“Internet Site”,系统邮件名称填写自己域名。安装完成修改/etc/postfix/main.cf,myhostname设置成shturl.cc/BrZPRRZCT,mydomain填写shturl.cc/KNtK,mynetworks保留本地回环地址。外部客户端需要发信,还得在master.cf开启587端口submission服务,强制开启TLS加密与SASL认证。
只是跑通Postfix,邮件很大概率进垃圾箱。真正决定送达率的,是DNS里三项记录:SPF、DKIM、DMARC。
SPF写在域名TXT记录,声明哪些IP允许使用这个域名发邮件。最简写法v=spf1 mx ~all,代表MX记录对应的服务器允许发信,其余来源软拒绝。DKIM需要部署OpenDKIM或者Rspamd,生成密钥对,公钥写入DNS的TXT记录,私钥留在服务器用于邮件签名。DMARC依托SPF和DKIM,告诉收件服务器,验证失败的邮件该怎么处理。
还有一项经常被忽略:PTR反向解析。Gmail、Outlook这类主流邮箱接收邮件,会核查发信IP对应的反向解析域名。没有PTR记录的IP,邮件很可能直接拒收。PTR一般需要联系VPS服务商在IP层面配置,单纯域名DNS无法添加。
国内云服务器默认封禁25端口,自建邮件服务器,必须选用开放25端口出站的VPS,不然无法连通外部邮件服务器。
自建和用现成服务,怎么选
判断标准很简单,看你能不能长期维护这套系统。自建Postfix,需要自己处理IP信誉、退信、黑名单申诉、更新反垃圾规则等零碎工作。首次调试配置可能就要耗费一两天,稳定之后维护压力才会下降。只想稳定发邮件,不想投入过多运维精力,Brevo、SES这类现成服务更合适。如果要求数据保存在自己服务器、不受第三方发送配额约束,或是邮件系统要和业务系统深度对接,自建就值得投入。开发测试阶段先用MailHog调通代码逻辑,上线前再切换SMTP配置到正式服务器或者付费服务,这个过渡方式稳妥。