alveusgg / alveusgg/alveusgg

Implement infrastructure to send emails

Offen
#177 0 Kommentare 0 Reaktionen 1 zugewiesene Person Beansprucht von @pjeweb Auf GitHub ansehen
enhancement prio
Vorherrschende Sprache
TypeScript
Sterne
193
Forks
81
Ø Merge
16 Std. 46 Min.
Gemergte PRs (30 T.)
39

Beschreibung

Use or implement a service for emails. Ideally something that works in a serverless/edge environment.

Sending emails is probably not something we should do ourselves, because email would bounce a lot. Instead we should use one of the big services like AWS SES, Resend, SendGrid/Twilio, Postmark, Mailjet, Amply.

# Questions

- Allow subscribing without a user?
- Opt-in once or per topic?

# TODO

## Base

- [x] Domains/DNS: SPF, DKIM, DMARC
- [x] Base template (html/plain text)
- [ ] Handle bounces/complaints => unsubscribe/delete email address, retry soft bounces
- [ ] Admin dashboard with stats

## Admin emails

- [ ] Page for admins to manage their subscriptions

## Notifications

- [ ] Double opt-in
- Clear privacy policy?
- [ ] Clear opt-out (in mail footer)
- [ ] Update privacy policy?
- [ ] Page for users to manage their subscriptions ("preferences") (in mail footer)
- [ ] Track consent (when, how)
- [ ] Track topics the user is subscribed to?! (notifications, marketing, updates, etc.)
- [ ] Edge case: Users changing their email address (manually or through OAuth/OIDC) => verify new email, remove old email or update the subscription
- [ ] What to encrypt in the database?
- [ ] Queue/batch email sending

## More

- [ ] Click tracking?
- [ ] Export mail list feature?
- [ ] Import email addresses from Forms?
- [ ] Do we need to receive emails at the "From" header? notifications@alveus.gg?
- [ ] Add email as contact on Outlook https://support.microsoft.com/en-us/office/create-view-and-edit-contacts-and-contact-lists-in-outlook-com-5b909158-036e-4820-92f7-2a27f57b9f01
- [ ] BIMI (probably too much effort)

# Database models

- EmailSubscription (email address + tag, status, user, opt-in/opt-out, timestamps, consent info?)
- EmailMessage
- OutgoingEmail (email subscription + message id, bounces, retries)

# Use cases

- [ ] send notifications via email => #332
- [ ] show and tell post got approved
- [ ] marketing emails?
- [ ] admin events
- [ ] implement some utility to emit events internally that may trigger email/push notifications
- [ ] allow admins to subscribe to events with their email based on what roles/privileges they have
- [ ] add event for new show and tell submission

Beitragsleitfaden

Beitragsleitfaden öffnen

Bewertung

Dieses Issue wurde noch nicht bewertet.

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.