mass_mail_engine/README.md
warrenchen d49c30b447 feat: Add SQS integration for SES event processing
- Introduced SqsSesPollerWorker to poll messages from SQS and process SES events.
- Implemented SesEventProcessingService to handle SES event payloads and store them in the database.
- Updated DevMockSenderWorker to support new SES sending methods and improved logging for unsubscribe headers.
- Added AWS SDK for SQS to project dependencies.
2026-02-26 17:10:25 +09:00

61 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 與排程
- 對接 ESPAmazon SES + Mock
- 記錄投遞結果與退信(必要時回寫 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`)。
## 目前待辦
- SES/SNS 簽章完整驗證(目前 `Ses__SkipSignatureValidation=false` 僅檢查 header 存在)
- 事件重試/DLQ 策略補強(目前主要依 SQS redrive policy
- recipient 狀態機擴充delivery/open/click 的完整優先序與狀態轉換)