Sign in to fill these examples with your own keys. Sign in Start free trial

Send emails with MailWizz

Add PostShiba as a MailWizz SMTP delivery server.

What you'll build

A MailWizz delivery server that sends your campaigns, list emails, and test emails through PostShiba over SMTP. MailWizz 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.
  • 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.
  • A verified sending domain. See Add and verify a domain. The delivery server's From email and every list's from address must be on it.
  • A cluster that is ready to send (sending_ready is true).
  • Access to the MailWizz backend as an admin.

Install

Nothing to install. MailWizz 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
Nano 100 600
Micro 4,000 24,000
Small 40,000 240,000
Medium 100,000 600,000
Large 200,000 1,200,000

MailWizz enforces its own quotas on each delivery server. Set Hourly quota and Daily quota to the two numbers for your plan, and lower them if other apps send on the same cluster. MailWizz counts the daily quota per calendar day, so a campaign that runs across midnight can still reach PostShiba's rolling 24-hour cap. Nano is for test sends only.

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.

Send your first email

  1. In the MailWizz backend, go to Servers → Delivery servers and select Create new server.
  2. Choose Smtp, the plain SMTP type, not one of the provider-specific ones.
  3. Enter these values. The username starts with smtp_.
mailwizz-smtp.txt
1Hostname: smtp.postshiba.com 2Username: smtp_9 3Password: YOUR_PASSWORD 4Port: 587 5Protocol: TLS 6Timeout: 30 7From email: hello@mail.example.com
  1. Set Hourly quota and Daily quota to the values for your plan in the table above.
  2. Set Max. connection messages to 100. The default of 1 opens a new SMTP connection for every message.
  3. Leave Bounce server empty. PostShiba handles bounces, as explained below.
  4. Select Save changes.
  5. Under Validate this server, enter your own address and select Validate server. MailWizz sends a confirmation email through PostShiba. Open the link in it to activate the server. The message shows under Events in the PostShiba dashboard.

Every SMTP setting is on Send emails with SMTP.

Bounces, complaints, and unsubscribes

MailWizz reads bounces from a bounce server, an IMAP or POP3 mailbox. PostShiba mail never reaches that mailbox, because the return-path points at PostShiba and bounce messages come back to PostShiba. Leave Bounce server empty on this delivery server. With one attached, MailWizz 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 MailWizz adds its own List-Unsubscribe and List-Unsubscribe-Post headers to campaigns, so PostShiba leaves them alone. MailWizz marks the subscriber as unsubscribed.

Suppressed addresses still look active in MailWizz. PostShiba refuses them, so they never reach a mailbox, but they stay in your subscriber counts. Copy them into MailWizz now and then to keep your lists clean.

Copy suppressions into MailWizz

  1. Export every suppressed address to postshiba-suppressions.csv. Follow How do I export my suppression list?. It takes a read-only Support key and one script.
  2. MailWizz needs a header row named email. Add it:
mailwizz-blacklist.sh
1(echo email; cat postshiba-suppressions.csv) > mailwizz-blacklist.csv
  1. In the MailWizz backend, go to Email blacklist → Email blacklist, select Import, choose mailwizz-blacklist.csv, and select Import file. MailWizz then skips those addresses for every customer and list.

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 Protocol set to TLS. Port 465 with SSL is not offered. PostShiba accepts AUTH PLAIN only.
The connection times out or fails with Protocol set to TLS Check Default system mailer under Settings → Common. SymfonyMailer treats TLS as implicit TLS, which port 587 does not speak. With SymfonyMailer, set Protocol to STARTTLS. The default SwiftMailer needs TLS.
The confirmation email never arrives The server is not sending through PostShiba. Open the delivery server and check the saved values.
550 unverified domain or 550 from header not aligned with verified domain Remove the Bounce server, and use a from address on your verified domain for the list. To use the server's From email for every message, set Force FROM email to Always.
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?.
550 suppressed The subscriber hard bounced or reported spam. Copy suppressions into MailWizz 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 Hourly quota and Daily quota, or resize the cluster before the next campaign.
451 4.4.5 too many sessions, slow down MailWizz opened too many SMTP connections on one username in 10 seconds. Raise Max. connection messages so each connection carries more messages.
421 4.3.2 ... idle too long PostShiba closed a connection that sat idle for 30 seconds. This is not throttling. If it repeats, lower Max. connection messages. See 421 4.3.2 idle too long.

Next steps