Connect MailWizz to Sendmux through the Sendmux Sending API. MailWizz manages lists, campaigns and autoresponders, while Sendmux routes accepted messages through the active sending accounts and limits configured for your team.
Sendmux | Documentation | Contact support
- Sends MailWizz campaign and transactional messages through one Sendmux delivery server.
- Preserves MailWizz campaign and subscriber identifiers in the return path so feedback can be correlated.
- Adds a stable idempotency key so Sendmux can deduplicate matching campaign retries within the same team and idempotency window when its deduplication store is available.
- Verifies signed Sendmux webhooks and matches feedback to the MailWizz delivery server that sent the campaign message.
- Records campaign bounces and applies MailWizz complaint handling to the matching subscriber.
An API response with queued status means Sendmux accepted the message for processing. It does not guarantee final delivery or inbox placement.
graph LR
A[MailWizz] -->|Sending API| B[Sendmux]
B --> C[Sending account 1]
B --> D[Sending account 2]
B --> E[Sending account 3]
C --> F[Recipients]
D --> F
E --> F
B -->|Signed feedback| A
- MailWizz 2.0.34 or later.
- A Sendmux team with at least one active sending account.
- A send-capable mailbox key beginning with
smx_mbx_. - A publicly reachable MailWizz frontend URL using HTTPS, so Sendmux can deliver webhook events.
- Download the latest release.
- In the MailWizz backend, open Extend → Extensions → Upload extension.
- Upload the archive and enable Sendmux Sending API.
- In Sendmux, open Accounts → Add account.
- Add a supported account, complete its connection details and run the available connection test.
- Set the sender details, such as from email, from name and reply-to address.
- Configure fixed sending limits or ranges for the per-second, per-minute, per-hour and per-day windows you use.
- Open API Keys, create a send-capable mailbox key and copy the reveal-once value beginning with
smx_mbx_.
- In MailWizz, open Delivery servers → Create new.
- Select Sendmux Web API.
- Paste the
smx_mbx_value into Sending Key and complete the required sender fields. - Save the server. On this first save, it remains inactive until its signed webhook is connected.
- Reopen the saved MailWizz delivery server and use its Info button to copy the exact webhook URL. Its format is
https://your-mailwizz-domain.example/dswh/sendmux-api/{server_id}. - In Sendmux, open Webhooks → Create webhook and paste that HTTPS endpoint.
- Subscribe the webhook to
message.bouncedandmessage.complained. - Create the webhook and copy the signing secret beginning with
whsec_. It is shown once. - Back in MailWizz, paste the value into Webhook signing secret and save.
- Test the delivery server, then activate it. MailWizz deliberately marks the server inactive when either credential changes so the new configuration can be retested.
Existing version 0.2 installations must complete this webhook-secret step before feedback processing will resume. Unsigned requests are rejected.
Create and schedule a regular campaign in MailWizz as usual, selecting the Sendmux delivery server where required by your setup. MailWizz autoresponder campaigns use the same delivery path, so follow-up messages can be triggered by the timing and subscriber actions available in MailWizz.
Sendmux accepts either a fixed cap or a minimum-to-maximum range for supported time windows. For example, a range can vary the active cap periodically within the configured bounds. Messages above the current cap wait in the queue until capacity is available.
A range changes the active throughput cap. It is not a random delay applied independently to every message, and it does not by itself improve inbox placement. Start with limits suitable for each sending account and follow the account provider's policies.
| Sendmux event | MailWizz action |
|---|---|
message.bounced with Permanent |
Records a hard bounce and blacklists the subscriber unless MailWizz classifies the diagnostic as an internal bounce. |
message.bounced with Transient |
Records a soft bounce. |
message.bounced with Undetermined |
Records an internal bounce. |
message.complained |
Applies MailWizz feedback-loop handling and blacklists the subscriber. |
The extension verifies X-Sendmux-Signature against the exact request body before reading the event. Feedback is applied only when the campaign, subscriber and webhook delivery server match a current or archived MailWizz delivery record. For the same campaign and subscriber, a stronger bounce classification replaces an earlier one; matching or weaker duplicates are ignored. Feedback without MailWizz campaign and subscriber identifiers cannot be applied to a campaign record.
The MailWizz extension is one way to use Sendmux. Developers and AI agents can also use these available tools:
- Email Inbox API for AI Agents — give agents mailboxes to receive, search, organise and reply to email. See the mailbox guide.
- Sendmux MCP — connect AI clients to authorised Management, Mailbox and Sending tools through hosted MCP at
https://mcp.sendmux.ai/mcpor thesendmux-mcppackage. - Sendmux CLI — manage sending accounts, mailboxes and email workflows from the terminal with
@sendmux/clior Snap. - Sendmux SDKs — add package-managed clients for the Sending, Mailbox and Management APIs. Browse the official SDK, CLI and MCP source.
Not for campaign feedback handled by this integration. The signed webhook writes correlated bounces and complaints into MailWizz. Keep the webhook active and monitor failed webhook deliveries in Sendmux.
Yes. Add the accounts to Sendmux and configure their individual sender details and limits. Sendmux chooses among eligible active accounts according to your routing configuration.
Use a separate MailWizz campaign for each intended follow-up. The retry key identifies one logical send by campaign and subscriber, so deliberately re-entering the same subscriber into the same autoresponder during Sendmux's idempotency window is unsupported.
The initial record stays inactive until a webhook secret is saved. MailWizz also deactivates a server after a credential change so you can test it before sending campaigns.
Use a send-capable mailbox key beginning with smx_mbx_ in Sending Key. Use the reveal-once whsec_ value from the Sendmux webhook in Webhook signing secret. Leave the secret field blank on later edits to keep the stored value.
FSL-2.0 (Functional Source License 2.0)