利用甲骨文云 Oracle 免费邮件传送服务 Email Delivery 搭建 SMTP 发信服务
原文地址 https://www.nodeseek.com/post-458800-1
![图片[1] - 利用甲骨文云 Oracle 免费邮件传送服务 Email Delivery 搭建 SMTP 发信服务 - 清~幽殇 图片[1] - 利用甲骨文云 Oracle 免费邮件传送服务 Email Delivery 搭建 SMTP 发信服务 - 清~幽殇](https://i0.wp.com/k.663618.xyz/pic/250923139XGJt.png)
用 OCI 白嫖发信服务的经历
之前我也尝试过自建 Postfix / Exim,结果发现:复杂、麻烦,好不容易搭建好了还容易进垃圾箱。后来偶然发现 Oracle Always Free 居然提供免费的 Email Delivery 服务,那就动手搞一搞。过程写下来,算是一个小记。
1. 进入控制台
先登录 OCI 后台:
- 选择 开发人员服务 → 应用程序集成 → 电子邮件传送
![图片[2] - 利用甲骨文云 Oracle 免费邮件传送服务 Email Delivery 搭建 SMTP 发信服务 - 清~幽殇 图片[2] - 利用甲骨文云 Oracle 免费邮件传送服务 Email Delivery 搭建 SMTP 发信服务 - 清~幽殇](https://i0.wp.com/k.663618.xyz/pic/250923604LVdz.png)
2. 创建电子邮件域
点击 添加电子邮件域。
![图片[3] - 利用甲骨文云 Oracle 免费邮件传送服务 Email Delivery 搭建 SMTP 发信服务 - 清~幽殇 图片[3] - 利用甲骨文云 Oracle 免费邮件传送服务 Email Delivery 搭建 SMTP 发信服务 - 清~幽殇](https://i0.wp.com/k.663618.xyz/pic/2509230975JSR.png)
![图片[4] - 利用甲骨文云 Oracle 免费邮件传送服务 Email Delivery 搭建 SMTP 发信服务 - 清~幽殇 图片[4] - 利用甲骨文云 Oracle 免费邮件传送服务 Email Delivery 搭建 SMTP 发信服务 - 清~幽殇](https://i0.wp.com/k.663618.xyz/pic/2509238387m29.png)
3. 配置 DKIM
进入刚刚添加的电子邮件域 → DKIM → 添加 DKIM。
![图片[5] - 利用甲骨文云 Oracle 免费邮件传送服务 Email Delivery 搭建 SMTP 发信服务 - 清~幽殇 图片[5] - 利用甲骨文云 Oracle 免费邮件传送服务 Email Delivery 搭建 SMTP 发信服务 - 清~幽殇](https://i0.wp.com/k.663618.xyz/pic/250923642YnPu.png)
- 设置一个 DKIM 选择器前缀(随意输入)。
![图片[6] - 利用甲骨文云 Oracle 免费邮件传送服务 Email Delivery 搭建 SMTP 发信服务 - 清~幽殇 图片[6] - 利用甲骨文云 Oracle 免费邮件传送服务 Email Delivery 搭建 SMTP 发信服务 - 清~幽殇](https://i0.wp.com/k.663618.xyz/pic/250923241i52b.png)
- 获取到 CNAME 记录和值:
![图片[7] - 利用甲骨文云 Oracle 免费邮件传送服务 Email Delivery 搭建 SMTP 发信服务 - 清~幽殇 图片[7] - 利用甲骨文云 Oracle 免费邮件传送服务 Email Delivery 搭建 SMTP 发信服务 - 清~幽殇](https://i0.wp.com/k.663618.xyz/pic/250923885PfIv.png)
4. 在 Cloudflare 添加 CNAME 解析
以 Cloudflare 为例:
CNAME 记录: dkim-selector._domainkey.yourdomain.com.
CNAME 值: dkim-selector.yourdomain.com.dkim.xsp1.oracleemaildelivery.com![图片[8] - 利用甲骨文云 Oracle 免费邮件传送服务 Email Delivery 搭建 SMTP 发信服务 - 清~幽殇 图片[8] - 利用甲骨文云 Oracle 免费邮件传送服务 Email Delivery 搭建 SMTP 发信服务 - 清~幽殇](https://i0.wp.com/k.663618.xyz/pic/250923229qyCo.png)
- Name:
dkim-selector._domainkey - Target:
dkim-selector.yourdomain.com.dkim.xsp1.oracleemaildelivery.com - Proxy: 关闭(灰云),只保留 DNS。
⚠️ 千万别整串粘贴 dkim-selector._domainkey.yourdomain.com. 到 Name,Cloudflare 会进行域名拼接,仔细检查图中圈出来的部分
5. 验证 DKIM 状态
等一会儿,刷新后变绿:
![图片[9] - 利用甲骨文云 Oracle 免费邮件传送服务 Email Delivery 搭建 SMTP 发信服务 - 清~幽殇 图片[9] - 利用甲骨文云 Oracle 免费邮件传送服务 Email Delivery 搭建 SMTP 发信服务 - 清~幽殇](https://i0.wp.com/k.663618.xyz/pic/250923847SrSM.png)
6. 创建批准的发件人
进入 批准的发件人 → 创建批准的发件人。
![图片[10] - 利用甲骨文云 Oracle 免费邮件传送服务 Email Delivery 搭建 SMTP 发信服务 - 清~幽殇 图片[10] - 利用甲骨文云 Oracle 免费邮件传送服务 Email Delivery 搭建 SMTP 发信服务 - 清~幽殇](https://i0.wp.com/k.663618.xyz/pic/250923167A5hK.png)
示例:no-reply@yourdomain.com
![图片[11] - 利用甲骨文云 Oracle 免费邮件传送服务 Email Delivery 搭建 SMTP 发信服务 - 清~幽殇 图片[11] - 利用甲骨文云 Oracle 免费邮件传送服务 Email Delivery 搭建 SMTP 发信服务 - 清~幽殇](https://i0.wp.com/k.663618.xyz/pic/250923848OWsx.png)
7. 配置 SPF
路径:电子邮件域 → yourdomain.com → 批准的发件人 → 查看 SPF。
![图片[12] - 利用甲骨文云 Oracle 免费邮件传送服务 Email Delivery 搭建 SMTP 发信服务 - 清~幽殇 图片[12] - 利用甲骨文云 Oracle 免费邮件传送服务 Email Delivery 搭建 SMTP 发信服务 - 清~幽殇](https://i0.wp.com/k.663618.xyz/pic/250923175vGfF.png)
选择地区:
![图片[13] - 利用甲骨文云 Oracle 免费邮件传送服务 Email Delivery 搭建 SMTP 发信服务 - 清~幽殇 图片[13] - 利用甲骨文云 Oracle 免费邮件传送服务 Email Delivery 搭建 SMTP 发信服务 - 清~幽殇](https://i0.wp.com/k.663618.xyz/pic/250923931k5Pk.png)
比如:
v=spf1 include:rp.oracleemaildelivery.com include:ap.rp.oracleemaildelivery.com include:eu.rp.oracleemaildelivery.com ~all8. 确认域配置
全部都显示 活动:
- 生命周期状态
- DKIM 签名
- SPF
如果 SPF 一直不亮,先继续下一步,发个测试邮件再回来,通常就好了。
9. 获取 SMTP Endpoint
控制台 → 配置 → 查看 SMTP/HTTP 端点。
![图片[14] - 利用甲骨文云 Oracle 免费邮件传送服务 Email Delivery 搭建 SMTP 发信服务 - 清~幽殇 图片[14] - 利用甲骨文云 Oracle 免费邮件传送服务 Email Delivery 搭建 SMTP 发信服务 - 清~幽殇](https://i0.wp.com/k.663618.xyz/pic/250923125swmT.png)
10. 生成 SMTP 凭证
路径:右上角头像 → 用户设置 → 生成身份证明。
![图片[15] - 利用甲骨文云 Oracle 免费邮件传送服务 Email Delivery 搭建 SMTP 发信服务 - 清~幽殇 图片[15] - 利用甲骨文云 Oracle 免费邮件传送服务 Email Delivery 搭建 SMTP 发信服务 - 清~幽殇](https://i0.wp.com/k.663618.xyz/pic/250923980swTv.png)
![图片[16] - 利用甲骨文云 Oracle 免费邮件传送服务 Email Delivery 搭建 SMTP 发信服务 - 清~幽殇 图片[16] - 利用甲骨文云 Oracle 免费邮件传送服务 Email Delivery 搭建 SMTP 发信服务 - 清~幽殇](https://i0.wp.com/k.663618.xyz/pic/250923287FHi3.png)
- 凭证只会显示一次,记得存好。
- 免费账户最多 2 个 SMTP 身份。
![图片[17] - 利用甲骨文云 Oracle 免费邮件传送服务 Email Delivery 搭建 SMTP 发信服务 - 清~幽殇 图片[17] - 利用甲骨文云 Oracle 免费邮件传送服务 Email Delivery 搭建 SMTP 发信服务 - 清~幽殇](https://i0.wp.com/k.663618.xyz/pic/250923718egdJ.png)
11. Python 脚本测试
# send_oci_email.py
import smtplib
from email.mime.text import MIMEText
from email.header import Header
from email.utils import formataddr
SMTP_SERVER = "smtp.email.<your-region>.oci.oraclecloud.com"
SMTP_PORT = 587
SMTP_USER = "OCI SMTP username"
SMTP_PASS = "OCI SMTP password"
FROM_ADDR = "approved-sender@yourdomain.com"
FROM_NAME = "测试发送人"
TO_ADDR = "target@example.com"
msg = MIMEText("Hello from OCI Email Delivery!", "plain", "utf-8")
msg["Subject"] = Header("OCI Email Test", "utf-8")
msg["From"] = formataddr((str(Header(FROM_NAME, "utf-8")), FROM_ADDR))
msg["To"] = TO_ADDR
try:
with smtplib.SMTP(SMTP_SERVER, SMTP_PORT, timeout=20) as server:
server.ehlo()
server.starttls()
server.ehlo()
server.login(SMTP_USER, SMTP_PASS)
server.sendmail(FROM_ADDR, [TO_ADDR], msg.as_string())
print("邮件发送成功!")
except Exception as e:
print("邮件发送失败:", e)12. 免费额度
- 每天 200 封(2 MB = 1 封邮件,超过按比例计算)。
- 最多 2000 个发件人。
- 每分钟最多 10 封。
- 附件支持,最大 2 MB(含 base64 和 header) 。
![图片[18] - 利用甲骨文云 Oracle 免费邮件传送服务 Email Delivery 搭建 SMTP 发信服务 - 清~幽殇 图片[18] - 利用甲骨文云 Oracle 免费邮件传送服务 Email Delivery 搭建 SMTP 发信服务 - 清~幽殇](https://i0.wp.com/k.663618.xyz/pic/250923079ZLhF.png)
总结
现在你就得到了一个 稳定又不进垃圾箱的邮件发信服务,亲测 Outlook 和 Gmail 都不会进入垃圾邮件。而且配置下来也没多复杂。相比折腾自建 MTA,OCI 的方案更加简单且免费,作为一些个人项目的验证码发信服务完全足够了。