Behind the Scene at Jungle Disk: Reliable Email Communications with Mailgun

Intro (and TLDR)

At Jungle Disk we provide data security to protect businesses from accidents and attacks by defending their networks and backing up their data. As a SaaS business one of our primary communication channels with our customers is over email and deliverability matters which is why we use Mailgun with multiple unique IP addresses and individual email sending sub-domains for different activities.

Part 1 - Why Mailgun

We could write quite a bit about why but it comes down to two things:

  1. The Mailgun API and documentation are both outstanding.
  2. Mailgun is excellent at deliverability and reputation management.

Email is integrated into so many areas of our application all of our developers need to understand how to use Mailgun so a clearly documented and consistent API syntax make a big difference in productivity for us. If an API is complex and inconsistent you end up needing to work in it everyday to develop with velocity. As email is just a component of more complicated systems it isn't an everyday development. Because of this it makes the clarity and simplicity of the API for our mail delivery service a critical decision making factor.

Part 2 - Mailgun Best Practices

With the importance of deliverability and clean analytics we break up our outbound transactional emails into multiple domains. Mailgun makes managing and creating email domains easy. At Jungle Disk we use 8 (including a couple of new ones just this week).

One of the other benefits of separating your messages by sending domain is that many mailbox providers are implementing domain-based reputation systems. When you separate different types of messages across domains, you can help ensure that your most important messages are not being misclassified as marketing or promotional messages.

Query of the Mailgun API using curl to get show our domains (#2-8 shortened with ... for readability):

$ curl -s --user 'api:[OUR KEY]' -G https://api.mailgun.net/v3/domains -d skip=0 -d limit=10 { "items": [ { "createdat": "Mon, 15 Aug 2016 20:57:04 GMT", "name": "analytics.jungledisk.io", "requiretls": false, "skipverification": false, "smtplogin": "[USERNAME]@analytics.jungledisk.io", "smtppassword": "[PASSWORD]", "spamaction": "disabled", "state": "active", "type": "custom", "wildcard": false }, { "name": "analytics.jungledisk.com", ... }, { "name": "announcements.jungledisk.com", ... }, { "name": "customers.jungledisk.com", ... }, { "name": "billing.jungledisk.com", ... }, { "name": "accounts.jungledisk.com", ... }, { "name": "marketing.jungledisk.com", ... }, { "createdat": "Mon, 25 Mar 2013 15:05:00 GMT", "name": "jungledisk.com", ... } ], "totalcount": 8 }

From looking at the created_at date you can see we started using Mailgun in 2013 with just @jungledisk.com. In February of this year we created additional domains to separate out communications of different message types:

  1. @accounts.jungledisk.com - Account management communication with our customers.
  2. @marketing.jungledisk.com - Marketing messages to customers or prospective customers.
  3. @customers.jungledisk.com - Communications with admin users from our Management Platform.
  4. @billing.jungledisk.com - Messages about invoice, card processing, or other financial account related activities.
  5. @announcements.jungledisk.com - Mailing list for product releases, industry security news, and other 'announcement' type messages.
  6. @analytics.jungledisk.com - Data report delivery.
  7. @analytics.jungledisk.io - Internal data report delivery.
  8. @jungledisk.com - All other messages or messages from all services that have not yet started using a more specific sending domain.

The importance of separating activities is some customers or partners may not want to recieve messages of a certain type and they'll unsubscribe from your messages. If you're sending everything from a single domain then they won't get a message about a billing issue or a software update they may want to see if they unsubscribed because of a marketing or analytics reporting message they didn't care about.

Part 3 - What's Next for Jungle Disk

We've created all of the domains for our R&D team so as they go through and update existing services or write new ones we're implemeting and improving our deliverability and analytics. As we add additional products to our data security suite and increase the type of ways we communicate with our customers we'll continue to add domains. For the domains where we send volume and where it is very important for the messages to reach our customers we also use dedicated IP addresses.

One of the other benefits of separating your messages by sending domain is that many mailbox providers are implementing domain-based reputation systems. When you separate different types of messages across domains, you can help ensure that your most important messages are not being misclassified as marketing or promotional messages.

Closing

The Mailgun team has been great to work with. They were a huge help in figuring out the best practices for a SaaS business to achieve deliverability and clear reporting on our transactional email. If you send a ton of email and want to achieve 100% deliverability they also offer Managed Email where their experts will dive in even deeper to build and maintain your sending reputation with the major email service providers.

comments powered by Disqus

Mailgun Get posts by email

Like what you're reading? Get these posts delivered to your inbox.

No spam, ever.