Builders’ PortBUILDERS’ PORTNew post
Sign in
Discussion

ZeptoMail 邮件发送插件,通过 Zoho ZeptoMail API 接管全站邮件发送

老大 ZY68/5 22:27 · 0 次浏览

ZeptoMail 邮件发送插件

替代传统 SMTP,通过 Zoho ZeptoMail API 接管全站邮件发送

(原帖图片:QQ20260805-222324.jpg;https://img-bucket.r2-asia.pfx.cc/2026/08/05/vsk0tvIv.jpg)

插件概述

ZeptoMail 邮件发送插件(xiunext_transmail)为 XiunoX 站点提供基于 Zoho ZeptoMail API 的邮件发送方案,以 HTTP API 调用替代传统 SMTP 协议,实现更稳定、更高效的邮件投递。插件安装后自动接管全站所有邮件发送场景,无需修改任何核心文件。

当前版本: 1.0.5 | 适用系统: XiunoX 1.1+ | 作者: Xiunext

核心特性

1. 全场景邮件接管

插件通过 Hook 机制无缝接管以下邮件发送场景:

|

场景

|

说明

|

注册验证码

|

用户注册时的邮箱验证码发送

|

密码找回

|

找回密码时的验证码发送

|

邮箱修改

|

用户修改绑定邮箱时的验证码发送

2. 全球多区域支持

内置 8 个 Zoho 数据中心节点,根据账号托管区域自动路由至最近的 API 端点:

zoho.com — 全球(默认)

zoho.eu — 欧洲

zoho.in — 印度

zoho.com.cn — 中国

zoho.com.au — 澳大利亚

zohocloud.ca — 加拿大

zoho.sa — 沙特

zoho.jp — 日本

3. SMTP 故障回退

提供可配置的 SMTP 备用通道。当 ZeptoMail API 发送失败时,自动回退至站点原生 SMTP 配置继续投递,确保邮件不丢失。

4. 模板邮件支持

除直接发送 HTML/纯文本邮件外,还支持 ZeptoMail 模板发送(send_template),可通过 template_key 和 merge_info 调用 ZeptoMail 后台预设的邮件模板,实现内容与代码分离。

5. 安全与健壮性

Token 格式校验 — 严格验证 Zoho-enczapikey 格式,防止注入

邮箱地址校验 — 使用 FILTER_VALIDATE_EMAIL 标准验证

发件人名称过滤 — Unicode 安全正则,限制 50 字符

CSRF 防护 — 设置页表单内置 CSRF Token

双重 HTTP 客户端 — 优先 cURL(含 SSL 验证失败自动降级),回退 file_get_contents

完整错误日志 — API 错误、HTTP 异常均记录至 xiunext_transmail_error 日志

后台管理

插件提供独立的管理后台设置页面,包含:

发件人邮箱 — 须为 ZeptoMail 中已验证的地址

发件人名称 — 留空时自动使用站点名称

Send Mail Token — 密码输入框,支持显示/隐藏切换

账号托管区域 — 下拉选择 Zoho 数据中心

默认邮件格式 — HTML 富文本 / 纯文本

SMTP 备用通道 — 开关控制

测试邮件发送 — 保存配置后即时发送测试邮件验证连通性

右侧状态面板实时显示当前发送通道、发件身份和故障回退状态;快速配置指引帮助新用户三步完成设置。

同时,在系统 SMTP 设置页面会自动插入提示横幅,标明邮件发送已被 TransMail 接管,避免管理员重复配置。

插件联动

与 xnx_login_alert(登录提醒)插件深度兼容。当登录提醒插件已启用但站点未配置 SMTP 时,本插件自动接管登录提醒邮件的发送,无需额外配置。

安装与配置

将插件目录上传至 plugin/xiunext_transmail/

在后台插件管理中安装并启用

进入插件设置页,填写以下信息:

在 ZeptoMail 中验证发件域名

创建 Mail Agent 并生成 Send Mail Token

填入发件人邮箱和 Token,选择托管区域

勾选"保存后发送测试邮件",验证配置是否正确

保存配置,插件即刻接管全站邮件发送

卸载说明: 卸载插件将自动清除所有配置数据,邮件发送恢复为系统原生 SMTP。

技术细节

零核心文件修改,完全通过 Hook 机制实现接管

model_inc_file Hook 将模型类注入编译缓存,避免运行时重复加载

邮件发送成功后自动写入系统邮件日志(xn_email_log_write)

Report content

Replies and answers 0

Sorted by time · accepted answer first

No replies yet — share your thinking.

Related discussions

我前几天从别人手里500收购过来的这个bbs域名,这几天有人出1000想收,纠结中,卖不卖呢?把 Next.js 部署到 Cloudflare,账单从 $25 降到了 $0聚域 JY88 com51 cn32 top10BBS.SS带域名网站一起打包出售,报价550元潮玩精品,C位极品,CWJP.COM,22年老米,2027年12月到期,1111元出