Well... as I already wrote, my home server is literally on the Internet because I rent a static public IP address from the provider.
But if you have a VPS, then you just need to do port forwarding to your server with a VPS, and then add the following entries to the mx DNS server:
you.domain. 21600 IN MX 10 you.first.vps.
you.domain. 21600 IN MX 20 you.second.vps.
Where 10 and 20 are the server priority Or if the VPS is part of your domain then:
you.domain. 21600 IN MX 10 first.vps.you.domain.
you.domain. 21600 IN MX 20 second.vps.you.domain.
first.vps.you.domain. 21600 IN A 1.1.1.1
second.vps.you.domain. 21600 IN A 2.2.2.2
And if you also have IPv6, you can do
first.vps.you.domain. 21600 IN AAAA fd00::1
second.vps.you.domain. 21600 IN AAAA fd00::2
Where 1.1.1.1, 2.2.2.2, fd00::1 and fd00::2 are the addresses of your VPS
You also need to enter the address in the SPF:
you.domain. 21600 IN TXT "v=spf1 +mx -all"
What does it mean
v=spf1 is the SPF version.
+mx – it is allowed to send mail from the IP addresses specified in the MX records of the domain.
-all – prohibits sending from any other servers (hard refusal).
Also, in order for the signature to work on the mail server, you need to make several TXT entries (for a detailed explanation, see my links about DKIM):
keyname.__domainkey.you.domain. TXT "v=DKIM1; ...%DKIM params%"
and
you.domain. 86400 IN TXT "v=DMARC1...%dmarc params%"
And you need ask you VPS provider set PTR for you VPS IP address with first.vps.you.domain. Or some providers access that config in web panel.