Skip to main content
If your application already speaks SMTP (WordPress, Laravel, legacy systems, CRMs), you can send through Mailercloud without integrating the HTTP API — just point your SMTP settings at the relay.

Connection settings

Credentials

Switch to the Transactional Email platform (toggle in the sidebar), then open Settings → SMTP Configuration to view your host, username, and password. Use Generate new password to create or rotate the password.
Generating a new password invalidates the previous one immediately — update all systems using the old credentials.

Tracking headers

Control tracking and reporting per message with custom SMTP headers: Click tracking is not available for transactional email, over SMTP relay or the HTTP API.

Custom headers

Any other header you set is passed through to the recipient — use one such as X-Order-Reference to carry your own correlation id. The one exception is the X-MC-Custom-* family below, which Mailercloud consumes and strips before delivery.
  • List-Unsubscribe must be one or more comma-separated values in angle brackets, each starting with https:// or mailto:. List-Unsubscribe-Post must be exactly List-Unsubscribe=One-Click and requires List-Unsubscribe on the same message. A value you set replaces the one Mailercloud adds by default.
  • Headers Mailercloud owns — From, Message-ID, Date, DKIM-Signature, Feedback-ID, Content-* and similar — are removed and replaced with the platform’s own. Unlike the HTTP API, which rejects the request, SMTP drops an invalid or reserved header silently and still delivers the message.

Custom data on webhooks

To attach your own data to a message and get it back on every transactional webhook event, add one header per key, each prefixed X-MC-Custom-:
Each event returns your keys inside a custom object, with the X-MC-Custom- prefix removed:
  • These headers are consumed by Mailercloud and stripped before delivery — the recipient never sees them.
  • SMTP header names are lowercased in transit, so a key sent over SMTP comes back lowercase. (The HTTP Email API preserves your original casing.)
  • Up to 10 keys; key names ≤ 50 characters (A–Z a–z 0–9 - _); values ≤ 256 characters. A key that breaks a rule is listed in the event’s custom_dropped array and the message is still sent.

Message IDs and duplicates

Mailercloud assigns every message accepted over SMTP relay its own id, and builds the outgoing Message-ID header from it. A Message-ID set by your application is replaced, so use a custom header such as X-Order-Reference if you need your own reference on the message.
SMTP relay has no duplicate detection: sending the same message twice delivers it twice. The metadata.messageId 24-hour duplicate check is available on the HTTP Email API only.

Security & delivery extras

  • IP Allowed List — restrict which IP addresses may send through your account (single IPs, ranges, or wildcards). If unset, all IPs are allowed.
  • Webhooks — receive real-time events for transactional sends: Sent, Delivery, Bounce, Spam, Open. See Set up webhooks.

Example (Laravel .env)

SMTP vs HTTP API — which to use?

The sender domain must be verified on your account in either case.