Antes de mais nada, remova esses valores (eles não são necessários se você usar o KeyTable):
Domain example1.com
KeyFile /etc/opendkim/keys/example1_com/selc
Selector selc
Domain example2.com
KeyFile /etc/opendkim/keys/example2_com/selc
Selector selc
Configure o seu KeyTable assim:
mykey1 example1.com:recordname1:/path/to/domain.key
mykey2 example2.com:recordname2:/path/to/domain.key
Configure sua SigningTable como essa (observe a correspondência de caractere curinga e mykey1 e mykey2 em KeyTable ):
*@example1.com mykey1
*@example2.com mykey2
E, finalmente, altere seu opendkim.conf para incluir SigningTable via prefixo refile: (suporte a expressões regulares):
SigningTable refile:/etc/opendkim/SigningTable
E registro de domínio para referência (note recordname1 e recordname2 em KeyTable ):
recordname1._domainkey IN TXT "v=DKIM1; g=*; k=rsa; p=..."
recordname2._domainkey IN TXT "v=DKIM1; g=*; k=rsa; p=..."
Além disso, por favor, verifique se você tem o seu nome de host do nó (do qual você está enviando e-mail) no arquivo InternalHosts :
server1.example1.com
server2.example2.com
mail.example1.com
mail.example2.com
Novamente, você pode usar o prefixo refile: para adicionar algo como:
*.example1.com
*.example2.com
se você tiver vários hosts e não quiser incluir todos eles manualmente. Se você aceitar apenas correio local, deverá adicionar localhost aqui.
Você deve verificar o arquivo de log para avisos DKIM sobre ignorar a assinatura se seu host estiver faltando no arquivo InternalHosts .
Exemplo de opendkim.conf:
# Set these values (Syslog, SyslogSuccess, LogWhy) for debugging and check syslog for details
Syslog yes
SyslogSuccess yes
LogWhy yes
UMask 002
UserID opendkim:opendkim
KeyTable /etc/opendkim/KeyTable
SigningTable refile:/etc/mail/SigningTable
InternalHosts refile:/etc/mail/hosts