Skip to content

feat(backend): Implement email notification service with templates #416

Description

@KuchiMercy

Description

nodemailer installed but no email service exists. Build email service with HTML templates, preference management, and async delivery.

Config: SMTP_HOST/PORT/USER/PASS, EMAIL_FROM in .env.example

Acceptance Criteria

  • EmailService in src/notifications/senders/
  • HTML templates: Welcome, Funded, Milestone Completed/Approved, Dispute Raised/Resolved, Refunded, Deadline Approaching
  • Each template: branding header, event details, CTA button, unsubscribe footer
  • String interpolation or handlebars templating
  • Integrate with NotificationPreferenceService (opt-out)
  • Queue emails for async delivery
  • SMTP failure retry: 3x exponential backoff
  • Log all sends: recipient, template, status
  • Dry-run mode for development
  • EMAIL_ENABLED flag (default false)
  • Unit tests for template rendering
  • Integration test with mock SMTP

Points: 150

Metadata

Metadata

Assignees

No one assigned

    Labels

    Stellar WaveIssues in the Stellar wave programbackendenhancementNew feature or requestnotificationsNotification systemphase-2Sprint 3-4: Core Feature Completion

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions