SMTP 是什么

一句话总结

SMTP 是互联网上从一台服务器向另一台服务器发邮件的标准协议,类似「邮件中转站之间的对话规则」。


🤔 为什么会有它 / 解决了什么问题

早期互联网上每台邮件服务器各自为政,没有统一格式和握手流程。SMTP 规定了发件服务器如何找到收件服务器、如何传输邮件内容、对方收不到如何报错。


🔍 具体原理 / 运作逻辑

发件 MUA(邮件客户端)通过 587/465 端口把邮件提交给发件 MTA(如 Postfix)→ 发件 MTA 查收件人域的 MX 记录 → 连接收件 MTA 的 25 端口 → 传输邮件内容。标准端口:25(MTA→MTA)、587(提交)、465(SSL/TLS)。


🧭 什么情况下会用到 / 什么场景会遇到它

  • Frappe 发送通知邮件、ERPNext 自动发送报表
  • 任何需要程序自动发邮件的应用(密码重置、订单确认、告警)

🛠️ 怎么上手 / 在哪操作

传统方式:搭建 Postfix + 配置 SPF/DKIM/DMARC → 监听 25/587 端口。我们的方式:CF Email Bridge 监听 2525 → 转 HTTPS REST API 发出。


⚖️ 副作用 / 代价 / 取舍

  • SMTP 端口(25/465/587)是云厂商重点封锁对象——新 DO 账户默认全封,必须走 HTTP 中继或提工单
  • SPF/DKIM/DMARC 配置错误会导致邮件被判定为垃圾邮件,比发不出去更隐蔽

🕰️ 来历

  • 谁提出/创造的:Jon Postel(RFC 821,1982 年)
  • 什么时候出现的:1982 年正式标准化,1985 年在 ARPANET 上广泛部署

🔗 关联 / 经常一起出现的概念

  • MX 记录DNS 中指定收件服务器的记录类型
  • CF Email Bridge:我们绕过 SMTP 端口封锁的方案——SMTP in(2525)→ REST API out(443)
  • SPF/DKIM/DMARC:邮件认证三件套,防止伪造发件人

⚠️ 注意事项 / 常见误区

SMTP 是你的应用跑在服务器上主动连外部的 25 端口(出站)。Gmail/Outlook 可以发出邮件是因为他们有自己的 MTA 监听入站 25 端口——用户只是通过 IMAP/POP3 提交。很多人在自家服务器上用 25 端口发不出是因为云厂商堵了出站 25,而不是 SMTP 本身有问题。


📎 记忆锚点

“SMTP 是邮局的跨城运输卡车——你投递到本地邮局(587),卡车跨城运到目的地邮局(25),收件人自己去邮局取(POP3/IMAP)。”


📝 更新日志

日期改动原因
2026-07-13首次创建-