
jdrouet/catapulteCatapulte 是一款开源的自托管邮件发送器,旨在帮助用户快速、可靠地发送事务性邮件。它支持 MJML 模板渲染、动态数据插值,并通过连接 SMTP 服务器实现邮件投递。作为自托管解决方案,用户可完全掌控邮件发送流程和数据隐私,避免依赖第三方邮件服务的限制。
专注于事务性邮件场景,解决传统邮件服务投递延迟问题,确保登录验证、通知等关键邮件快速送达。
支持本地部署,满足企业内部网络环境或数据合规要求,无需依赖外部服务,避免网络代理限制。
无需将用户邮件数据提交给第三方服务,规避美国《爱国者法案》等***带来的数据访问风险,确保用户数据安全。
提供 MJML 模板支持,非技术人员可直接编辑邮件模板,减少开发团队频繁修改模板的工作量。
支持连接各类 SMTP 服务器(如本地服务器、Amazon SES 等),可通过环境变量灵活配置认证方式和传输加密。
推荐使用 Docker 部署,支持 amd64、i386 和 arm64v8 架构。以下命令可启动基础服务:
bashdocker run -d \ --name catapulte \ -e SMTP_HOSTNAME=localhost \ -e SMTP_PORT=25 \ -e SMTP_USERNAME=optional \ -e SMTP_PASSWORD=optional \ -e SMTP_TLS_ENABLED=true \ -e SWAGGER_ENABLED=true \ -e TEMPLATE_PROVIDER=local \ -e TEMPLATE_ROOT=/templates \ -p 3000:3000 \ -v /path/to/your/templates:/templates:ro \ jdrouet/catapulte:master
| 环境变量 | 描述 | 默认值 |
|---|---|---|
SMTP_HOSTNAME | SMTP 服务器主机名 | localhost |
SMTP_PORT | SMTP 服务器端口 | 25 |
SMTP_USERNAME | SMTP 认证用户名(可选) | optional |
SMTP_PASSWORD | SMTP 认证密码(可选) | optional |
SMTP_TLS_ENABLED | 是否启用 TLS 加密传输 | true |
SWAGGER_ENABLED | 是否启用 Swagger API 文档 | true |
TEMPLATE_PROVIDER | 模板提供器(当前支持 local) | local |
TEMPLATE_ROOT | 本地模板文件存放路径 | /templates |
bashcurl -X POST -v \ -H "Content-Type: application/json" \ --data '{"from":"alice@example.com","to":"bob@example.com","params":{"some":"data"}}' \ http://localhost:3000/templates/the-name-of-your-template
bashcurl -X POST -v \ -F attachments=@asset/cat.jpg \ -F from=alice@example.com \ -F to=bob@example.com \ -F params='{"some":"data"}' \ http://localhost:3000/templates/user-login
通过数组形式指定多个收件人:
bashcurl -X POST -v \ -H "Content-Type: application/json" \ --data '{"from":"alice@example.com","to":["bob@example.com","jon@example.com"],"params":{"some":"data"}}' \ http://localhost:3000/templates/the-name-of-your-template
Catapulte 使用 MJML 模板进行邮件渲染。模板文件需放置在 TEMPLATE_ROOT 指定的目录下(通过 -v 挂载本地目录到容器内)。模板支持动态数据插值,具体格式可参考项目仓库的 /template 文件夹示例。
对于生产环境,推荐结合 Amazon SES(Simple Email Service)使用,可参考项目文档中关于 AWS SES 集成的详细说明,以实现低成本、高可靠性的邮件投递。
启用 SWAGGER_ENABLED=true 后,可通过访问 http://localhost:3000/swagger 查看 OpenAPI 规范的 API 文档,包含所有可用接口的详细说明。





探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务