Skip to content

Email Notifications

Quackback sends email notifications to keep users and admins informed. Voters are notified when their requested features ship. Admins get alerts when new feedback arrives. Configure one sending provider (SMTP, Amazon SES, or Resend) and emails send automatically.

Overview

Email notifications cover two audiences:

For end users (voters and authors):

  • Status change notifications when a post they voted on or authored changes status
  • Comment notifications when someone replies to their post
  • Subscription updates for posts they're watching

For admins and team members:

  • New feedback alerts when a post is submitted
  • Mentions when tagged in a comment

Prerequisites

  • Admin access to your Quackback workspace
  • Credentials for one sending provider: an SMTP server, Amazon SES, or Resend

Setup

Configure exactly one sending provider with environment variables, then restart Quackback. If more than one provider is configured, the app refuses to start and the log names the conflicting variables. Remove all but one.

Every provider also needs a sender address:

EMAIL_FROM=Quackback <feedback@yourcompany.com>

Option 1: SMTP

SMTP works with any email provider: SendGrid, Postmark, Mailgun, Gmail, or your own mail server.

EMAIL_SMTP_HOST=smtp.example.com
EMAIL_SMTP_PORT=587
EMAIL_SMTP_USER=your-username
EMAIL_SMTP_PASS=your-password
# For port 465 (implicit TLS):
# EMAIL_SMTP_SECURE=true

Common provider settings:

ProviderHostPort
SendGridsmtp.sendgrid.net587
Postmarksmtp.postmarkapp.com587
Mailgunsmtp.mailgun.org587
Gmailsmtp.gmail.com587

Option 2: Amazon SES

Send through the SES API. All three variables are required. An IAM user with ses:SendEmail is enough.

EMAIL_SES_ACCESS_KEY_ID=AKIA...
EMAIL_SES_SECRET_ACCESS_KEY=...
EMAIL_SES_REGION=us-east-1

Set EMAIL_SES_REGION to the region your sending identity is verified in. Identities are regional, so there is no default, and the wrong region rejects every send.

Option 3: Resend

EMAIL_RESEND_API_KEY=re_xxxxxxxxxxxx

RESEND_API_KEY is accepted as an alias.

Receiving through Resend while another provider sends. Resend's inbound webhook carries no message body, so Quackback fetches it with your Resend key. To keep a Resend key for receiving only while SMTP or SES sends, set EMAIL_INBOUND_PROVIDER=resend. The key is then used for inbound mail only and doesn't count as a second sending provider. See Inbound email.

If no provider is configured, OTP codes are printed to the server log instead of emailed. All other email notifications are skipped.

How Notifications Work

User Notifications

Users receive email when events occur on posts they're connected to:

EventWho gets notified
Status change (for example, "Planned" to "Shipped")All voters and the post author
New comment on a postPost author and users watching the post
Admin reply to a postPost author

Users can unsubscribe from individual posts or all notifications from their account settings.

Admin Notifications

Admins receive email for workspace-level events:

EventWho gets notified
New post submittedAdmins with new-post alerts enabled
@mention in a commentThe mentioned admin

Configure admin notification preferences in Admin → Settings → Notifications.

Authentication Emails

Quackback uses email for passwordless authentication:

  • OTP codes: six-digit codes sent when a user signs in with email
  • Magic links: one-click sign-in links (when enabled)

These are sent regardless of notification preferences.

Configuration

Sender Identity

The EMAIL_FROM address appears in the "From" field of all emails. Use a domain you own and have configured with SPF, DKIM, and DMARC records. This improves deliverability and prevents emails from landing in spam.

Use a subdomain like feedback@mail.yourcompany.com to separate feedback notifications from your primary email domain's reputation.

Custom Branding

Emails automatically use your workspace branding:

  • Logo: displayed in the email header
  • Workspace name: used in email subjects and footers
  • Accent color: applied to buttons and links

Configure branding in Admin → Settings → Branding.

Deliverability

To ensure emails reach inboxes:

  1. Set up SPF: add your email provider to your domain's SPF record
  2. Enable DKIM: sign outgoing emails with your domain's DKIM key
  3. Configure DMARC: set a DMARC policy for your sending domain
  4. Use a dedicated sending domain: avoid sharing reputation with marketing emails

Troubleshooting

Emails Not Sending

  1. Check that one provider is configured: EMAIL_SMTP_HOST, the three EMAIL_SES_* variables, or EMAIL_RESEND_API_KEY, plus EMAIL_FROM
  2. Review server logs for connection or authentication errors
  3. Verify the SMTP port is not blocked by your hosting provider
  4. For SES, confirm EMAIL_SES_REGION matches the region your sending identity is verified in

App refuses to start: more than one email provider

The log lists each configured provider and its variables. Remove all but one. If the extra one is a Resend key kept for inbound mail, set EMAIL_INBOUND_PROVIDER=resend.

Emails Going to Spam

  1. Verify SPF, DKIM, and DMARC records for your sending domain
  2. Avoid using free email providers (gmail.com, outlook.com) as the EMAIL_FROM address
  3. Check your sender reputation with mail-tester.com

Users Not Receiving Notifications

  1. Check the user's notification preferences in their account settings
  2. Verify they haven't unsubscribed from the post
  3. Check the admin inbox for delivery errors

Next Steps