debold/GraphMailer.NET
GitHub: debold/GraphMailer.NET
一个 Windows SMTP 中继服务,接收遗留设备和应用的邮件并通过 Microsoft Graph API 投递到 Exchange Online,替代已弃用的 Basic Auth/SMTP AUTH。
Stars: 0 | Forks: 0
# GraphMailer
**一个 Windows SMTP 中继,通过 Microsoft 365 使用 Graph API 投递邮件。**
只能使用 SMTP 协议的遗留应用程序、扫描仪和设备依然可以正常工作——
GraphMailer 在本地 SMTP 端口接收它们的邮件,并将其转交给 Exchange Online,
这通过 Microsoft Graph API 完成,使用现代的仅应用身份验证,取代了
已弃用的 Basic Auth / SMTP AUTH。
## 功能
- **作为 Windows 服务运行** — 安装一次,重启后依然运行,没有控制台窗口。
- **标准 SMTP 监听器**,支持端口 25、465(隐式 TLS)和 587(STARTTLS),
可自由配置。TLS 证书直接从 Windows 证书存储中读取 — 续期安全,无需处理 PFX。
- **访问控制**:支持 SMTP 身份验证、基于用户的发件人限制、
IP 白名单/黑名单,以及自动封禁暴力破解客户端。
- **可靠的投递**:传入的邮件首先持久化到磁盘队列,然后通过 Graph 按照 Exchange 的重试计划进行发送。Internet 或 Graph 宕机永远不会丢失邮件;被永久拒绝的邮件会生成未送达报告(NDR)。
- **大附件**可通过 Graph 上传会话自动处理。
- **图形化配置工具**(无需手动编辑配置文件):提供引导式的 **Entra ID 设置向导**,为您注册应用程序和权限,提供实时的服务状态、投递统计、邮件追踪和日志查看器。
- **通过电子邮件发送运维报告**(每日/每周/每月),并在发生故障、证书过期和磁盘空间不足时向管理员发送通知。
- **密钥保持加密** — 密码和客户端密钥在静态存储时进行加密(使用 Windows 数据保护),绝不以明文形式保存。
- **MSI 安装程序**包含一个引导程序,可自动安装 .NET 8 运行时;
为每个界面提供打包的离线 HTML 帮助文档。
## 环境要求
- Windows x64(服务器或客户端),推荐使用 Windows Server 2016+
- 拥有 Exchange Online 邮箱的 Microsoft 365 租户
- .NET 8 Desktop Runtime(由安装包自动安装)
## 快速入门
1. 从 [Releases](../../releases) 页面下载 `GraphMailerSetup-.exe` 并运行。
2. 从“开始”菜单打开 **GraphMailer 配置工具** 并运行
**Entra ID 设置向导**(Graph API 页面)— 它会在您的租户中
注册应用程序并授予所需的权限(`Mail.Send`、`Mail.ReadWrite`、`User.Read.All`)。
3. 配置监听器、允许的发件人和 SMTP 用户以匹配您的环境,
然后将您的应用程序指向该中继。
内置的帮助文档(开始菜单 → *GraphMailer Help*)详细介绍了每一个页面,
包括快速入门指南和故障排除指南。
## 静默安装
```
GraphMailerSetup-.exe /quiet /norestart
```
## 许可证
[MIT](LICENSE)
标签:Microsoft Graph API, .NET 8, SMTP, Windows 服务, 系统运维, 邮件中继