Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Email MX routing #262

Open
JonnyTech opened this issue Feb 8, 2022 · 9 comments
Open

Email MX routing #262

JonnyTech opened this issue Feb 8, 2022 · 9 comments

Comments

@JonnyTech
Copy link

I really want to use this service just to be able to have a catchall address to my custom domain. The instructions state:

Set these MX records as the only MX records to your domain's DNS:
"@", ".", or blank | 3600 | MX | 10 | mx1.forwardemail.net
"@", ".", or blank | 3600 | MX | 10 | mx2.forwardemail.net

Can you explain then how forwardemail.net knows where to route my email to? Are the MX records shown somewhere in the dashboard?

What concerns me is if I change where my email is hosted then how does forwardemail.net know where to route it?

For example, if my domain is currently hosted by Google, then I switch my MX records to forwardemail.net I assume that you store the existing Google MX records somewhere, but if I then decide to move my email to Outlook, how does forwardemail.net know to reroute my mail there?

@Slugger
Copy link

Slugger commented Feb 8, 2022

Along with the MX records, you also need to create TXT records that define your mail aliases. This is how the service knows where to forward your email to. So before you create the MX records, create the TXT records first. If you just want a single catchall, then you just need to create a single TXT record as described here. You'll want to follow step 4, option 'A' to create the single catchall address. The combination of the MX and TXT records in DNS is what gets the service running for you.

@JonnyTech
Copy link
Author

Thanks @Slugger, but I am not sure what to put into the TXT record.

My email is user@my-custom-domain.tld but it is currently hosted at Google (although I change it often).

Step 4 option A states that my TXT record should be:

"@", ".", or blank | 3600 | TXT | forward-email=user@my-custom-domain.tld

But then how would forwardemail.net know to route to Google (or anywhere else)?

@astrob0t
Copy link

astrob0t commented Feb 8, 2022

Hi @JonnyTech,

I think you are trying to set up multiple providers on the same domain name.

As long as your final email address is one offered as a service (like gmail, outlook, yahoomail etc), then the forwarding works great. You forward your custom domain email to one of the email provided as a service.
But If your final email address is the same custom domain that you forwarded from, then the MX priority comes into play and may need additional configuration. Depends on the service that you are using.

So for your use case, if you are using Google hosted email, then you must already have MX records added for the google hosted solution. You may be able to add the forwardemail.net MX records under the same domain, but they may never be considered if the MX priority is not set high enough(lower number = higher priority). And if you give the forwardemail.net MX records high priority, you may never get any emails delivered to your google email addresses.

@JonnyTech
Copy link
Author

Thanks @astrob0t, yes currently my email is hosted at Google but only with my custom domain, I do not have an @gmail.com address associated with it. I just want forwardemail.net to take care of the catchall, so that anyone@my-custom-domain.tld will be delivered to user@my-custom-domain.tld. My thoughts are:

"@", ".", or blank | 3600 | MX | 100 | mx1.forwardemail.net
"@", ".", or blank | 3600 | MX | 100 | mx2.forwardemail.net
"@", ".", or blank | 3600 | TXT | forward-email=user@my-custom-domain.tld

That way the MX record priority is high (100) so that the catchall kicks in with it, but still not sure how it is routed to my address. Does forwardemail.net then automatically send the email to the lower numbered MX records?

@Slugger
Copy link

Slugger commented Feb 8, 2022

Nope. But that's ok, Google Workspace offers a catch all email address for your hosted domain with them. Details on how to set it up are here. Basically, forwardemail either processes all of your mail or none of it.

I just moved my family's domain to this service from Google myself after they announced that their Legacy Gsuite is no longer free. Had all of my family create themselves new gmail.com inboxes and then updated the MX and TXT records so mail is delivered here then forwarded to their new gmail.com inboxes. Working great.

@JonnyTech
Copy link
Author

I too am moving away from Google Legacy GSuite, but to begin with I am going to stop using their catchall and test forwardemail.net to see if it will cope with routing all my aliases (whatever@my-custom-domain.tld) to my single address (user@my-custom-domain.tld). Then I will move my email elsewhere or even self host it. But a lot of providers do not provide catchalls or multiple aliases. What still confuses me is how will the TXT record of forward-email=user@my-custom-domain.tld know where that host is if there are no other MX records for my domain?

@Slugger
Copy link

Slugger commented Feb 8, 2022

It can't. If you want this service to forward your custom domain's email then you must have an alternate destination to deliver to. So you're only going to use this service if you want your custom domain's email to forward to Gmail or O365 or some other email hosting service. Your users would login to that service as, for example, johndoe@gmail.com and would then also receive their forwarded emails to that gmail inbox.

As an example, here's how I've setup my family's domain (let's call it familyemail.com for this example).

My MX records:

MX 3600 10 mx1.forwardemail.net
MX 3600 10 mx2.forwardemail.net

My TXT records:

TXT 300 forward-email=me:me1234@gmail.com,wifey:queen392@gmail.com,kid1:kid843@gmail.com,mom:foo52314@gmail.com,dad:bar384@gmail.com
TXT 3600 forward-email=me+catchall@familyemail.com

So here I setup 5 aliases and a catchall. The aliases each forward to each person's Gmail box. I have a catchall that forwards to me using a plus address for easy filtering in Gmail. Forwardemail recursively resolves addresses so when the catchall is used, it resolves the catchall to my alias, which then resolves to my Gmail box, which is where the mail gets forwarded to. I then have filters in my Gmail box to label and archive any catchall mail received.

If you're going to self-host and you're going to pay the $3/month then you have some more interesting options. But those are advanced configurations that I won't bother getting into. Unless you really want to be an email admin for the family domain, I would just do what I did and tell everyone to create themselves a Gmail account (or whatever email service they prefer) and setup the forwarding for the custom domain to deliver to those alternate inboxes and forget about it.

@JonnyTech
Copy link
Author

It can't. If you want this service to forward your custom domain's email then you must have an alternate destination to deliver to.

Ah, I see, so I do need another address to deliver to. Well that I do not have, only my custom domain one. Therefore I guess that I need to find another way to perform a catchall. Thanks for the clarification, I need to have a rethink. Since Google are dropping their legacy service you may find that others are looking for something similar. One (cheap) option was going to iCloud+ which allows a custom domain but with only 3 aliases and was hoping to get around that limitation with forwardemail.net to route everything but my one address like this:

MX 3600 10 aspmx.l.google.com # default Google (or other MX) for user@my-custom-domain.tld
MX 3600 20 mx1.forwardemail.net # anything else uses forwardemail.net
MX 3600 20 mx2.forwardemail.net

TXT 300 forward-email=user@my-custom-domain.tld # this will only "see" whatever@my-custom-domain.tld and forward it to user@my-custom-domain.tld

I had assumed that route would be:
user@my-custom-domain.tld >> aspmx.l.google.com
else:
whatever@my-custom-domain.tld >> forwardemail.net >> user@my-custom-domain.tld >> aspmx.l.google.com

@Slugger
Copy link

Slugger commented Feb 8, 2022

The absolute cheapest way is to tell your users to create a Gmail account and then use this service to forward your custom domain to their Gmail boxes. With some config on Gmail, they can still send email as their custom domain address. This is what I did for my family. If this is for a family domain, that's what I'd do. Easy, no cost, no maintenance/admin on your part other than to maintain your aliases in TXT records. Once they start offering their own SMTP server, I'll pay forwardemail the $3 a month for that to support them.

If this is for a (small) business, I'd highly recommend just paying Google the $5/user/month and write it off as a cost of doing business. But for family/personal domains, $5/user/month is just too much, imho.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants