Ghost 邮箱订阅功能在中国大陆的困境:Mailgun 注册受阻实录

Ghost 邮箱订阅功能在中国大陆的困境:Mailgun 注册受阻实录

本文记录了 Ghost 博客邮箱订阅功能因 Mailgun 在中国大陆无法注册而被迫关闭的完整过程,包括注册尝试、工单沟通及最终应对方案。


一、背景:Ghost 与 Mailgun

Ghost 博客平台内置了邮箱订阅(Newsletter)功能,读者可以通过输入邮箱地址订阅博客更新,Ghost 会自动将新文章以邮件形式推送给订阅者。这一功能的邮件发送能力依赖于第三方邮件服务——Mailgun

Ghost 官方推荐使用 Mailgun 作为邮件传输层,配置方式如下:

配置项 说明 示例值
mail.from 发件人地址 newsletter@yourdomain.com
mail.transport 传输协议 SMTP
mail.options.host SMTP 主机 smtp.mailgun.org
mail.options.port SMTP 端口 465
mail.options.auth.user Mailgun 用户名 postmaster@yourdomain.com
mail.options.auth.pass Mailgun 密码 <Mailgun 提供的密码>

完成配置后,Ghost 后台会自动激活「订阅」入口,读者可在博客首页看到订阅表单。


二、注册受阻:手机验证码无法接收

在尝试注册 Mailgun 账号时,注册流程要求验证手机号码。输入中国大陆手机号(格式:+86)后请求验证码,系统出现异常:

  • 无法收到短信验证码:多次尝试后,手机始终未收到任何验证短信
  • 请求次数超限:系统提示已超出允许的验证码请求次数上限("exceeded the allowed number of attempts")

提交给 Mailgun 官方的工单内容如下:

I am unable to complete email verification because I encountered an issue after entering my mobile phone number (+86 152******30) and requesting a verification code. The system notified me that I have exceeded the allowed number of attempts, along with other unspecified reminders.


三、官方回复:OFAC 制裁限制

Mailgun(现隶属于 Sinch 公司)官方客服回复如下:

Hello there,

Thank you for contacting Sinch Mailgun Support.

Unfortunately, we currently cannot serve customers from countries sanctioned by OFAC. We do apologize for the inconvenience, but we will be unable to provide our services for your emailing needs.

Regards,
Lilian | Sinch Mailgun Support

关键信息解读:

关键词 说明
OFAC 美国财政部海外资产控制办公室(Office of Foreign Assets Control),负责执行美国的经济制裁政策
sanctioned countries 受制裁国家列表,中国大陆地区在此限制范围内
cannot serve 明确表示无法为中国大陆用户提供任何服务

这意味着:Mailgun 在中国大陆地区完全不可用,不是因为技术限制,而是因为合规政策。


四、影响分析

Mailgun 不可用对 Ghost 博客的影响范围:

功能模块 是否受影响 说明
邮箱订阅入口 ✅ 受影响 无法发送订阅确认邮件
新文章推送 ✅ 受影响 无法将新文章内容以邮件形式推送给订阅者
会员注册验证 ✅ 受影响 会员系统依赖邮件验证
博客内容发布 ❌ 不受影响 文章发布与展示不依赖邮件服务
RSS 订阅 ❌ 不受影响 RSS 是独立于邮件的订阅渠道
评论功能 ❌ 不受影响 评论系统不依赖邮件

五、应对方案

5.1 方案一:隐藏邮箱订阅功能

由于无法注册 Mailgun,最直接的做法是将 Ghost 的邮箱订阅入口关闭,避免读者看到无法使用的订阅表单。

在 Ghost 后台操作:

  1. 进入 Settings → Members
  2. Subscription access 设置为 None 或关闭相关入口
  3. 确认首页不再显示订阅表单

5.2 方案二:使用替代邮件服务

部分 Ghost 用户尝试使用其他邮件服务替代 Mailgun:

替代服务 可用性 说明
SendGrid ❌ 中国大陆受限 同属美国公司,可能受类似合规限制
Amazon SES ⚠️ 需要海外 AWS 账号 可尝试通过海外区域使用
SMTPrelay ⚠️ 需要自行搭建 技术门槛较高
Resend ⚠️ 新兴服务 合规政策尚不明确

⚠️ 注意:替代服务可能同样面临 OFAC 合规限制,注册前需确认该服务是否接受中国大陆用户。

5.3 方案三:引导读者使用 RSS

关闭邮箱订阅后,可以在博客页面引导读者通过 RSS 方式订阅更新:

  • 在页面添加 RSS 订阅入口或图标
  • 说明 RSS 与邮箱订阅的区别
  • 提供 RSS 链接地址(Ghost 默认提供 /rss/ 路径)

六、反思与建议

此次经历带来的几点反思:

  1. 依赖单一海外服务的风险:Ghost 的邮箱订阅功能强依赖 Mailgun,当 Mailgun 因合规原因不可用时,整个订阅功能瘫痪,缺乏降级方案。
  2. 合规壁垒不可逾越:OFAC 制裁属于法律层面的限制,并非技术问题,无法通过配置或代理绕过。
  3. 替代渠道的重要性:在邮箱订阅不可用的情况下,RSS、社交媒体等替代渠道应提前规划。

对国内 Ghost 博客运营者的建议:

建议 优先级 说明
提前测试邮件服务可用性 在正式部署前确认所选邮件服务是否接受中国大陆用户
配置 RSS 订阅作为兜底 RSS 不受地域限制,可作为稳定的替代订阅渠道
关注 Ghost 社区动态 Ghost 未来可能支持更多邮件服务选项
考虑自建邮件服务 技术复杂度高,仅适合有运维能力的团队

七、实践总结

要点 说明 核心收益
Mailgun 在中国大陆不可用 因 OFAC 制裁合规限制,无法注册和使用 避免浪费时间尝试注册
手机验证码无法接收 中国大陆号码不在 Mailgun 服务范围内 确认问题根因是合规而非技术
关闭邮箱订阅入口 Ghost 后台 Members 设置中关闭 消除无效功能入口,改善用户体验
RSS 作为替代方案 Ghost 默认提供 /rss/ 路径 提供不受地域限制的订阅渠道
替代邮件服务需谨慎评估 其他海外服务可能存在同样合规限制 注册前务必确认服务可用性

本文记录的问题源于合规政策而非技术故障,目前暂无绕行方案。建议国内 Ghost 博客运营者优先使用 RSS 等不受地域限制的订阅方式,并持续关注 Ghost 官方对邮件服务选项的扩展进展。

阅读更多

Skills系统:可扩展AI能力设计

Skills系统:可扩展AI能力设计

概述 Skills系统是AI-Native架构中的重要组件,它允许通过声明式配置扩展AI的能力。本文将介绍Skills系统的设计与实现,让大模型能够像人类专家一样具备特定领域的能力。 什么是Skills系统 概念 Skills(技能)是一种声明式的AI能力扩展机制,类似于人类的"专业技能": 与Function Calling的区别 特性 Skills Function Calling 目的 改变AI的"思维"方式 扩展AI的"工具"能力 实现 系统提示词注入 API调用 持久性 会话级别 单次调用 复杂度 简单(配置) 复杂(开发) 灵活性 高(声明式) 低(编程式) 系统设计 架构 SKILL.

By 菱角
插件化架构设计模式

插件化架构设计模式

概述 插件化架构是一种将核心功能与扩展功能分离的设计模式,允许系统在运行时动态加载和卸载功能模块。本文将介绍如何在微服务平台中设计和实现插件化架构。 为什么需要插件化 插件化优势 1. 模块化:功能独立,边界清晰 2. 可扩展:按需加载,动态增删 3. 隔离性:插件间互不干扰 4. 可维护:独立开发、测试、部署 5. 可定制:用户按需选择功能 核心设计 架构概览 核心组件实现 1. 插件接口定义 // core/plugin.interface.ts // 插件接口 export interface IPlugin { // 插件名称 readonly name: string // 插件版本 readonly version: string // 插件配置 getConfig(): PluginConfig // 插件清单

By 菱角
gRPC服务通信设计与实践

gRPC服务通信设计与实践

概述 在微服务架构中,服务间通信是关键环节。相比REST API,gRPC提供了更高的性能和更强的类型安全。本文将介绍如何在微服务平台中设计和实现gRPC服务通信。 为什么选择gRPC gRPC vs REST对比 特性 gRPC REST 协议 HTTP/2 HTTP/1.1 序列化 Protocol Buffers (二进制) JSON (文本) 性能 高(二进制+压缩) 中(文本开销) 类型安全 强(代码生成) 弱(运行时检查) 流式通信 原生支持(双向流) 需额外实现(SSE/WebSocket) 代码生成 自动生成 手动编写 浏览器支持 需gRPC-Web 原生支持 调试难度

By 菱角
多语言微服务架构:Node.js与Python协作

多语言微服务架构:Node.js与Python协作

概述 在微服务架构中,根据场景选择最适合的编程语言是最佳实践。本文将介绍如何在微服务平台中实现Node.js与Python的协作,发挥各自技术优势。 技术选型策略 为什么混合使用 服务划分 Node.js服务(7个) 服务 功能 选择Node.js的原因 llm.api 大模型服务 高并发SSE流式响应 ucenter.api 用户中心 RESTful API标准实践 doc.api 文件服务 流式上传下载处理 resource.api 资源管理 gRPC高性能通信 rag.api 知识库服务 MongoDB集成便利 statistic.api 统计分析 事件驱动架构 pptonline.api PPT服务 与前端技术栈统一 Python服务(1个) 服务 功能 选择Python的原因

By 菱角