I got a rejection notice from Microsoft Office 365. My email couldn’t be delivered, they said, because it was
on the Spamhaus malware-source list. Sure enough, the /64 was on it… which, I guess, might be the prefix
for the entire data center? at my VPS provider. All I get is a measly /128.
Point being, I wanted to send outbound mail over IPv4 only, while keeping inbound mail available on
IPv6. Thanks to slop, the internet didn’t know how to do it conditionally. I ended up modifying my
/etc/postfix/master.cf to include the configuration on the smtp client only:
smtp unix - - y - - smtp
-o inet_protocols=ipv4
The change here is adding the inet_protocols configuration line under the “smtp” UNIX service (first on
line), handled by the “smtp” client (last on line).
I worked this out from scattered hints in various documentation, but in a broader search, I managed to find Postfix’s own corroboration of what I did.
I can no longer deliver to IPv6-only MX hosts, but in the short run, that’s far less of a concern than being
unable to deliver to dualstack hosts which reject my IPv6 but not my IPv4. The long-term solution is some
sort of smtp_protocol_map that I could specify IPv4-only “for Microsoft” and let the rest of the Internet
use IPv6 if it wanted to, but I don’t think Postfix supports that.
The information about my specific server applies to Postfix 3.8 shipped with Ubuntu 24.04 LTS.
No comments:
Post a Comment