43 lines
1.6 KiB
Markdown
43 lines
1.6 KiB
Markdown
---
|
|
id: TASK-14
|
|
title: Send approved outreach through Stalwart SMTP
|
|
status: To Do
|
|
assignee: []
|
|
created_date: '2026-06-03 19:14'
|
|
labels:
|
|
- mvp
|
|
- email
|
|
- smtp
|
|
dependencies:
|
|
- TASK-13
|
|
references:
|
|
- PRD.md
|
|
priority: high
|
|
ordinal: 14000
|
|
---
|
|
|
|
## Description
|
|
|
|
<!-- SECTION:DESCRIPTION:BEGIN -->
|
|
Implement approved email sending through the self-hosted Stalwart mail server using SMTP/SMTPS and Nodemailer. The system must never send automatically before manual approval and must log recipient, subject, audit link, status, and errors in Convex.
|
|
<!-- SECTION:DESCRIPTION:END -->
|
|
|
|
## Acceptance Criteria
|
|
<!-- AC:BEGIN -->
|
|
- [ ] #1 Nodemailer is configured for Stalwart SMTP/SMTPS using environment or Convex secrets
|
|
- [ ] #2 E-Mail freigeben und senden sends only the currently approved/editable email draft to the visible recipient
|
|
- [ ] #3 A final send action shows recipient, subject, sender, and audit link before sending
|
|
- [ ] #4 Convex records sent timestamp, recipient, subject, audit link, SMTP result, and any error details
|
|
- [ ] #5 SMTP failures keep the lead in a retryable review state and do not mark the lead as contacted
|
|
<!-- AC:END -->
|
|
|
|
## Implementation Plan
|
|
|
|
<!-- SECTION:PLAN:BEGIN -->
|
|
1. Add SMTP transport configuration from secrets.
|
|
2. Add server-side send function that accepts only approved outreach IDs.
|
|
3. Add final confirmation UI with recipient, subject, sender, and audit link.
|
|
4. Store SMTP success/error outcomes and update lead/outreach status.
|
|
5. Test success and failure paths with safe non-production recipients before real use.
|
|
<!-- SECTION:PLAN:END -->
|