# Notification 測試 單一入口:`make notify-test`,用 **METHOD** 指定要測哪一種,一次只跑一項。 異步(Enqueue + Worker)說明見 [internal/model/notification/README.md](../internal/model/notification/README.md#測異步enqueue)。 ## 前置 ```bash make deps-up make mongo-index ``` MailHog 本機 SMTP:`make deps-up-smtp`,yaml 設 `SMTP.Host=localhost`、`Port=1025`。 ## METHOD 一覽 | METHOD | 需要參數 | 說明 | |--------|----------|------| | `email-send` | `TO=` | 同步寄驗證信 | | `email-enqueue` | `TO=` | 異步佇列 + Worker 送達 | | `email-idempotency` | `TO=` | 同 key 不重送 | | `sms-send` | `PHONE=` | 同步簡訊 | | `sms-enqueue` | `PHONE=` | 異步簡訊 | | `member-email` | `TO=` | Member 信箱 OTP 流程 | | `member-phone` | `PHONE=` | Member 手機 OTP 流程 | | `admin-dlq` | — | 列出 DLQ | Provider 由 `gateway.dev.yaml` 的 `SMTP/SES/Mitake.Enable` 決定。 不連外網時加 **`MOCK=1`**(強制 mock)。 ## 範例 ```bash # 真實 SMTP(依 yaml) make notify-test METHOD=email-send TO=you@example.com # mock,不真的寄 make notify-test METHOD=email-send TO=test@example.com MOCK=1 make notify-test METHOD=email-enqueue TO=you@example.com make notify-test METHOD=sms-send PHONE=0912345678 make notify-test METHOD=member-email TO=you@example.com make notify-test METHOD=admin-dlq ``` 成功輸出末尾為 `OK`;失敗為 `FAIL: ...` 且 exit 1。 等同: ```bash go run ./cmd/notify-test -method email-send -to you@example.com -f etc/gateway.dev.yaml go run ./cmd/notify-test -method email-send -to t@e.com -mock ``` ## Provider 提示 - 只測 **SES**:關 `SMTP.Enable`,開 `SES.Enable` - 只測 **Mitake**:`SMS.Mitake.Enable: true` + `METHOD=sms-send` - 同時開 SMTP + SES:依 **Sort** failover,通常只會打到第一個成功的