Transactional vs promotional: how Mailercloud classifies your API and SMTP sends

Every Email API and SMTP message is classified as promotional or transactional — and messages without a campaign type default to promotional. Learn what the classification controls, how to tag OTPs and receipts so they always deliver, and what to do when a transactional email stops arriving.

Why classification matters

Every message you send through the Email API or the SMTP relay is classified as promotional or transactional. The classification decides two things:

  • Promotional messages carry a one-click unsubscribe option (required by Gmail and Yahoo for bulk senders). A recipient who uses it is automatically added to your suppression list with the reason Unsubscribed, and future promotional sends to them are blocked.

  • Transactional messages — OTPs, password resets, receipts, order confirmations — carry no unsubscribe option and are never blocked by an unsubscribe. A recipient who opted out of your promotional mail still receives them.

How to classify a message

Email API — set campaignType inside metadata:

{
    "email": { ... },
    "metadata": { "campaignType": "TRANSACTIONAL" },
    "version": "1.0"
}

SMTP relay — add one header:

mld-track-campaign-type: TRANSACTIONAL

Both accept exactly two values: TRANSACTIONAL or PROMOTIONAL.

The default — read this if you send OTPs

📝 Note: If you don't set a campaign type, the message is classified PROMOTIONAL.

That default exists so marketing mail always honors unsubscribes — but it means untagged transactional messages are treated as marketing too:

  • They carry an unsubscribe option they shouldn't have.

  • If the recipient ever clicked unsubscribe on any of your promotional mail, your untagged OTP or receipt to them will be blocked.

📌 Tip: Always tag transactional flows explicitly. One field on the API — or one header on SMTP — protects them permanently.

Troubleshooting: a transactional email stopped arriving for one recipient

API Platform › Suppressions

  1. Search the recipient's address on the Suppressions page.

  2. If the reason shows Unsubscribed, the recipient one-click unsubscribed from a past promotional send — and the blocked message was sent without campaignType: TRANSACTIONAL.

  3. Fix the sending flow by adding the campaign type as shown above. If the recipient should receive mail again right away, click Reactivate on their entry — Unsubscribed entries are self-service.

Further reading

Need help?

If you have any questions about campaign types or suppression, contact us at [email protected] — the Mailercloud support team is ready to help.

Happy emailing! 🚀

Did this answer your question?
😞
😐
😁