Using Google Workspace or Zoho email

My MX, SPF and DKIM related settings were

example.com.au.	IN	MX	10 mx.zoho.com.au.
example.com.au.	IN	MX	20 mx2.zoho.com.au.
example.com.au.	IN	MX	50 mx3.zoho.com.au.
example.com.au.	IN	TXT	"v=spf1 include:zohomail.com.au a mx a:example.com.au ip4:103.xx.xx.xxx ip4:103.xx.xx.xxx ?all"
zmail._domainkey.example.com.au.	IN	TXT	"v=DKIM1; k=..   ; zoho DKIMN
202410._domainkey.example.com.au.	IN	TXT	( "v=DKIM1; k=.. ; server DKIM

mxtoolbox reports for both DKIM records:

||DKIM Record Published | DKIM Record found|
DKIM Syntax Check |The record is valid|
DKIM Public Key Check | Public key is present|

Setting MX records in DNS for Google Workspace or Zoho email in Virtualmin DNS settings results in Virtualmin informing me that this domain has email enabled / to disable email feature if email is hosted externally.
As per Virtualmin instructions, I disabled email, tested sending emails via zoho for the domain (worked) and sent to the domain (worked) with access via zoho. I then tested email from the server with a little test script. No email was received from this test script, I assume because literally Virtualmin disabled emails from the Virtualmin server.

This thread: VPS + Virtualmin + Google Apps: Mail appears most relevant to what I asked, however it’s dated and might no longer be best practice.

[edit: yeah, nah. still not sending from test script]

[edit: snippet from /var/log/maillog when trying test email from server, one to info@example.com, the other to a gmail account]

Sent to same domain address (info@example.com.au)

Nov 30 02:44:23 hostname postfix/pickup[349927]: BA49AE00370F: uid=1000 from=<example>
Nov 30 02:44:23 hostname postfix/cleanup[350949]: BA49AE00370F: message-id=<20241130024423.BA49AE00370F@hostname.example.com.au>
Nov 30 02:44:23 hostname opendkim[343664]: BA49AE00370F: no signing domain match for 'example.com.au'
Nov 30 02:44:23 hostname opendkim[343664]: BA49AE00370F: no signing subdomain match for 'example.com.au'
Nov 30 02:44:23 hostname opendkim[343664]: BA49AE00370F: no signature data
Nov 30 02:44:23 hostname postfix/qmgr[111801]: BA49AE00370F: from=<example@hostname.example.com.au>, size=421, nrcpt=1 (queue active)
Nov 30 02:44:53 hostname postfix/smtp[350624]: connect to mx.zoho.com.au[103.138.128.141]:25: Connection timed out
Nov 30 02:45:23 hostname postfix/smtp[350624]: connect to mx2.zoho.com.au[103.91.166.141]:25: Connection timed out
Nov 30 02:45:53 hostname postfix/smtp[350624]: connect to mx3.zoho.com.au[103.138.128.141]:25: Connection timed out
Nov 30 02:45:53 hostname postfix/smtp[350624]: BA49AE00370F: to=<info@example.com.au>, relay=none, delay=90, delays=0.05/0/90/0, dsn=4.4.1, status=deferred (connect to mx3.zoho.com.au[103.138.128.141]:25: Connection timed out)
Nov 30 02:48:06 hostname postfix/qmgr[111801]: AFC03E00370E: from=<example@hostname.example.com.au>, size=421, nrcpt=1 (queue active)
Nov 30 02:48:37 hostname postfix/smtp[351652]: connect to mx.zoho.com.au[103.138.128.141]:25: Connection timed out
Nov 30 02:49:07 hostname postfix/smtp[351652]: connect to mx2.zoho.com.au[103.91.166.141]:25: Connection timed out
Nov 30 02:49:37 hostname postfix/smtp[351652]: connect to mx3.zoho.com.au[103.138.128.141]:25: Connection timed out
Nov 30 02:49:37 hostname postfix/smtp[351652]: AFC03E00370E: to=<info@example.com.au>, relay=none, delay=1658, delays=1568/0.03/90/0, dsn=4.4.1, status=deferred (connect to mx3.zoho.com.au[103.138.128.141]:25: Connection timed out)

Sent to a gmail account

Nov 30 02:50:53 hostname postfix/pickup[349927]: 21924E003710: uid=1000 from=<example>
Nov 30 02:50:53 hostname postfix/cleanup[352397]: 21924E003710: message-id=<20241130025053.21924E003710@hostname.example.com.au>
Nov 30 02:50:53 hostname opendkim[343664]: 21924E003710: no signing domain match for 'example.com.au'
Nov 30 02:50:53 hostname opendkim[343664]: 21924E003710: no signing subdomain match for 'example.com.au'
Nov 30 02:50:53 hostname opendkim[343664]: 21924E003710: no signature data
Nov 30 02:50:53 hostname postfix/qmgr[111801]: 21924E003710: from=<example@hostname.example.com.au>, size=424, nrcpt=1 (queue active)
Nov 30 02:51:23 hostname postfix/smtp[351652]: connect to gmail-smtp-in.l.google.com[74.125.200.26]:25: Connection timed out
Nov 30 02:51:23 hostname postfix/smtp[351652]: connect to gmail-smtp-in.l.google.com[2404:6800:4003:c04::1a]:25: Network is unreachable
Nov 30 02:51:53 hostname postfix/smtp[351652]: connect to alt1.gmail-smtp-in.l.google.com[173.194.202.27]:25: Connection timed out
Nov 30 02:51:53 hostname postfix/smtp[351652]: connect to alt1.gmail-smtp-in.l.google.com[2607:f8b0:400e:c00::1a]:25: Network is unreachable
Nov 30 02:52:23 hostname postfix/smtp[351652]: connect to alt2.gmail-smtp-in.l.google.com[142.251.2.26]:25: Connection timed out
Nov 30 02:52:23 hostname postfix/smtp[351652]: 21924E003710: to=<user.name@gmail.com>, relay=none, delay=90, delays=0.05/0/90/0, dsn=4.4.1, status=deferred (connect to alt2.gmail-smtp-in.l.google.com[142.251.2.26]:25: Connection timed out)