Prerequisites
Before setting up the Mailgun integration, ensure you have:1. Mailgun Account
- An active Mailgun account
- A verified sending domain configured in Mailgun
2. Mailgun API Key
To create an API key in Mailgun:1
Log in to Mailgun
Log in to your Mailgun Dashboard
2
Navigate to API Keys
Go to Settings → API Security → API Keys
3
Create API Key
Click Create API Key or use your existing primary API key
4
Set Permissions
Ensure the API key has full access permissions for:
- Sending: Required for email delivery
- Webhooks: Required for event tracking
5
Save Your Key
Copy your API key (you may not be able to see it again)
3. Mailgun Domain
You’ll need your Mailgun sending domain (e.g.,mg.yourdomain.com or yourdomain.com). This is configured in Mailgun under Sending → Domains.
4. SendPost Account
- A SendPost account with admin access
- At least one sub-account created
Setting Up Mailgun Integration
Step 1: Navigate to Providers
- Log in to your SendPost Dashboard
- Go to Settings → Providers (or navigate to the Providers page)
- Click the NEW button
Step 2: Configure Mailgun Provider
- Name: Enter a descriptive name (e.g., “Production Mailgun”, “Marketing Mailgun”)
- Type: Select Mailgun from the dropdown
- Key: Paste your Mailgun API key
- Domain: Enter your Mailgun sending domain (e.g.,
mg.yourdomain.com) - Click Save
If you’re using Mailgun’s EU region, you may need to specify the EU API endpoint. Contact support for assistance with EU region configuration.
Step 3: Automatic Webhook Configuration
When you save the provider, SendPost automatically:Registers webhooks with Mailgun for each event type
Configures all supported events for tracking
Creates the necessary processing infrastructure
https://api.sendpost.io/tpsp/mailgun/account/{your-account-id}
Events Configured:
- Accepted (sent)
- Delivered
- Failed (bounced)
- Rejected
- Opened
- Clicked
- Complained (spam reports)
- Unsubscribed
Mailgun requires a separate webhook registration for each event type, unlike other providers that use a single webhook. SendPost handles this automatically.
Step 4: Configure IP Pool for Mailgun Routing
Before sending emails via Mailgun, you need to configure an IP Pool in SendPost that routes traffic to your Mailgun provider.Why IP Pools?
IP Pools in SendPost allow you to control how your email traffic is distributed between SendPost’s native infrastructure and third-party providers like Mailgun. This enables:- Volume-based routing: Split your email volume between Mailgun and SendPost infrastructure
- Easy traffic management: Adjust the percentage of emails sent via Mailgun vs SendPost at any time
- Gradual migration: Start with a small percentage on Mailgun and increase as needed
- Failover capability: Route traffic to Mailgun when SendPost IPs are warming up
Setting Up IP Pool for Mailgun
1
Create IP Pool
- Go to Settings → IP Pools in your SendPost dashboard
- Click Create New IP Pool
- Enter a descriptive name (e.g., “mailgun-pool” or “transactional-mailgun”)
2
Configure Routing
- In the IP Pool settings, configure the routing to use your Mailgun provider
- Set the volume percentage you want to route through Mailgun
- You can easily adjust this percentage later to control traffic distribution
3
Save Configuration
Save your IP Pool configuration. The pool name will be used in your API calls.
Volume-Based Routing
You can configure what percentage of your email volume goes through Mailgun vs SendPost’s native infrastructure:| Configuration | Mailgun | SendPost Infrastructure |
|---|---|---|
| 100% Mailgun | All emails via Mailgun | None |
| 50/50 Split | 50% of emails | 50% of emails |
| Mailgun Backup | 0% (failover only) | 100% primary |
You can change the volume distribution at any time through the SendPost UI without any code changes.
Step 5: Whitelist Your Sending Domain
You must whitelist the same sending domain in SendPost that you use in Mailgun.- Go to Settings → Domains in your SendPost dashboard
- Click Add Domain
- Enter the same domain you have configured in Mailgun (e.g.,
yourdomain.com) - Complete the domain verification process
If you’re using multiple sending domains in Mailgun, you need to whitelist each domain in SendPost.
Next Steps
Once your Mailgun integration is set up, you can:- Send emails via Mailgun using the SendPost API
- Understand event types for tracking email status
- View analytics for your Mailgun emails