Emails forwarded from my VPS to Gmail being rejected, "very low reputation"
My main domain is 25+ years old and has a great reputation, never used for spam or anything like that. I've been having the emails forwarded through WHM / cPanel to my Gmail.
7 days ago I moved my main site to a new VPS, and copied over the forwarders. But today I discovered that I'm missing the wide majority of my emails! I found them in WHM > View Relayers, about 241 out of 250 were rejected by my Gmail with this error:
TLS_AES_256_GCM_SHA384:256 CV=yes : SMTP error from remote mail server after end of data: 550-5.7.1 [<new VPS IP> 19] Gmail has detected that this message is likely\n
550-5.7.1 suspicious due to the very low reputation of the sending domain. To\n
550-5.7.1 best protect our users from spam, the message has been blocked. For\n
550-5.7.1 more information, go to\n
550 5.7.1 https://support.google.com/mail/answer/188131 af79cd13be357-93917765ba8si962882385a.175 - gsmtp
I double checked in Postmaster Tools, and the domain's reputation is stellar. So when it says "low reputation of the sending domain", I have to assume it means the IP of the new VPS. MXToolbox confirms that the IP isn't on any blacklists, although the parent ASN is on the UCEPROTECT-Level3 list (which covers thousands of domains so it's not MY domain, but I can pay an extortion fee to get mine whitelisted).
Any suggestions?
15
u/PrimaryFamous6139 full-stack 1d ago
Your new VPS IP has no sending history, which Gmail treats as suspicious regardless of blacklist status, but the real fix for forwarding specifically is SRS (Sender Rewriting Scheme), which you can enable in WHM under Exim Configuration. Without SRS, forwarded emails arrive appearing to come from your VPS IP while claiming to be from the original sender’s domain, which fails SPF checks and triggers exactly this rejection. Also make sure your PTR/reverse DNS matches your mail hostname and that SPF/DKIM/DMARC are properly configured on the new server. Enable SRS first though, that’s almost certainly the primary culprit.
19
u/SinkCompetitive837 1d ago
Gmail blocks forwarded mail because SPF fails when the VPS IP is not listed in your domain SPF record. Add an SRS service or switch to a provider that rewrites the envelope sender for forwards to pass authentication checks.
3
9
u/matriisi 1d ago
Self hosting your own SMTP service isn't really worth it unless it's for some kind of internal use. Otherwise I'd just use an email sending service, SES / mailgun etc.
Of course you could try to ensure your SPF, DKIM, and DMARC records are working as they should to fix the problem, but unfortunately, the big ones really don't care about small servcises.
2
u/martian_rover 1d ago
Yes, agree with this, would suggest to look into using 3rd party smtp. using resend smtp myself and has worked well.
2
u/Strong_Ant3431 20h ago
SRS will fix the SPF failure (SinkCompetitive and PrimaryFamous already covered that), but it won't touch your actual problem. That VPS IP has no sending history, and you're forwarding everything that lands on a 25 year old domain, which means all the spam it catches too. So Gmail sees a brand new IP that just started relaying it junk, and thats about the fastest way to bury a fresh IP's reputation no matter how clean the domain behind it is. It's why the SES/Mailgun answers are right, you inherit a warm IP pool instead of warming one from zero. If you're set on forwarding off the box, filter the stream before it goes out so you're not relaying the garbage, and give the IP a couple weeks to settle.
2
u/Readypixels 14h ago
One option nobody has mentioned: skip forwarding and let Gmail pull the mail instead. In Gmail settings under Accounts and Import, "Check mail from other accounts" fetches from your cPanel mailbox over POP3 with SSL. Nothing gets relayed out of the new VPS IP, so the IP's reputation stops mattering for inbound mail. Your SpamAssassin config still runs on the box before Gmail fetches, and you keep the cPanel mail logs, which is the part the Cloudflare Worker route loses.
Two downsides. Gmail polls on its own schedule, somewhere between a few minutes and an hour depending on volume, so delivery is not instant. And you need a real mailbox on cPanel per address rather than a bare forwarder, though a catch-all mailbox covers most setups.
I moved a client off VPS forwarding to POP fetch after hitting the same 550 wall and the bounces stopped the same day. Worth running while the IP warms up, and you might find you never go back to forwarding.
1
u/christpetron 13h ago
Google is deprecating the POP fetch feature. All users will lose access to it by end of 2026, and “Send as” is going away in Jan 2027. Instead you can use a third-party drop-in replacement that does this same exact fetch, something like mailbridge.app
1
u/Readypixels 13h ago
Good catch, thanks for the correction. I went and checked: Google announced in January the end of Gmailify and the POP "check mail from other accounts" fetch, rolling out through 2026. So my suggestion has a short shelf life at best and is already gone for some accounts. The Gmail mobile apps still read third-party mailboxes over IMAP, but only in the app, no web inbox, so it is not a real replacement.
For the OP, the honest revision to my comment: skip POP fetch. Either relay outbound through a warmed sender like SES or SMTP2GO as others said, or point the domain's MX at a mailbox provider and read it there instead of forwarding into Gmail at all.
1
u/discosoc 19h ago
have to assume it means the IP of the new VPS.
Correct. IP reputation matters; domain “reputation” isn’t really tracked beyond spf/dkim/dmarc setting.
Instead of forwarding, use a service like smtp2go. It also doesn’t matter if you have neutral reputation or not on any blacklists. What matters is you’re sending mail through a new IP (for your domain) and that is always inherently suspicious. And since it looks automated, doubly so.
1
u/MadSpaz3 17h ago
I just did the same move, to a VPS, if the cluster you’re in has a bad reputation your email delivery takes a dive. I ended up setting up an SMTP relay, as all my DNS records relating to my email were good, but larger email threads were still getting bounced back.
1
u/Ni_Peng_NeeeWom 16h ago
yeah, forwarding is going to become less and less reliable as efforts to combat spam desperately try to catch up with the cat and mouse game. the long term solution for a production environment is always going to end up being to use an actual mailbox at a dedicated email service.
1
0
u/testingaurora 1d ago
Just adding that I was learned years ago that being on a server with other domains that are spammy/bad reputation can negatively affect your email sending reputation and blacklist your domain even if you’ve never sent spam.
Disclaimer that this is second hand and I would defer to the people on this thread with more knowledge than I of email servers
-7
u/flexcoding 1d ago
The "low reputation" wording is misleading here — this is almost certainly SPF
failing, not your domain.
When your VPS forwards someone else's mail to Gmail, Gmail checks SPF against
the original sender's domain, and your VPS IP isn't in their SPF record. So it
fails. DKIM usually survives forwarding unless Exim touches the body, but with
SPF broken there's no alignment left for DMARC either — and a brand-new IP with
no sending history gets zero benefit of the doubt.
Two ways out.
If you want to keep forwarding, turn on SRS in Exim — WHM has it under Exim
Configuration Manager. It rewrites the envelope sender to your domain, so SPF is
checked against you and passes instead of failing on the original sender.
Honestly though, the more reliable fix is to stop forwarding and let Gmail pull
instead: Gmail → Settings → Accounts and Import → "Check mail from other
accounts", over POP3. Gmail fetching from your server isn't inbound relay, so
none of the reputation logic applies.
Also worth checking the PTR record on the new VPS IP. A lot of providers leave
it unset after a migration and Gmail weighs it heavily.
And don't pay UCEPROTECT. Level 3 lists entire ASNs by design — that's the whole
business model — and Gmail doesn't use it. The whitelisting fee buys you nothing.
3
u/corobo 1d ago
Do you not see that your comments are getting blended when you copy paste the answer from GPT lol
-3
u/flexcoding 1d ago
fair, you got me on the phrasing. english isn't my first language so i write
these with help. i do check the substance before posting but yeah, i'll dial the
polish down.
1
u/loafthebrain 1h ago
the phrase "sending domain" is throwing you off. forwarded mail gets judged on the identity that authenticated at the last hop, which is now your fresh vps ip, not your 25 year old domain. forwarding also breaks the original spf and usually the dkim once cpanel or spamassassin touch the body, so gmail sees unauthenticated mail from a new ip and calls it "low reputation." cleanest fix is to stop forwarding and let gmail pull instead: settings > accounts > check mail from other accounts (pop3). no smtp hop, no ip reputation, problem gone.
49
u/mooter23 1d ago
Have you got SPF, DKIM and DMARC setup on your sending domain?
https://www.freethought.uk/help/google-gmail-rejecting-emails-spf-dkim-dmarc-setup-guide/
Gmail (and others) will reject them if not. Thankfully it's an easy fix.