← All installation guides High Security Email Integrations

Set up High Security email on Laravel Mail

Create the Message-ID in the queued job, call VerifySeal through Laravel’s HTTP client and pass the returned values into the Mailable.

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

Create, bind and deliver each message code safely

  1. 1

    Configure the server secret

    Put the API key in the deployment secret store and expose it through a private Laravel configuration value. Never call env directly from a Blade view or expose the value to client-side code.

  2. 2

    Create IDs in the send job

    Generate the final Message-ID and a stable idempotency key in the queued send job. Persist both with the job so queue retries do not create a new identity or a second code.

  3. 3

    Call VerifySeal before rendering

    Use Laravel’s HTTP client with a Bearer token, JSON body and bounded timeout. Stop or retry the job unless the endpoint returns a valid message_code object.

  4. 4

    Pass values to the Mailable

    Set the Mailable Headers messageId to the submitted value and add message_code.header as a text header. Pass the returned HTML and text footers into the corresponding mail views.

  5. 5

    Render before transport signing

    The complete HTML, text and headers must be finalized before the configured Symfony mail transport or downstream provider applies DKIM. Do not modify the message in a later listener.

  6. 6

    Test the queue and provider

    Run a real queued send, inspect the received source and retry the same job once in a safe environment. The retry must keep one Message-ID and one VEM code.

Open Laravel Mailable header 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
  • Laravel Mail supports a message ID and custom text headers through a Mailable Headers object.
  • Do not regenerate the Message-ID inside a view or on every queue attempt.