När WordPress skickar e-post är grundfunktionen att webbservern direkt från WordPress-koden kontaktar mottagarens e-postservern för inkommande e-post och skickar över meddelandet.
Problemet med detta är att det kan finnas tusentals andra webbplatser som använder samma IP-adress som din webbplats, och det är i princip omöjligt att sålla bort eventuell spam som skickas från samma server. Någon av alla de webbplatserna kanske har utsatts för intrång och skickat ut spam så att IP-adressen blockerats i olika spam-databaser. Vissa webbhotell blockerar helt enkelt försökt att skicka ut e-post direkt från webbservern (just för att deras IP-adresser inte ska svartlistas).
Eventuellt kan du (mer eller mindre) rätta till detta problem genom att i DNS-inställningarna för ditt domännamn lägga in en så kallad SPF-post som anger från vilka IP-adresser ditt domännamn har lov att skicka e-post. Du kan läsa lite mer om SPF på svenska hos Loopia: https://support.loopia.se/wiki/spf/
Men en stabilare lösning är att använda något tillägg av typen ”wp mail smtp” (det finns flera olika med ungefär samma funktion).
De tilläggen träder in i stället för standardfunktionen för att skicka e-post. När ett brev behöver skickas loggar tillägget in sig till en e-postserver och skickar ut brevet den vägen, så att brevet dels kan granskas lite av e-postservern för avgående post, dels kommer att anlända ”den rätta vägen” till mottagarens e-postservern för inkommande post. Bäst är att skapa en egen e-postadress just för din webbserver. Använd om det går samma domännamn som webbservern har. (Det ser ju konstigt ut om webbservern domänA skickar e-post från domänB…)
Helst bör du kombinera dessa saker: Se till så att e-posten skickas via ”en riktig” e-postserver, men skapa gärna en SPF-post som deklarerar från vilka IP-adresser din domän kan förväntas skicka e-post.
Jag föreslår att du kontaktar ditt webbhotell för mer konkreta råd och dåd i just ditt fall.