Blocklist
The blocklist is LetterPress's suppression list. An address on it does not receive campaign or transactional email, even if it still appears in a group or was imported later. The only exception is a deliberate one-send bypass that a developer can add for an essential transactional message. See the Transactional Email API.
Open LetterPress > Subscribers and click the Block List link below the subscriber table.
The blocklist opens in place of the subscriber table. It is paginated and shows the email, reason, and date added for every blocked address.
Why an address is blocked
LetterPress records a reason with every entry.
| Reason | What caused it |
|---|---|
unsubscribe | The contact used an unsubscribe link, or an admin used the Unsubscribe bulk action |
hard_bounce | A permanent delivery failure, such as a mailbox that does not exist |
complaint | The recipient marked the message as spam |
soft_bounce | The contact reached the configured soft-bounce threshold |
manual | An admin used the Block bulk action, or added the address through another admin action |
Complaints are always blocklisted when the provider sends a complaint event. Hard bounces are blocklisted when Automatically blocklist permanent bounces is on. Soft bounces are counted, and the address is blocked after the threshold set under Settings > Deliverability.
What the blocklist controls
The blocklist is checked in several places:
- When a campaign queue is built, so blocked addresses are never added.
- Before every individual send, so an address blocked after queueing is skipped.
- Before transactional email is delivered.
- During CSV import and WordPress user sync, where blocked addresses are skipped.
- On public signup, where a blocked address cannot be added again unless the block came from an unsubscribe.
The blocklist is the source of truth for "never send to this address". Deleting a subscriber row does not remove the block. If the same address is imported again later, it stays blocked.
Blocklist and subscriber status
A block and a subscriber status are related, but they are not the same thing.
| Subscriber status | Meaning |
|---|---|
| Subscribed | Active and eligible to receive campaigns |
| Pending | Waiting for a confirmation click |
| Unsubscribed | Opted out, and normally also on the blocklist with the unsubscribe reason |
| Blocked | Blocked after a hard bounce, complaint, or manual block |
A soft bounce or a manual block can leave the status unchanged while still adding the address to the blocklist. That is why the blocklist, not the status column alone, decides whether a send is allowed.
Removing an entry
- Click Block List on the Subscribers page.
- Click Remove on the entry.
- Confirm the removal.
Removing an entry lifts the block. It does not resubscribe the contact. This is the important part:
- A contact whose status is still Blocked stays blocked after the entry is removed. They need an explicit re-subscribe.
- A contact whose status is Unsubscribed stays unsubscribed.
- A subscribed contact becomes eligible again, and a campaign that is still running may deliver its remaining queued emails to them.
To fully re-enable a contact, remove the blocklist entry and then use the Subscribe bulk action on the Subscribers page. That action lifts the block and restores the subscribed status in one step, including fresh consent and subscription timestamps. A fresh opt-in through a public form also works when the original block reason was unsubscribe.
Blocking and unblocking in bulk
Use the subscriber table to create block entries:
| Bulk action | Effect |
|---|---|
| Block | Adds a manual blocklist entry and sets the subscriber status to Blocked |
| Unsubscribe | Adds an unsubscribe blocklist entry, sets the status to Unsubscribed, and records the event |
| Subscribe | Removes any blocklist entry and sets the status to Subscribed with new timestamps |
The resulting entries appear in the Block List view.
Use Block when you want to stop all email while keeping the reason as an admin decision. Use Unsubscribe when the contact asked to opt out, because the event log and reason will reflect that.
Addresses that can opt back in
Public signup checks the block reason before creating a subscriber:
- An
unsubscribeblock is lifted automatically when the same address signs up again through a public form. This lets a contact change their mind. - A
hard_bounce,complaint, ormanualblock is not lifted by the public form. The address stays blocked until an admin removes the block and re-subscribes it.
That distinction protects deliverability. A mailbox that hard-bounced or marked you as spam should not re-enter the list just because a bot submitted the form.
Next steps
- Manage statuses and imports in Subscribers.
- Configure bounce handling under Email Delivery.
- Review the events that feed the blocklist in Email Delivery.