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 NickLafferty.com 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.
Table of content
1. Match recipient
2. Match headers
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 firstname.lastname@example.org), 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.
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’.
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.
Build Laravel 10 email authentication with Mailgun and Digital Ocean
When it was first released, Laravel version 5.7 added a new capability to verify user’s emails. If you’ve ever run php artisan make:auth within a Laravel app you’ll know the...
Here’s everything you need to know about DNS blocklists
The word “blocklist” can almost seem like something out of a movie – a little dramatic, silly, and a little unreal. Unfortunately, in the real world, blocklists are definitely something you...