Skip to content

feat: MAIL FROM label override and aggregate domain verification#392

Draft
amanjuman wants to merge 1 commit intousesend:mainfrom
amanjuman:feat/mail-from-label-upstream-pr
Draft

feat: MAIL FROM label override and aggregate domain verification#392
amanjuman wants to merge 1 commit intousesend:mainfrom
amanjuman:feat/mail-from-label-upstream-pr

Conversation

@amanjuman
Copy link
Copy Markdown

@amanjuman amanjuman commented Apr 18, 2026

Adds optional mailFromLabel on Domain, SES MAIL FROM sync, aggregate verification status (identity + DKIM + SPF), domain UI and API updates, and webhook payload field mailFromLabel.

Also fixes contactBookId type in webhook-service unit test (string) so apps/web tsc passes.


Summary by cubic

Adds an optional MAIL FROM label override and an aggregate domain verification status (identity + DKIM + SPF) across UI, API, SES, and webhooks to make setup clearer and safer. Domains are “Verified” only when all checks pass; MX/SPF DNS names now follow the effective MAIL FROM label.

  • New Features

    • Database: add mailFromLabel to Domain (nullable; defaults to using the SES region as the label).
    • API: domain.setMailFromLabel(id, mailFromLabel) with validation (1–63 chars, letters/digits/hyphens, no leading/trailing hyphen). Syncs SES via putEmailIdentityMailFromDomain; changing the label sets SPF to PENDING and re-verifies.
    • DNS/SES: MX and SPF TXT record names use the effective label (custom or region). Default MAIL FROM is {region}.{domain}; resetting sets it back to default.
    • UI: Domain Settings adds a MAIL FROM label field with save/reset, effective label preview, and guidance. Domain list and admin teams show the aggregate verification status.
    • Status: new aggregateDomainStatus (worst-of identity, DKIM, SPF). Exposed as aggregateStatus in the domain API schema and used for badges, verification emails, webhook event type selection, and from-email validation.
    • Webhooks: DomainPayload now includes mailFromLabel.
  • Bug Fixes

    • Test type fix: contactBookId is a string in webhook-service unit tests so apps/web TypeScript passes.

Written for commit 249f9bc. Summary will update on new commits.

Adds optional mailFromLabel on Domain, SES MAIL FROM sync, aggregate verification status (identity + DKIM + SPF), domain UI and API updates, and webhook payload field mailFromLabel.

Also fixes contactBookId type in webhook-service unit test (string) so apps/web tsc passes.

Made-with: Cursor
@vercel
Copy link
Copy Markdown

vercel bot commented Apr 18, 2026

@amanjuman is attempting to deploy a commit to the kmkoushik's projects Team on Vercel.

A member of the Team first needs to authorize it.

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai bot commented Apr 18, 2026

Important

Review skipped

Draft detected.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: a7051e41-a941-4617-acb6-3e1281f4f92a

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant