Initial commit: email-openclaw bridge v1
Full pipeline: IMAP ingress -> OpenClaw dispatch -> callback -> SMTP reply. SQLite stateful storage with idempotency, threading, and retry logic. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,14 @@
|
||||
# Checkpoint 005 — Feedback kết quả kiểm tra
|
||||
|
||||
## Kết luận
|
||||
✅ **Đạt** theo tiêu chí checkpoint.
|
||||
|
||||
## Bằng chứng
|
||||
- Verify command: `go build ./...` chạy thành công.
|
||||
- Có `internal/mail/smtp.go` với gửi reply SMTP và retry 3 lần theo backoff `1s -> 5s -> 15s`.
|
||||
- Mỗi lần retry tăng `attempt_smtp`, set `status=SMTP_RETRYING`; hết retry set `status=FAILED` + `last_error`; thành công set `status=COMPLETED`.
|
||||
- Email reply có threading headers `In-Reply-To` và `References`, body lấy từ `task.AIResponse`.
|
||||
- `cmd/bridge/main.go` đã wire SMTP egress qua `api.NewRouter(..., smtpSender.SendReplyFunc())`.
|
||||
|
||||
## Lưu ý (không chặn checkpoint)
|
||||
- Header threading đang dùng `task.MessageID` trực tiếp; một số hệ thống mail đôi khi yêu cầu định dạng `<message-id>` nhất quán để thread ổn định hơn.
|
||||
Reference in New Issue
Block a user