Mailfully logo

Unsubscribe links

When an unsubscribe link is required, what a marketing send enforces, and why one-click unsubscribe means one recipient per message.

Marketing mail needs an unsubscribe mechanism and transactional mail does not; setting type: "marketing" is what tells Mailfully which gates to apply.

What a marketing send does for you

For a type: "marketing" send, Mailfully injects an RFC 8058 one-click unsubscribe URL into the message.

What a marketing send enforces

A marketing send is checked against three gates before it's accepted:

  • Exactly one recipient across to, cc, and bcc.
  • A postal address on file for the org.
  • A separate monthly marketing allowance that has not run out.

Failing the recipient gate returns 422 marketing_single_recipient; failing the address gate returns 422 marketing_missing_postal_address; failing the allowance gate returns 429 marketing_quota_exceeded.

Why one recipient

A one-click unsubscribe URL identifies one person, so it can't be shared across recipients the way a shared to list works for transactional mail. A marketing send naming more than one recipient across to, cc, or bcc fails with 422 marketing_single_recipient.

Why a postal address

CAN-SPAM requires a physical postal address in commercial mail, so a marketing send with none on file for the org is refused with 422 marketing_missing_postal_address rather than sent without one. Add one in the dashboard; see CAN-SPAM.

A visible, working unsubscribe link in the message body is still expected of commercial mail. See Policies for the full compliance requirements, including the List-Unsubscribe and List-Unsubscribe-Post headers marketing messages must carry.

Transactional mail

Transactional mail needs no unsubscribe mechanism, and nothing requires you to add one to a genuinely transactional message. See Policies for where the line between the two categories sits.

Sending to someone who opted out

A marketing send to a recipient who opted out of marketing from your org fails outright with 422 recipient_unsubscribed. That's a different outcome from a send to a suppressed address, which is never rejected: see Why an address was suppressed for how bounces, complaints, and manual suppressions are instead handled silently.