Mailgun offers pretty easy integration and 10'000 free emails a month. Plus the customer service is amazing.

DigitalOcean can host a pretty cheap and comfortable cloud server.

Setting up Mailgun

1. Register account

2. Add your domain

The registering process should take you right to the button. If it doesn't just go to the control panel and click on Add Domain.

Enter a domain you own. Please note that you can use this one domain with many services.

NOTE: I'm using "" subdomain just to separate concerns. It's actually easier and more practical to just use your main "" instead.

3. DNS settings

Now Mailgun should have directed you to the DNS settings page. To find it manually, go to the Domains tab and select your domain. Here's my info (image is cropped):

Log into DigitalOcean and select the Networking tab on the left.

Select your (no need to create separate subdomain).

Use the "Add record" button to add all the necessary information.

NB! keep using the subdomain mailgun.. I ended up doing the whole process again without the subdomain and this this tutorial continues without it. Sorry :)

Basically you need to convert the Mailgun provided data into this:

Things to notice when entering data

  • the txt details may need to be in double quotes: "v=spf...".
  • Domain values need dots at the end (DigitalOcean will tell you this)
  • the v=spf part needs an @ in front, not your domain, as Mailgun instructs.
  • Mailgun domains use the extension .org!

4. Wait for DNS records to update

Usually this takes about 24 hours. If you're in a hurry you're welcome to go insane with the "Check DNS Records Now" button.

5. Ready to use

Depending on your framework and language of choice usage will vary. In my case, I use Meteor.js and here's a guide for it. I'm sure it's still valid for other JavaScript frameworks like Node.js.

Did your domain get verified? Feel free to ask questions in the comments.