← All installation guides High Security Email Integrations

Set up High Security email on Node.js and Nodemailer

Set Nodemailer messageId and headers explicitly, append the returned HTML/text footer and send only after the VEM request succeeds.

NODE
Recommended methodServer-side per-message API
Trusted-server integration

Create, bind and deliver each message code safely

  1. 1

    Load the API key on the server

    Read the key from the application secret manager or process environment. Never bundle it into frontend JavaScript, a server-rendered page or a public source map.

  2. 2

    Generate stable send identifiers

    Create the RFC Message-ID and an idempotency key when the send job is created. Store them with the queue job so retries reuse the same values.

  3. 3

    Request the message code

    POST the Message-ID and idempotency key to VerifySeal with a bounded timeout and Authorization Bearer header. Validate the HTTP status and response structure.

  4. 4

    Build the Nodemailer message

    Set messageId to the submitted value, add message_code.header to the headers collection, and append the returned text and HTML footers to their matching bodies.

  5. 5

    Sign and send last

    Only pass the completed message to the transporter after the VEM response succeeds. Configure Nodemailer DKIM on that transporter or confirm the downstream provider signs without rewriting the identity.

  6. 6

    Inspect a delivered message

    Check the original received message for the same Message-ID, the VEM header/footer and passing aligned DKIM/DMARC. Some delivery providers replace Message-ID, which breaks the match.

Open Nodemailer message configuration documentation ↗
High Security still requires domain authentication

A VEM code does not replace SPF, DKIM or DMARC

The sender domain must continue to publish a valid SPF record, the selected DKIM key and a DMARC policy. VerifySeal automatically rechecks these records according to the administrator schedule. For High Security messages, DKIM must cover the final Message-ID, VEM header and completed body.

  • SPF authorizes sending services
  • DKIM verifies the signed message domain
  • DMARC publishes the domain policy
Testing checklist

Confirm the installation is working

01

Message-ID

The exact final Message-ID is created before the API request and matches the sent email.

02

VEM code

The returned header and footer are present and the public verification link opens.

03

DKIM last

The receiving service reports an aligned DKIM and DMARC pass after all content was inserted.

04

Revocation

Revoking the test code immediately changes its public status.

Platform notes
  • Nodemailer supports a custom messageId and custom headers directly in message configuration.
  • Use the same idempotency key when a queue worker retries a send.