# Send emails with Acelle Mail

> Add PostShiba as an Acelle Mail SMTP sending server.

## What you'll build

An Acelle Mail sending server that delivers your campaigns and automation emails through PostShiba over SMTP. Acelle Mail keeps your lists, campaigns, and unsubscribe links. PostShiba delivers the mail and suppresses addresses that hard bounce or report spam.

## Before you start

- A **Marketing** cluster. Newsletters belong on a bulk cluster, not a transactional one, and the type is locked after create. See [Clusters](/docs/dashboard/clusters/introduction).
- An SMTP username and password. Open your cluster in the dashboard, go to its SMTP credentials, and choose **Create SMTP credential**. Copy the password right away, because it is shown once. You can also use the [SMTP credentials API](/docs/api-reference/smtp-credentials).
- A verified sending domain. See [Add and verify a domain](/docs/add-a-domain). The server's **Default From Email** and every campaign's from address must be on it.
- A cluster that is ready to send (`sending_ready` is `true`).
- An admin login to Acelle Mail.

## Install

Nothing to install. Acelle Mail has SMTP support built in.

## Pick a plan for your largest list

PostShiba caps each cluster per hour and per rolling 24 hours. The 24-hour cap must cover your largest list plus anything else the cluster sends that day.

| Plan | Emails per hour | Emails per 24 hours | Acelle Mail sending limit (per 1 hour) |
| --- | --- | --- | --- |
| Nano | 100 | 600 | Test sends only |
| Micro | 4,000 | 24,000 | 4,000 |
| Small | 40,000 | 240,000 | 40,000 |
| Medium | 100,000 | 600,000 | 100,000 |
| Large | 200,000 | 1,200,000 | 200,000 |

When a cap is full, SMTP answers `451 4.7.0 hourly send limit reached` or `451 4.7.0 daily send limit reached` and does not keep the message. Select **Resize** on the cluster page before a campaign that would go over. See [What happens at your cap](/docs/dashboard/clusters/what-happens-at-your-cap).

## Send your first email

1. In the Acelle Mail admin area, go to **Sending** → **Sending Servers**, select **Add Server**, and choose **SMTP**.
2. Enter these values. The username starts with `smtp_`. Type `tls` into **SMTP Encryption Method**. With port 587 it upgrades the connection with STARTTLS.

```text acelle-smtp.txt
Hostname:                smtp.postshiba.com
SMTP Username:           smtp_9
SMTP Password:           YOUR_PASSWORD
SMTP Port:               587
SMTP Encryption Method:  tls
Default From Email:      hello@mail.example.com
```

3. Select **Save Changes**.
4. Open the server's **Configuration** tab. Set **Default From Email** to an address on your verified domain, and leave **Bounce Handler** and **Feedback Loop Handler** on **Choose...**.
5. Set **Sending Limit** to **Custom**. Enter the hourly value for your plan from the table above in **Emails**, `1` in **Per**, and `hour` in **Time Unit**. Select **Save Changes**.
6. Select **Test Connection**, then **Send Test Email** to your own address. The message shows under Events in the PostShiba dashboard.

Every SMTP setting is on [Send emails with SMTP](/docs/send-with-smtp).

## Bounces, complaints, and unsubscribes

Acelle Mail reads bounces from a bounce handler, an IMAP or POP3 mailbox, and complaints from a feedback loop handler. PostShiba mail never reaches those mailboxes, because the return-path points at PostShiba and bounce messages come back to PostShiba. Leave both handlers empty on this server. With a bounce handler attached, Acelle Mail uses the mailbox address as the envelope sender, and PostShiba refuses the message with `550 unverified domain` unless that address is on your verified domain.

| Event | What happens |
| --- | --- |
| Hard bounce | PostShiba suppresses the address. Later sends to it are refused with `550 suppressed`. |
| Spam report | PostShiba suppresses the address the same way. |
| Soft bounce | PostShiba retries delivery. Nothing is suppressed. |
| Unsubscribe | With **One-Click Unsubscribe Headers** on under **Settings** → **General**, Acelle Mail adds its own `List-Unsubscribe` and `List-Unsubscribe-Post` headers, so PostShiba leaves them alone. Acelle Mail marks the subscriber as unsubscribed. |

Suppressed addresses still look active in Acelle Mail. PostShiba refuses them, so they never reach a mailbox, but they stay in your subscriber counts. By default, Acelle Mail stops a campaign when a message fails. Turn on **Skip Failed Messages** under **Settings** → **General** so one `550 suppressed` does not stop the rest of the campaign, and copy suppressions into Acelle Mail now and then.

## Copy suppressions into Acelle Mail

1. Export every suppressed address to `postshiba-suppressions.csv`. Follow [How do I export my suppression list?](/docs/knowledge-base/how-do-i-export-my-suppression-list). It takes a read-only Support key and one script. The file has one address per line, which is the format Acelle Mail imports.
2. In the Acelle Mail admin area, go to **Logs & Monitor** → **Blacklist** and select **Import**.
3. Choose `postshiba-suppressions.csv` and select **Start import**. Acelle Mail then blocks those addresses from every campaign.

Run it again after each large campaign. Importing an address that is already on the blacklist does no harm.

## Troubleshooting

| What you see | What to do |
| --- | --- |
| Authentication fails | Check the username and password. Use port `587` with `tls`. Port 465 with `ssl` is not offered. PostShiba accepts `AUTH PLAIN` only. |
| **Test Connection** fails | Open the **Connection** tab, select **Edit**, and check **Hostname**, **SMTP Port**, and **SMTP Encryption Method**. |
| `550 unverified domain` or `550 from header not aligned with verified domain` | Clear the **Bounce Handler**, and use a from address on your verified domain for the campaign and the server's **Default From Email**. |
| `550 kyc_required` | Your team is pending production approval. Until then, send only to team members, live inbox addresses, and inbox forward-to addresses. See [Does PostShiba require production approval?](/docs/knowledge-base/does-capsule-require-production-approval). |
| `550 suppressed`, and the campaign stops | The subscriber hard bounced or reported spam. Turn on **Skip Failed Messages**, and copy suppressions into Acelle Mail as shown above. |
| `451 4.7.0 hourly send limit reached` or `451 4.7.0 daily send limit reached` | The cluster is at its cap and did not keep the message. Lower the server's **Sending Limit**, or resize the cluster before the next campaign. |
| `451 4.4.5 too many sessions, slow down` | Acelle Mail opened too many SMTP connections on one username in 10 seconds. Lower the **Sending Limit**, or run fewer queue workers. |

## Next steps

- [What happens at your cap](/docs/dashboard/clusters/what-happens-at-your-cap)
- [How to manage suppressions](/docs/dashboard/emails/email-suppressions)
- [How do recipients unsubscribe?](/docs/knowledge-base/how-do-recipients-unsubscribe)
- [Send emails with SMTP](/docs/send-with-smtp) for every setting and reply.
