sinhaparth5/openmailer
GitHub: sinhaparth5/openmailer
OpenMailer 是一个基于 Spring Boot 的自托管批量邮件平台,提供模板管理、活动发送、域名验证等功能,让团队在自己的基础设施上独立运行邮件操作。
Stars: 0 | Forks: 0
# OpenMailer
OpenMailer 是一个自托管邮件平台,使用 Spring Boot、PostgreSQL、Redis、Thymeleaf 和 Tailwind CSS 构建。
## 概述
OpenMailer 专为希望在自己的基础设施上运行邮件操作,而不是完全依赖第三方 SaaS 工具的团队而设计。
它分离了几个核心关注点:
- Spring Boot 中的应用逻辑和 UI
- PostgreSQL 中的持久化数据
- Redis 中的临时/缓存工作负载
- VPS 边缘的反向代理和 TLS
## 核心概念
- 模板定义了可复用的邮件内容。
- 活动使用模板加上收件人来发送批量邮件。
- 域名控制已验证的发件人身份和 DNS 记录。
- 提供商负责处理出站投递,例如 SMTP 或外部邮件服务。
## 技术栈
- Java 25
- Spring Boot
- PostgreSQL
- Redis
- Thymeleaf
- Tailwind CSS
- Docker Compose
## 本地开发
安装依赖:
```
npm install
```
运行应用:
```
./mvnw spring-boot:run
```
以监听模式运行 Tailwind:
```
npm run watch:css
```
应用 URL:
```
http://localhost:8080
```
## 构建
编译:
```
./mvnw compile
```
运行测试:
```
./mvnw test
```
打包:
```
./mvnw clean package
```
## 生产环境
部署专为带有 Docker Compose 的 VPS 设计。
主要文件:
- `deploy/compose.prod.yml`
- `.github/workflows/deploy-prod.yml`
- `architecture/DEPLOY.md`
在 VPS 上,应用运行在反向代理之后,并在内部暴露于:
```
127.0.0.1:8080
```
在生产环境中,通常的请求流程是:
```
Client -> reverse proxy / WAF -> OpenMailer app -> PostgreSQL / Redis
```
## 重要路径
- `src/main/java` — 后端代码
- `src/main/resources/templates` — Thymeleaf 视图
- `src/main/resources/static` — CSS、JS、图片
- `src/test/java` — 测试
- `architecture` — 部署和进度文档
## 备注
- 在 VPS 上使用 `openmailer.env` 配置生产环境变量。
- CI/CD 应仅更新 `openmailer-app`。
- 自定义错误页面位于 `src/main/resources/templates/error`。
标签:DNS记录管理, Docker Compose, Java 25, JS文件枚举, PostgreSQL, Redis, SEO关键词:Spring Boot邮件系统, SEO关键词:开源邮件系统, SEO关键词:批量邮件软件, SEO关键词:自托管邮件营销, SMTP, Spring Boot, Tailwind CSS, Thymeleaf, VPS部署, WAF, 企业级邮件系统, 反向代理, 发送者身份验证, 后端开发, 域名验证, 开源邮件系统, 批量邮件发送, 搜索引擎查询, 数据库, 模板引擎, 测试用例, 版权保护, 独立站邮件系统, 缓存管理, 自托管平台, 营销自动化, 软件分析, 邮件模板, 邮件营销