- An app that already sends through Mailgun’s SMTP changes its SMTP settings, and nothing else.
- An app that calls Mailgun’s HTTP API replaces those calls with an SMTP client, as in the examples below. It can also call Hiveku’s REST API instead.
Before you switch
1
Verify your domain in Hiveku
Add the domain you send from and publish its records. Keep Mailgun’s DNS records until the switch is done: Hiveku’s records sit beside them. See Moving from another provider.If Mailgun also receives mail for the domain, keep its MX records. Hiveku’s Email Service sends email; it does not receive it for your app.
2
Create a key
Create a Production key in Settings > API Keys, with Send Emails. It is your SMTP password. See API keys.
3
Recreate your webhooks
Add your endpoint as a Hiveku webhook. Hiveku’s event names, payloads and signatures are its own, so update your handler to read them.
4
Bring over your suppressions
Hiveku suppresses an address on its own after a hard bounce or a spam complaint, but it does not know who bounced, complained or unsubscribed at Mailgun. Add those addresses before you switch. See Suppressions.
Change your SMTP settings
Replace the host, port, username and password with these:
The sender address must be on your verified domain.
Examples
These send the same email: a reply-to address, a text and an HTML part, and an attachment. If your app called Mailgun’s HTTP API, a call like this replaces it.- Nodemailer
- Python
What changes
- Provider headers. If your messages carry
X-Mailgun-headers, remove them. Hiveku does not read them, and it passesX-headers on to recipients as they are. - Tags. SMTP messages carry no tags. If you filter events by tag, send those emails through the REST API.
- Scheduling. Hiveku cannot hold a message for later. Send it when it should go.
- Templates. Build the message in your app, or send a Hiveku template through the REST API.
- Recipients. At most 50 per message. Recipients not named in the To or Cc header get a hidden copy, as Bcc.
- Size. At most 25 MB per message.
- Test keys. A test key’s messages are accepted and simulated: the reply says nothing was delivered.
Suppressions
Add each address that bounced, complained or unsubscribed at Mailgun withPOST /api/v1/email/suppressions:
201, and answers 409 already_exists for an address already on the list. The key needs the email:suppressions permission. The dashboard’s key form does not offer it, but your AI assistant can create such a key.
After the switch
- Watch Settings > Email Service > Email Logs, in the App sends (API and SMTP) view, as your app’s email moves over.
- Test with a test key, not a trickle of real sends. Simulated sends are not counted, so they do not set a small usual day for the daily volume check. If your account already sends API mail on most days, moving a large app over in one go can pass 5 times that usual day and hold API and SMTP mail until 00:00 UTC.
- Once nothing sends through Mailgun, remove its DNS records for sending and its
include:from your SPF record. Keep its MX records if it still receives mail for you.