服务器上发邮件是个老大难:25 端口被封、发出去的邮件进垃圾箱、被邮件服务商拉黑……这篇讲清楚服务器发邮件的正确姿势,以及企业邮箱怎么选。
需要云服务器可以看看财富云计算:NAT 型无独立公网 IP,价格比独立 IP 机型省一半以上,一键开服面板,主流游戏快速部署。
一、先说结论:服务器直发邮件这条路基本堵死
很多新手想在自己服务器上装 Postfix 直接发邮件。现实是:
| 问题 | 说明 |
|---|---|
| 25 端口被封 | 国内云厂商默认封禁 25 端口出站,防止垃圾邮件 |
| 无 PTR 记录 | 反向解析缺失,主流邮箱直接拒收或进垃圾箱 |
| IP 信誉差 | 云厂商 IP 段常被列入黑名单,Gmail、QQ 邮箱直接拒 |
| 没有 SPF/DKIM/DMARC | 三项认证缺一不可,缺了就是垃圾邮件 |
所以:网站的通知邮件、验证码、告警,一律走第三方 SMTP 服务,自己搭邮件服务器只在极少数场景(内网邮件、学习测试)才有意义。
二、方案一:第三方 SMTP(90% 的人该用这个)
免费额度够用的服务
| 服务 | 免费额度 | 特点 |
|---|---|---|
| QQ 邮箱 SMTP | 基本不限(内部用) | 配置简单,适合个人小站 |
| 163 邮箱 SMTP | 基本不限 | 同 QQ 邮箱 |
| SendCloud | 每天若干封 | 国内老牌,模板/统计全 |
| 阿里云邮件推送 | 免费额度 | 到达率高,和阿里云打通 |
| Mailgun / SendGrid | 每月几千到上万封 | 海外服务,API 友好 |
QQ 邮箱 SMTP 配置实操(最常用)
- QQ 邮箱 → 设置 → 账户 → 开启
POP3/SMTP服务 - 按提示发短信获取授权码(不是登录密码)
- 服务器上测试:
# 安装邮件发送工具
apt install -y mailutils # Debian/Ubuntu
yum install -y mailx # CentOS
# 发送测试
echo "测试邮件内容" | mail -s "测试标题" "收件人@qq.com"更可靠的是用 Python 直接走 SMTP:
#!/usr/bin/env python3
# /opt/scripts/send_mail.py
import smtplib
from email.mime.text import MIMEText
from email.header import Header
SMTP_HOST = "smtp.qq.com"
SMTP_PORT = 465 # SSL 端口
SMTP_USER = "你的邮箱@qq.com"
SMTP_PASS = "授权码" # 不是登录密码!
def send(to, subject, content):
msg = MIMEText(content, "plain", "utf-8")
msg["From"] = Header("服务器告警", "utf-8")
msg["To"] = Header(to, "utf-8")
msg["Subject"] = Header(subject, "utf-8")
server = smtplib.SMTP_SSL(SMTP_HOST, SMTP_PORT)
server.login(SMTP_USER, SMTP_PASS)
server.sendmail(SMTP_USER, [to], msg.as_string())
server.quit()
if __name__ == "__main__":
send("admin@example.com", "测试", "服务器邮件功能正常")接入自己的程序
Typecho 评论通知:后台 → 设置 → 评论,填 SMTP 服务器、端口、账号、授权码。
Shell 告警脚本(配合监控用):
#!/bin/bash
# 磁盘超过85%发邮件告警
USE=$(df / | awk 'NR==2 {print $5}' | tr -d '%')
if [ "$USE" -gt 85 ]; then
echo "磁盘使用率 ${USE}%,请及时清理" | \
mail -s "【告警】服务器磁盘空间不足" admin@example.com
fi三、方案二:正规企业邮箱
公司场景用第三方 SMTP 显得不专业,该上企业邮箱:
| 服务商 | 基础版价格量级 | 特点 |
|---|---|---|
| 腾讯企业邮 | 每人每年几百元 | 和微信/企业微信打通 |
| 阿里邮箱 | 每人每年几百元 | 管理后台强,钉钉打通 |
| 网易企业邮 | 每人每年几百元 | 老牌,反垃圾强 |
| Google Workspace | 每人每月几十元 | 海外用,国内访问不稳 |
| Microsoft 365 | 每人每月几十元 | Office 全家桶 |
选型建议:国内团队用腾讯或阿里(生态顺、移动端好);有海外业务选 Google/Microsoft。人数少(5 人以下)先用免费版个人邮箱顶着也行。
企业邮箱要配的 DNS 记录(重点)
买了企业邮箱,域名解析要加这几条记录,少一条送达率就掉一截:
# MX 记录(邮件交换,服务商会给具体值)
@ MX 10 mx1.qq.com
@ MX 20 mx2.qq.com
# SPF(发件人授权,声明哪些服务器能给这个域名发信)
@ TXT "v=spf1 include:spf.mail.qq.com ~all"
# DKIM(邮件签名,服务商控制台生成)
default._domainkey TXT "v=DKIM1; k=rsa; p=服务商给的长字符串"
# DMARC(策略,防伪造)
_dmarc TXT "v=DMARC1; p=quarantine; rua=mailto:dmarc-report@你的域名"配完用工具验证:dig TXT 你的域名 +short 看 SPF 在不在,或者用 mail-tester.com 打分,目标 9 分以上。
四、方案三:自建邮件服务器(多数人别碰)
什么情况才需要自建:
- 数据敏感,邮件不能出内网(政府、金融内网)
- 学习测试,想搞懂邮件协议
- 特殊合规要求
最小可用搭建(Postfix + Dovecot)
# 安装
apt install -y postfix dovecot-core dovecot-imapd
# Postfix 关键配置 /etc/postfix/main.cf
myhostname = mail.yourdomain.com
mydomain = yourdomain.com
myorigin = $mydomain
inet_interfaces = all
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
home_mailbox = Maildir/
# SMTP 认证(必开,否则是开放中继,分分钟被拉黑)
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_sasl_auth_enable = yes
smtpd_tls_security_level = may
smtpd_tls_cert_file = /etc/letsencrypt/live/mail.yourdomain.com/fullchain.pem
smtpd_tls_key_file = /etc/letsencrypt/live/mail.yourdomain.com/privkey.pem
# 反垃圾
smtpd_recipient_restrictions =
permit_sasl_authenticated,
reject_unauth_destination自建必须做的五件事(否则就是灾难)
- 关开放中继:上面配置的最后一段就是干这个的。开放中继 = 全世界垃圾邮件都用你服务器发,IP 秒黑
- SPF + DKIM + DMARC 全配:用 OpenDKIM 生成 DKIM 签名
- PTR 反向解析:找服务商给 IP 加 PTR,指向
mail.yourdomain.com。云服务器控制台一般能申请 - IP 不在黑名单:先去 mxtoolbox.com/blacklists.aspx 查你的 IP,在名单里趁早换 IP
- 25 端口能通:国内云默认封 25,要工单申请解封(通常不给个人用户批,要企业资质)
实测结论:个人/小团队自建邮件服务器,折腾一周,送达率还打不过免费 SMTP。除非刚需,否则别碰。
五、邮件进垃圾箱的排查清单
发出去的邮件进垃圾箱,按这个顺序查:
# 1. IP 是否在黑名单
# 浏览器打开 mxtoolbox.com/blacklists.aspx 输入服务器 IP
# 2. SPF 是否配置
dig TXT yourdomain.com +short | grep spf
# 3. DKIM 是否配置
dig TXT default._domainkey.yourdomain.com +short
# 4. DMARC 是否配置
dig TXT _dmarc.yourdomain.com +short
# 5. 发送源 IP 和 SPF 声明是否一致
# 看邮件原文的 Received 链,第一个 Received 的 IP 要在 SPF 里
# 6. 综合打分
# mail-tester.com 发送测试邮件,看分数和改进建议最常见的三个死因:没配 SPF、授权码当密码用、发信频率突然暴涨(一天发几千封触发风控)。
六、常见问题
Q:25 端口被封怎么办?
用 465(SSL)或 587(STARTTLS)端口走 SMTP,这些端口云厂商不封。第三方 SMTP 服务都支持。
Q:邮件能收到但发不出去?
检查授权码、端口、SSL 设置;看服务商后台是否限制了发信频率;被判定为垃圾邮件会先限制再封号。
Q:验证码邮件延迟严重?
QQ/163 个人邮箱在高并发下会限流。验证码场景用专业服务(SendCloud、阿里云邮件推送),有专属通道和模板统计。
Q:自建邮件服务器成本多少?
一台 2G 服务器 + 域名 + SSL + 每天维护,一年几百块。但省不下多少事,除非有合规刚需。
Q:邮件内容有什么禁忌?
营销类邮件必须带退订链接(否则违反 CAN-SPAM 和国内《通信短信息服务管理规定》);批量发送要先预热 IP;标题别用全大写和感叹号(垃圾邮件特征)。
小结
邮件记住一条铁律:能用第三方 SMTP 就别自建。个人/小站用 QQ/163 授权码,团队用企业邮箱,营销/验证码场景用专业邮件推送服务。配好 SPF/DKIM/DMARC 三件套,送达率就有保障。
更多运维教程见财富云计算知识库:Nginx 配置、HTTPS 部署、DNS 解析、域名备案全系列。需要云服务器可以看看财富云计算:一键开服面板,NAT 型无独立公网 IP,价格比独立 IP 机型省一半以上。
延伸阅读
- 网站环境怎么选:LNMP 手动 / 宝塔面板 / Docker / 云开发
- 问卷表单系统搭建:SurveyKing / Formbricks,数据自己收
- 图床搭建:Lsky Pro / Lychee,自托管图片托管方案
- 邮件列表搭建:listmonk 自托管 Newsletter,把读者握在自己手里
- 文档站点搭建:MkDocs / VuePress / Docsify,产品文档与技术手册方案
- RSS 阅读器搭建:FreshRSS 自托管,把信息流拿回自己手里
- 短链接服务搭建:Shlink 自托管,链接数据自己掌握
- 网站状态监控页搭建:Uptime Kuma,服务器挂了第一时间知道

[...]# mail._domainkey.example.com IN TXT "v=DKIM1; k=rsa; p=MIGfMA0GCSq..."开启后,每封邮件带头 DKIM-Signature:,收件方验签通过,可信度大增。自建邮件服务完整部署见企业邮箱与邮件发送服务搭建。四、DMARC:失败处理策略_dmarc.example.com. IN TXT "v=DMAR[...]
2026-10-15 回复
[...]export DB_PASSWORD=$(cat /run/secrets/db_pw)配置分离的完整做法见企业邮箱与邮件发送服务搭建里的 secret 管理一节。2.4 Nginx 挡住 .git 和备份文件# 拒绝访问隐藏文件和常见备份格式[...]
2026-10-15 回复
[...]4核16G照常有 公网IP:端口 才能进维度NAT 型独立 IPCPU / 内存 / 磁盘性能完全一致一致出站连接(你连别人)无限制无限制入站连接(别人连你)需端口映射IP 直连可映射端口数平台规则(通常 5-20)65535价格独立 IP 一半以下全价结论先行:对 90% 的个人用户场景,NAT 型和独立 IP 的体验差距只在「配置端口映射」这一步。二、完全无感的场景:映射[...]
2026-10-18 回复
[...]netsh advfirewall firewall add rule name="GameRange" dir=in action=allow protocol=UDP localport=26901-26903完整的 Windows 环境准备(远程桌面连接、运行库安装、SteamCMD 用法、开机自启、8 个常见坑)见:《Windows 云服务器开服通用前置教程》→ htt[...]
2026-10-18 回复
[...]}反代见Nginx 反向代理与多站点配置,证书见免费 SSL 证书申请与 HTTPS 部署。三、SMTP:发信的发动机listmonk 本身不发信,它调度任务,真正发信靠 SMTP。三条路:方案成本适合注意第三方事务邮件服务(AWS SES、SendCloud、Mailgun)按量,很便宜生产环境首选需域名验证服务器自建 SMTP(Postfix/Exim)服务器成本有运维能力IP 信誉自己养,极[...]
2026-10-18 回复