Intelligent email forwarding with Mailgun

Why let spammers fill your inbox when you can filter them out with Mailgun's routes instead? Read more to learn how to quickly filter out spam emails –



I’ve had a personal website at since I was in college. It’s gone through lots of iterations as I’ve transitioned from student life to working full time, and as a marketer applying for jobs I think having a website made me stand out from other applicants. Plus, it helped that I had a ridiculous headshot of me in a suit sitting in the middle of the woods. Marketing, ya know? 

My email has always been publicly available on my website. It’s good practice, and it makes it easy for people to get in touch with me. However, this created a bit of a problem. Bots started to scrape my email from the website and send unsolicited spam about boosting SEO rankings or other junk offers marketers might care about. 

I keep my spam folder tidy, even go as far as unsubscribing from spam I get (when they actually give me the option to). But sometimes they don’t give you the option to unsubscribe, or they make it really obtuse, or they ask you to reply back to them to unsubscribe which is the WORST.

Fixing it with routes

Here’s where Mailgun comes in. Mailgun has a routes feature for inbound mail that lets you forward mail from a domain you own to any address. I forward email from my custom domain to my Gmail so I don’t have to give my main email address out to the world.

However, I don’t want to forward every single email that address gets. I want to stop some email before it gets to my inbox based on its content, like those junk SEO offers.

How do you do that?

First, add your domain to Mailgun. We’ve written some great guides on how to do this so I won’t repeat that here. You’ll also want to verify ownership of your domain by adding a few DNS records. Plus, adding MX records is required for Mailgun to process inbound mail, so go ahead and get that set up as well. If you need some help getting your MX record set up, I wrote a step-by-step guide here to help you out.

Side note: now is a good time to set up 2 Factor Authentication on your account to make sure it’s as secure as possible. 

Next, you’ll want to go to the Receiving page in the interface. This is where you’ll set up your rules to forward email and to stop spam. I have my rules in two groups:

1. Match recipient

This is how you can forward email from the domain you added to Mailgun to any other email address you own. You have the option of forwarding only specific addresses (like, or you can create a catch-all that forwards mail sent to any address. In my example, I forward one email on my custom domain to my Gmail address. I recommend against forwarding all email to your domain because spammers will send junk email to common names @ your domain.

I set this rule up as priority 1. Mailgun routes are processed in ascending order, starting from 0. So I want my filtering rules to process first, block any spam, and then if email passes my filters it will forward to my real email.

2. Match headers

I have 2 rules set up for this. The first rule looks for emails with “re:” in the subject, or “serp” in the body. I kept getting spam emails that looked like forwarded emails, which all began with “re:”

The second rule looks for emails with “SEO” in the subject or body.

Here’s how I have them set up.

Match headers route code

You can filter based on subject line, body, or any other data in the header itself. I set up my filters to catch common spam emails that I wanted to block. Once you setup your filter, you need to decide what action to take. The proper action here is stop, which will do nothing to the emails, as long as the priority is lower than your forward filter.

Once your filters are set up you can go to the Logs page to see what emails you’re getting. Any email that passes your filter will show as ‘Delivered’, emails that don’t will stop at ‘Accepted’.

Accepted email list with timestamps

And there you have it! 

Getting rid of spam is something that everyone can feel passionate about, and I hope you’re able to curate your inbox a little bit better with this routing technique. If you’ve come up with a clever way to use routes to make your life easier for yourself or your business, let us know! We’d love to have you on the blog sometime. 

Sign Up

It's easy to get started. And it's free.

See what you can accomplish with the world’s best email delivery platform.

Related readings

Tips & tricks: Guide to using regular expressions to filter incoming email

One of the features that gets the most love from our customers are Routes. Routes let you accept, parse and POST or forward your incoming emails. We’ve done some work lately to make Routes even more useful by adding the ability to test your webhook endpoints when you want to POST your incoming emails to your app.

Read more

Inbound email routing in PHP

Sending email is certainly the most known feature to Mailgun’s users but Mailgun can do much more than just sending emails and tracking analytics.

Read more

How Kanban2go fulfills Zawinski’s Law

The user sends an email message and you have to get it and process it some how. How do you do that? Read more –

Read more

Popular posts

Mailgun iconSee what you can accomplish with the world's best email delivery platform. It's easy to get started.Let's get sending
CTA icon Mailgun Icon