Knowledge Base/Inbound Email Processing/Inbound Email Basics

Inbound Email Processing Overview

posted this on July 10, 2012, 4:39 PM

Inbound processing allows you to receive inbound emails (like to through Mandrill. We'll accept the messages, parse them to break out attachments and content, then deliver them to you using a webhook configured in your account. Like all Mandrill webhooks, we'll retry posting the messages if we do not get a valid HTTP 200 success code when posting the messages to your URL.

Set up your domain

You'll need to tell Mandrill what domain(s) to use and then make changes to the domain information so that the emails actually get sent to Mandrill. Here's how:

  1. Go to Inbound > Domains in your Mandrill account.
  2. Fill in the domain where you want to receive mail.

All email sent to this domain will be sent to Mandrill instead of traditional email inboxes, so it's a good idea to use a subdomain, like "" that doesn't already exist.

  1. Click the DNS Settings button for your domain to view the information you need to plug into your DNS provider's MX record interface so they know that you want Mandrill to handle delivery for this domain.

Since this is a new domain, you'll probably see a little note that says that the MX record is invalid - you haven't set up the MX record yet, so that's normal.

  1. Once you've added the MX records, click the Test button and we'll make sure the settings are correct.

Depending on your DNS provider, it may take hours or in rare cases as much as a day before your settings will be updated and you're ready to proceed. If there's anything wrong with the steps you've taken so far, Mandrill will respond with a more detailed error when you hit the "Test" button.

Adding Routes

Once the domain's MX record is verified by Mandrill and shows as valid, you can define routes for your domain. Routes are like URLs for websites or traditional mailboxes for email. They are a way for you to send messages from your domain to different URLs based on the email address. For example, you might want to go to while messages to inboxes ending with "-reply" go to (in this case, your route would be "*-reply").

If you want all messages at a domain to go to the same URL, use the global catchall "*" as your route match.

When you provide the URL for Mandrill to POST the inbound messages to, we'll do a quick HEAD check. If the URL doesn't exist or returns something other than a 200 HTTP response to the HEAD check, Mandrill won't be able to verify that the URL exists and is valid.

Every time Mandrill receives a batch of messages matching a route that you have defined, it will send it to your URL as a webhook.

Note: The total inbound message size cannot exceed 25MB. Mandrill will bounce messages we receive that are larger than 25MB.

After Mandrill processes and parses your message, the POST body will be roughly twice the size of the original message. You'll want to ensure that your server is able to accept larger POST bodies to accomodate any larger inbound emails.

Topic is closed for comments