Mailfully logo

Marketing emails and unsubscribe

What a marketing send adds to your message, the checks it must pass, and how to handle the visible unsubscribe link.

For a type: "marketing" send, Mailfully adds List-Unsubscribe and List-Unsubscribe-Post headers with a one-click URL unique to that message, replacing any List-Unsubscribe you set. The body is sent unchanged. Transactional mail needs no unsubscribe mechanism.

curl -X POST https://api.mailfully.com/v1/emails \
  -H "Authorization: Bearer mf_live_xxxxxxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{
    "from": "news@mail.acme.com",
    "to": "ada@example.com",
    "subject": "October product news",
    "html": "<p>What is new this month.</p><p>123 Main Street, Springfield. <a href=\"https://acme.com/unsubscribe\">Unsubscribe</a></p>",
    "type": "marketing"
  }'

Set your postal address first

Open Settings in the dashboard, enter your Postal address and select Save. An organization admin or owner can do this. Without an address, a marketing send returns 422 marketing_missing_postal_address. See CAN-SPAM for why commercial mail needs one.

Mailfully doesn't check the body. It still needs a visible unsubscribe link and your postal address. The one-click URL appears only in the headers, and templates have no variable for it, so the visible link goes to your own unsubscribe page. Stop sending to anyone who uses it, for example by adding them on the Blocklist page. See Suppressions.

What a marketing send must pass

RuleError
Exactly one recipient across to, cc and bcc422 marketing_single_recipient
A postal address set for your organization422 marketing_missing_postal_address
Marketing allowance remaining429 marketing_quota_exceeded
The recipient hasn't opted out of marketing from your organization422 recipient_unsubscribed

In a batch, each marketing message carries its own single recipient.

A send to an address on your suppression list is not rejected. See Why an address was suppressed.