mass_mail_engine/README.md

62 lines
2.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Send Engine發送引擎
此專案為獨立的發送引擎,負責寄送、節流、退信處理與追蹤。文件統一放在 `docs/`
## 目標MVP
- 接收 Member Center 的訂閱事件activated / unsubscribed / preferences.updated
- 多租戶名單快照(依 tenant/list且僅增量更新
- 管理 Campaign / Send Job 與排程
- 對接 ESPSES / SendGrid / Mailgun
- 記錄投遞結果與退信(必要時回寫 Member Center
## 既定條件
- 與 Member Center 相同框架C# .NET Core
- Send engine 不提供跨租戶名單查詢
- 事件同步採 event/queue 或 webhook二擇一即可
- DBPostgreSQL
## 範圍(第一階段)
- 事件 ingest 與名單增量同步
- Campaign / Send Job 基本流程
- Sender Adapter至少一種 ESP
- 投遞與退信記錄
- SES 回流建議採 `Configuration Set -> SNS -> SQS -> Worker`
## 非目標(暫不處理)
- 自建 SMTP server
- 跨租戶名單查詢
- 行銷自動化或行為追蹤
## 文件
- `docs/DESIGN.md`:系統設計總覽、核心模組與資料流
- `docs/FLOWS.md`:主要業務流程(同步、寄送、退信)
- `docs/OPENAPI.md`API 規格說明與補充規則
- `docs/SCHEMA.sql`:資料庫 schemaPostgreSQL
- `docs/TECH_STACK.md`:技術棧與選型
- `docs/INSTALL.md`:安裝、初始化與維運指令
- `docs/USE_CASES.md`:需求用例(角色、情境、驗收)
## 專案結構
```text
mass_mail_engine/
├── src/
│ ├── SendEngine.Api/ # REST API事件 ingest、送信、管理 API
│ ├── SendEngine.Installer/ # 安裝與初始化 CLImigrate/init/admin
│ ├── SendEngine.Application/ # 應用層介面與 DTO
│ ├── SendEngine.Infrastructure/# EF Core、ESP Adapter、服務實作
│ └── SendEngine.Domain/ # 領域實體與常數
├── docs/ # 專案文件
├── .vscode/ # 本機開發啟動與工作設定
├── SendEngine.sln # Solution
└── README.md
```
## Build
使用 VS Code `Run Build Task`(預設執行 `dotnet build SendEngine.sln`)。
## 待確認事項
- 事件系統選擇Kafka/RabbitMQ/SNS+SQS / Webhook
- ESP 優先順序SES / SendGrid / Mailgun
- 退信回寫的規則hard bounce / soft bounce
- 追蹤事件範圍open / click / unsubscribe