我早期做的一个网站需要给用户发邮件:注册验证、通知消息、密码找回。

当时图省事,直接用 QQ 邮箱的 SMTP 来发。前几个月还行,有一天突然用户反馈收不到邮件了——去 QQ 邮箱一看,账号被冻结了,提示”发送异常,已限制登录”。

一句话理解: 免费邮箱的 SMTP 适合个人日常通信,不适合网站做邮件推送——那是在用菜刀切钢筋,不是不能用,是迟早要出问题。

为什么不能用免费邮箱的 SMTP 做业务?

原因有三个:

1. 发送量限制严格

邮箱 每天限制 每封收件人数 备注
QQ 邮箱 100-500 封 视版本 普通用户 100,会员 500
网易 163 50 封 40 人 限制非常严格
Gmail 500 封 - 每小时 50,容易被锁定
新浪 30 封 - 基本只能自己用

2. 容易被判定为垃圾邮件

从免费邮箱 SMTP 发出的邮件,接收方(特别是 QQ、网易、Gmail)很可能会把它标记为垃圾邮件或直接拒收。

3. 不稳定

账号可能被冻结、密码可能过期、SMTP 服务可能变更——这些都会导致你的业务邮件突然中断。

经验之谈: 有一次我的 Gmail SMTP 突然发不出邮件了——去查发现 Google 触发了”可疑活动保护”,让我改密码。改了密码后,网站代码里也要改,再赶上端午节放假——三天邮件瘫痪。从那以后我发誓:绝不把业务邮件绑定在个人邮箱账号上。

推荐方案:事务性邮件服务

2026 年,有专门做”事务性邮件”的云服务商。它们的设计就是为了解决上述问题:

服务商 免费额度 特点
SendGrid 100 封/天 老牌服务商,文档完善
Mailgun 100 封/天 开发者友好,API 设计好
Resend 100 封/天 新一代,React Email 集成
AWS SES 62000 封/月 量大便宜,配置略复杂
Mailjet 200 封/天 欧洲服务商

使用这些服务,你不需要配置 SMTP 服务器——直接通过 API 发送:

1
2
3
4
5
6
7
8
9
10
11
// 使用 Resend API 发送邮件(Node.js 示例)
import { Resend } from 'resend';

const resend = new Resend('re_123456789');

await resend.emails.send({
from: 'noreply@6mal.com',
to: 'user@example.com',
subject: '欢迎注册',
html: '<p>感谢你的注册!</p>'
});

邮件送达率的关键:域名认证

很多人在配置了 SMTP 后仍然发现邮件进了垃圾箱。原因通常是——没有配置域名的邮件认证记录。

这三个 DNS 记录决定了你的邮件是否”可信”:

1
2
3
4
5
6
7
8
# 1. SPF——告诉别人"哪些服务器可以用你这个域名发邮件"
6mal.com. TXT "v=spf1 include:spf.resend.com ~all"

# 2. DKIM——给邮件加上数字签名,证明邮件没有被篡改
resend._domainkey.6mal.com. TXT "v=DKIM1; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQ..."

# 3. DMARC——告诉邮件服务商"如果 SPF/DKIM 验证失败,该怎么处理"
_dmarc.6mal.com. TXT "v=DMARC1; p=quarantine; rua=mailto:dmarc@6mal.com"

没有这些记录,你的邮件就是”三无产品”——邮件服务商收到它,第一反应就是扔进垃圾箱。

什么时候用免费邮箱 SMTP?

说了这么多,免费邮箱 SMTP 并不是毫无用处:

  • 个人博客的评论通知(一天几封)
  • 联系表单(用户提交后通知你)
  • 测试环境(开发阶段临时用)
  • 给管理员发错误警报

只要你的邮件发送量少(每天少于 50 封),且内容不涉及业务核心,免费邮箱 SMTP 还是能用的。

相关推荐

P.S. 我现在所有项目的邮件服务都统一到了 Resend——免费的每天 100 封够我个人项目用了,API 干净简洁,送达率也很高。如果你也不想再为 SMTP 的问题头疼,强烈建议换用专门的事务性邮件服务。那 100 封免费的额度,对个人项目来说绰绰有余。关键是——再也不用担心”这个月的 QQ 邮箱有没有被封”了。