Nextcloud 版 Missivus
Nextcloud 发出的一切——密码重置、共享通知、动态摘要、管理员告警——都以一个免费共享邮箱的名义通过 Microsoft Graph 投递。无需 SMTP,无需用户登录,也不必另外运行中继守护进程。
对于 Microsoft 365 租户,SMTP AUTH 基本身份验证自 2026 年 12 月底起默认禁用,此后新建租户默认不可用;最终移除时间将公布于 2027 年下半年。而 Nextcloud 的外发邮件设置只认 SMTP 或 sendmail。 最新时间表(2026 年 1 月)
它做什么
Nextcloud 产生的每一封邮件
Missivus 用一个直接对话 Graph API 的装饰器替换掉 Nextcloud 的系统邮件组件——核心邮件以及每一个使用 Nextcloud 邮件组件的应用都被覆盖,不必逐个应用去切换。
一个邮箱,由 Exchange 强制限定
整体设计围绕一条限定到单个免费共享邮箱的应用程序访问策略。即便凭据完全泄露,也只能以恰好一个免回复地址发信——安装指南把这一步当作头等大事,并给出验证它已生效的命令。
大附件也能处理
小于 Graph 那个约 3 MB 内联上限的文件走内联;更大的文件会自动通过 Graph 的上传会话上传。这里没有任何会被设置错的开关。
密码或证书
客户端密码是最快的入门方式,也是默认选项;证书认证作为可选的加固手段同样受支持。令牌缓存在 Nextcloud 的分布式缓存中,并留有安全余量。
机密可以不进数据库
每个值都可以来自 config.php 里的 missivus 数组,它优先于设置界面——由文件管理的机密永远不会碰到数据库,而已存储的机密是只写的敏感值。
出错就报,绝不静默
安装后默认关闭。每一次 Graph 失败都会以 error 级别记录并显示在设置页面上,绝不吞掉。测试邮件按钮、occ missivus:test 和 occ missivus:status 可以端到端验证整条链路。回退到 Nextcloud 自带邮件组件的选项默认关闭。
用应用程序权限,而不是委派登录
常见的 Microsoft 365 发信路线都让某个人的账户成为发件人——由真人登录,并且一直保持登录。对服务器来说,这个形状是错的。
| Missivus——应用程序权限 | 委派发信方案 | |
|---|---|---|
| 谁在发信 | 应用程序本身,以一个免费共享邮箱的名义 | 某个人的账户,靠点一下“登录”连接上 |
| 配置方式 | 管理员创建一次应用注册 | 由真人登录并一直保持登录 |
| 有人离职时 | 什么都不会发生 | 邮件中断 |
| 凭据泄露时的影响范围 | 一个邮箱,由 Exchange 强制限定 | 那个人能做的一切 |
| 额外的服务 | 没有 | 有时中间还得架一个 SMTP 中继 |
环境要求
- Nextcloud 33 或 34(自托管),PHP 8.2 及以上——没有 Composer 依赖,没有 SDK,没有第三方运行时代码
- 一个 Microsoft 365 租户,以及一位能创建应用注册、授予管理员同意并运行一条 Exchange Online PowerShell 命令的管理员
- 一个用于发信的共享邮箱——它不需要许可证
- 一次性的 Microsoft 端配置大约需要三十分钟
获取应用
从 GitHub 下载
采用 App Store 目录结构的发行版 tarball、源码、更新日志和问题追踪。
Nextcloud App Store
Nextcloud App Store 上的条目正在准备中——在它上线之前,请用 GitHub 发行版 tarball 安装。