I'm using OpenDKIM to sign mail on my Postfix server. It works as intended when sending with SMTPS from it's origin domain (let's say example.com
). However, mail set out from SMTP clients on the LAN are not being signed. Said clients do not have from the same origin domain (for example client1.lan
), but are translated with smtp_generic_maps
to the same origin (specifically [email protected]
). Ideally, I want to sign that outgoing mail.
In /etc/postfix/main.cf I have:
smtpd_milters = unix:/var/run/opendkim/opendkim.sock
non_smtpd_milters = unix:/var/run/opendkim/opendkim.sock
In /etc/opendkim.conf I have:
ExternalIgnoreList refile:/etc/opendkim/TrustedHosts
InternalHosts refile:/etc/opendkim/TrustedHosts
In /etc/opendkim/TrustedHosts I have:
::1
127.0.0.1
localhost
ip6-localhost
ip6-loopback
mail
10.0.0.0/24
*.lan
In Postfix make sure
/etc/postfix/main.conf
contains:This will ensure that mail coming from authenticated users will be signed by OpenDKIM. As per documentation:
If they are to be relayed and signed to other domains (based on the
From:
header), then you'll have to map these other domains with theSigningTable
configuration at opendkim, you may even assign different keys and selectors by matching them at theKeyTable
— both point to different mapping files.I had a similar problem, but I could debug it by looking at the mail headers — there you'll find the exact hostname and IP address the relayed server is using, for example:
Then you can check if the relayed server is using the internal network, which hostname it's using and to what domain it intends to send e-mail from.
Had the same issue: mail being sent from remote host didn't get signed.
The solution was simple: just to add the IP of a remote sender to /etc/opendkim/TrustedHosts