Not just another "e-mail being marked as spam" thread

Server Version: Ubuntu 22.04 LTS

Current Version: 2.3
Build: 4
Current Commit: d65b6b5bcd4e89ce1a0eeb74131f98093e85bb3a
Latest Version: 2.3
Latest Build: 4
Latest Commit: d65b6b5bcd4e89ce1a0eeb74131f98093e85bb3a

Apologies, the forum won’t let me post full links because of new user limitations.

I set up CyberPanel and then configured my first domain with the internal e-mails I’ve used for customer service accounts. I’ve achieved a 10/10 e-mail tester score with no flags when sending e-mails from this domain.

Here’s the thing that’s stumping me. I can’t seem to send an e-mail to google or microsoft without it going to spam. My SPF is using ~all and if I move it to -all, e-mails don’t go through at all.

In my use case, all of my clients are hosting their website on my cloud web server, so the primary A record for the top level domain will go there. I’ll consistently use mail.clientsite for the MX record. Same goes for wifiguyhosting… I’m serving a very simple index page on my cloud web server, but mail.wifiguyhosting is the MX record and that’s what I used for the rDNS record.

I have looked over so many of the self-help articles and videos. I’ve updated the Cyberpanel config file to use ipv6, I’ve played around with different TXT DNS settings, nothing seems to be the “fix”.

Most of the articles and videos I’m finding are for use cases where CyberPanel is hosting DNS, website and e-mail for one given domain. In my case, I’m only hosting e-mail. DNS is over at Cloudflare and Website is at cloudways.

I found one article from 2019 indicating that CyberPanel does a crummy job handling my specific use case (multiple domains managing only e-mail), but given that was four years ago, I’d assume things could be different now.

To be clear, I’ve:

Set up rDNS to mail.wifiguyhosting com for both ipv4 (A) and ipv6 (AAAA)
Set up DKIM, SPF and DMARC
Achieved a 10/10 E-mail Tester Score from *@wifiguyhosting com
All e-mails sent from *@wifiguyhosting com are sent to spam

I’m hoping someone here has done what I’m attempting to do and could point out what might be the problem. Thank you!