SO I wanted to put a bow on this by sharing my experience upgrading to AMS 6.0 and implementing DKIM/DMARC/MTA-STS/security.txt for our mail server. We were already using most of the anti-spam tools built into AMS, but mostly relied on SPF up until version 6 for anti-spoofing.
Following instructions from
Outgoing Mail and a few notes from
Reddit;
(1) set up DKIM key in AMS
(2) copy the DNS record it generates to make a TXT record for all my DNS servers (both internal to our network and external)
(3) set up a DMARC DNS record using
MX Toolbox, using policy of 'none' to start
(4) set up MTA-STS DNS records and placed mta-sts.txt / security.txt on my webserver (Apache in my case)
(5) tested via a few sites I normally use for various email testing:
https://mxtoolbox.com/emailhealth/https://www.learndmarc.com/https://www.checktls.com/https://www.uriports.com/toolsThere were two notable issues I ran into:
(1) DKIM txt strings are typically > 255 characters, which isn't an issue for a lot of registrars, but if you're using Microsoft DNS and try to enter a long TXT record, it cuts off - you can use
MailHArdener's record splitter to split the string in a way that will copy/paste right.
(2) AMS can utilize command-line mail scanning (
Tutorial), which is super-helpful, BUT in our case, using Avast, we scan both incoming and outgoing mail, and it adds an email signature by default for the likes of 'Avast certifies this email virus-free' etc. The issue is that AMS applies DKIM to the email BEFORE AV scanning for outgoing mail, and the addition of that signature (or any other changes for that matter) will cause outgoing emails to FAIL DKIM due to checksums not matching; effectively, DKIM requires the email contents (other than headers) not be changed at all once signed by the sending server. Turning the signature option OFF in avast fixed this issue.
Once this was figured out, DKIM passed and I set the policy from 'none' to 'quarantine'.