Work through these in order. The first two account for most cases.
1. Your sending records
Check SPF, DKIM and DMARC. If you have recently started sending through another service – a newsletter tool, a shop, an accounts package – and did not add it to SPF, its mail will fail authentication.
2. Are you sending from an address you actually control?
Forms and shops that send "from" the visitor's own address fail authentication immediately, because your server is not allowed to send as their domain. Always send from your own address and put the visitor's address in Reply-To.
3. Content and formatting
- An image-only message with almost no text scores badly
- Link shorteners look like something being hidden
- A mismatch between the visible link text and where it actually goes is a strong spam signal
- ALL CAPITALS and rows of exclamation marks still count against you
4. Your reputation
If your site or a mailbox has been compromised and sent spam, delivery suffers for a while afterwards even once it is fixed. Check whether the domain or the server address appears on a public blocklist.
5. Bulk mail
Shared hosting is not built for marketing campaigns and sending them from it damages delivery for your ordinary business mail. Use a dedicated mailing service for anything at volume, and add it to your SPF record.
If you have been through all of this, open a ticket with a full copy of a message that was filtered, including its headers – the headers are where the answer usually is.