--- title: Recieving Mail thru MXRoute description: Trusted receiver published: true date: 2026-02-15T02:33:37.376Z tags: editor: markdown dateCreated: 2026-02-15T01:44:15.683Z --- # MXroute Incoming Mail to Mailcow ## Overview Configuration guide for using MXroute to receive incoming mail for your domains and forward to your Mailcow server. --- ## Architecture ``` Incoming: Internet → MXroute → Mailcow subdomain → Alias → Mailbox Outgoing: Mailbox → Mailcow → MXroute relay → Internet ``` This setup allows MXroute to handle incoming mail filtering, spam protection, and then forward clean mail to your Mailcow server. Users send and receive using clean `@yourdomain.com` addresses. ### Address Structure Explained **What users see (clean addresses):** - `john@yourdomain.com` - `jane@yourdomain.com` **What happens behind the scenes:** - Mailboxes actually exist as `john@mail.yourdomain.com` - Aliases in Mailcow map `john@yourdomain.com` → `john@mail.yourdomain.com` - MXroute forwards to `john@mail.yourdomain.com` - Users send FROM `john@yourdomain.com` (configured as default sender) - **Users login with `john@yourdomain.com`** (Dovecot auth configured to accept aliases) **Benefits:** - **100% transparent to users** - they only ever see/use `@yourdomain.com` - Clean, professional email addresses - Easier for users to remember and communicate - No confusion about which address to use --- ## MXroute Configuration ### 1. Add Domain to MXroute 1. Log into MXroute DirectAdmin panel 2. Navigate to **Email Accounts** → **Email Domains** 3. Add your domain (e.g., `yourdomain.com`) ### 2. Create Catch-All Forwarder 1. Navigate to **Email Accounts** → **Forwarders** 2. Create catch-all forwarder: - **Email Address:** `*@yourdomain.com` - **Forward To:** `@mail.yourdomain.com` 3. This forwards all mail to your Mailcow server, preserving the username **How it works:** - Mail to `john@yourdomain.com` → forwarded to `john@mail.yourdomain.com` - Mail to `jane@yourdomain.com` → forwarded to `jane@mail.yourdomain.com` --- ## DNS Configuration ### Update MX Records Point your domain's MX records to MXroute servers: ``` yourdomain.com → MX 10 arrow.mxroute.com yourdomain.com → MX 20 eagle.mxroute.com ``` **Note:** Check your MXroute account for the correct server hostnames (arrow, eagle, hermes, etc.) ### SPF Record Update SPF to allow MXroute to send on your behalf: ``` v=spf1 include:mxroute.com -all ``` If you also send from Mailcow directly: ``` v=spf1 ip4:192.168.5.16 include:mxroute.com -all ``` ### DKIM Records 1. Generate DKIM key in MXroute DirectAdmin: - Navigate to **Email Authentication** → **DKIM Keys** - Generate key for your domain - Copy the DNS record 2. Add DKIM TXT record to your DNS: ``` default._domainkey.yourdomain.com → [MXroute DKIM public key] ``` ### DMARC Record ``` _dmarc.yourdomain.com → v=DMARC1; p=quarantine; rua=mailto:admin@yourdomain.com ``` **Note:** Start with `p=quarantine` for testing, then move to `p=reject` once confirmed working. --- ## Mailcow Configuration ### 1. Add Domain Add `mail.yourdomain.com` as a domain in Mailcow: 1. Navigate to Mailcow admin → **Configuration** → **Mail setup** → **Domains** 2. Add domain: `mail.yourdomain.com` 3. Configure as needed ### 2. Create Mailboxes Create mailboxes using the subdomain: 1. Navigate to **Mailboxes** 2. Create mailbox: `john@mail.yourdomain.com` 3. Set password and quota 4. Repeat for each user ### 3. Create Aliases for Clean Addresses For each mailbox, create an alias so users can use clean `@yourdomain.com` addresses: 1. Navigate to **Configuration** → **Mail setup** → **Aliases** 2. Create alias: - **Alias:** `john@yourdomain.com` - **Destination:** `john@mail.yourdomain.com` 3. Repeat for each user **Alternative: Alias Domain (Easier for Multiple Users)** 1. Navigate to **Configuration** → **Mail setup** → **Alias Domains** 2. Add alias domain: `yourdomain.com` → aliases to → `mail.yourdomain.com` 3. This automatically creates aliases for ALL mailboxes: - `john@yourdomain.com` → `john@mail.yourdomain.com` - `jane@yourdomain.com` → `jane@mail.yourdomain.com` ### 4. Configure Default Sender Address Set users to send FROM their clean address by default: **Method 1: Per-Mailbox Settings** 1. Edit each mailbox in Mailcow 2. Under **Sender addresses**, add `john@yourdomain.com` 3. Set as default sender address **Method 2: SOGo Webmail** Users can configure in SOGo: 1. Log into webmail 2. Settings → Mail → Accounts 3. Set "From" address to `john@yourdomain.com` **Method 3: Email Client** Configure email client (Thunderbird, Outlook, etc.): - Identity name: `john@yourdomain.com` - Reply-to: `john@yourdomain.com` - SMTP still authenticates as `john@mail.yourdomain.com` ### 5. Enable Login with Alias Addresses (Make Transparent to Users) Allow users to login with `john@yourdomain.com` instead of `john@mail.yourdomain.com`: 1. SSH into your Mailcow server 2. Edit the Dovecot configuration: ```bash cd /opt/mailcow-dockerized nano data/conf/dovecot/extra.cf ``` 3. Add the following line: ``` auth_username_format = %Ln@%Ld ``` 4. Restart Dovecot: ```bash docker-compose restart dovecot-mailcow ``` **Alternative method - Edit via Mailcow UI:** 1. Navigate to **System** → **Configuration** → **Configuration & Details** 2. Under **Dovecot**, add custom config 3. Add: `auth_username_format = %Ln@%Ld` **Result:** Users can now login with EITHER address: - `john@yourdomain.com` ✓ - `john@mail.yourdomain.com` ✓ Both will work for IMAP, SMTP, and webmail authentication. ### 6. Allow MXroute IP Addresses Add MXroute server IPs to Mailcow's trusted networks to skip spam filtering: 1. Navigate to **Configuration** → **Configuration & Details** → **Options** 2. Under **mynetworks**, add MXroute IPs 3. Or edit via command line in `data/conf/postfix/extra.cf`: ``` mynetworks = 127.0.0.0/8 [::1]/128 192.168.0.0/16 [MXroute IPs] ``` ### 7. Disable Greylisting for MXroute (Optional) If you experience delays: 1. Navigate to **Configuration** → **Configuration & Details** 2. Find your domain 3. Under **Greylisting**, add MXroute IPs to whitelist --- ## Testing ### 1. Test Mail Flow Send test email from external provider (Gmail, Outlook): ``` From: test@gmail.com To: john@yourdomain.com ``` **Expected Flow:** 1. Mail arrives at MXroute for `john@yourdomain.com` 2. MXroute forwards to `john@mail.yourdomain.com` 3. Mailcow receives at `john@mail.yourdomain.com` 4. Mailcow alias delivers to `john@mail.yourdomain.com` mailbox 5. Mail appears in John's inbox ### 2. Test Reply Have John reply to a message: **Expected behavior:** - Reply FROM: `john@yourdomain.com` (clean address) - Reply goes through Mailcow → MXroute relay → Internet ### 3. Check Headers Review email headers in Mailcow to verify: - `Received:` headers show MXroute server - `To:` shows `john@yourdomain.com` - `Delivered-To:` shows `john@mail.yourdomain.com` - SPF, DKIM, DMARC all pass - No spam flags ### 3. Monitor Logs **MXroute Logs:** - Check DirectAdmin → Email Logs - Verify forwarding is occurring **Mailcow Logs:** ```bash docker-compose logs -f postfix-mailcow ``` Look for incoming connections from MXroute IPs. --- ## Example Configuration: gnarlypandaproductions.com ### Mailcow Setup **Domain:** `mail.gnarlypandaproductions.com` **Mailboxes:** - `admin@mail.gnarlypandaproductions.com` - `contact@mail.gnarlypandaproductions.com` - `info@mail.gnarlypandaproductions.com` **Alias Domain:** `gnarlypandaproductions.com` → aliases to → `mail.gnarlypandaproductions.com` This automatically creates: - `admin@gnarlypandaproductions.com` → `admin@mail.gnarlypandaproductions.com` - `contact@gnarlypandaproductions.com` → `contact@mail.gnarlypandaproductions.com` - `info@gnarlypandaproductions.com` → `info@mail.gnarlypandaproductions.com` ### MXroute Setup **Catch-all Forwarder:** ``` *@gnarlypandaproductions.com → @mail.gnarlypandaproductions.com ``` ### DNS Records | Record Type | Name | Value | |-------------|------|-------| | MX | @ | 10 arrow.mxroute.com | | MX | @ | 20 eagle.mxroute.com | | A | mail | 192.168.5.16 | | TXT | @ | v=spf1 ip4:192.168.5.16 include:mxroute.com -all | | TXT | _dmarc | v=DMARC1; p=reject; rua=mailto:admin@gnarlypandaproductions.com | | TXT | default._domainkey | [MXroute DKIM key] | ### User Experience **Users use clean addresses for EVERYTHING (completely transparent):** - Send FROM: `admin@gnarlypandaproductions.com` - Receive AT: `admin@gnarlypandaproductions.com` - Login with: `admin@gnarlypandaproductions.com` (and password) - SMTP/IMAP Server: `mail.gnarlypandaproductions.com` **Users never need to know about the `mail.` subdomain!** --- ## Troubleshooting ### Mail Not Being Forwarded 1. **Check MXroute forwarder configuration** - Verify forwarder exists in DirectAdmin - Check destination address is correct - Review MXroute email logs 2. **Verify DNS propagation** ```bash dig MX yourdomain.com dig TXT yourdomain.com ``` 3. **Check Mailcow firewall** - Ensure port 25 is open - Verify MXroute IPs aren't blocked ### SPF/DKIM Failures 1. **SPF not passing** - Verify `include:mxroute.com` in SPF record - Check for typos in SPF syntax - Use SPF checker: https://mxtoolbox.com/spf.aspx 2. **DKIM not passing** - Confirm DKIM record published in DNS - Verify selector matches (usually `default`) - Check DKIM record format (no spaces in key) ### Mail Delayed or Bouncing 1. **Greylisting delays** - Disable greylisting in Mailcow for MXroute IPs - Or wait 5-15 minutes for retry 2. **Mailbox full** - Check quota in Mailcow - Increase quota or clean mailbox 3. **Spam filtering** - Check Mailcow spam folder - Whitelist MXroute IPs in Rspamd --- ## MXroute Server Information ### Common MXroute Mail Servers - arrow.mxroute.com - eagle.mxroute.com - hermes.mxroute.com - zen.mxroute.com **Your assigned server:** Check MXroute DirectAdmin welcome email or DNS settings ### MXroute IP Ranges Consult MXroute documentation for current IP ranges to whitelist in Mailcow. --- ## Advantages of This Setup - **Spam filtering:** MXroute handles initial spam filtering - **DDoS protection:** MXroute absorbs mail-based attacks - **Reliability:** If Mailcow is down, mail queues at MXroute - **Deliverability:** MXroute IPs have good reputation - **Offload processing:** Reduces load on your Mailcow server --- ## References - [MXroute Documentation](https://mxroutedocs.com/) - [Mailcow Documentation](https://docs.mailcow.email/) - [Email Forwarding Best Practices](https://www.rfc-editor.org/rfc/rfc5321)