Для начала необходимо установить сам sendmail.
apt install sendmail
Редактируем hosts
nano /etc/hosts
и добавляем туда строку
127.0.0.1 localhost domain.com
Обратите внимание! Везде где указан domain.com — меняем на свой реальный домен.
Ставим opendkim и opendkim-toolsе
apt-get install opendkim opendkim-tools
Создаем папку где будут храниться ключи
mkdir -p /etc/opendkim/keys/domain.com
Генерируем ключи
opendkim-genkey -D /etc/opendkim/keys/domain.com -d domain.com -s mail
После выполнения команды в папке /etc/opendkim/keys/domain.com появятся два файла mail.txt и mail.private Для них необходимо назначить права доступа
chown -R opendkim:opendkim /etc/opendkim/keys/domain.com
chmod 640 /etc/opendkim/keys/domain.com/mail.private
chmod 644 /etc/opendkim/keys/domain.com/mail.txt
Редактируем конфигурацию opendkim
nano /etc/opendkim.conf
Удаляем все и вставляем данную конфигурацию.
AutoRestart Yes
AutoRestartRate 10/1h
UMask 002
Syslog yes
SyslogSuccess Yes
LogWhy Yes
Canonicalization relaxed/simple
ExternalIgnoreList refile:/etc/opendkim/TrustedHosts
InternalHosts refile:/etc/opendkim/TrustedHosts
KeyTable refile:/etc/opendkim/KeyTable
SigningTable refile:/etc/opendkim/SigningTable
Mode sv
PidFile /var/run/opendkim/opendkim.pid
SignatureAlgorithm rsa-sha256
UserID opendkim:opendkim
Socket inet:8891@127.0.0.1
Domain domain.com
Selector mail
Создаем три файла и добавляем в них необходимую конфигурацию
nano /etc/opendkim/KeyTable
mail._domainkey.domain.com domain.com:mail:/etc/opendkim/keys/domain.com/mail.private
nano /etc/opendkim/SigningTable
*@domain.com mail._domainkey.domain.com
nano /etc/opendkim/TrustedHosts
127.0.0.1
localhost
domain.com
Открываем конфиг sendmail
nano /etc/mail/sendmail.mc
и добавляем в конец
INPUT_MAIL_FILTER(`opendkim', `S=inet:8891@127.0.0.1')
Открываем конфиг opendkim
nano /etc/default/opendkim
и расскоментируем строку SOCKET=»inet:8891@localhost « Если ее нету, то просто добавляем в конец.
Пересобирем конфиг opendkim и перезапускаем службы
sendmailconfig
systemctl restart sendmail
systemctl restart opendkim
Теперь необходимо добавить TXT запись домена. Субдомен указываем mail._domainkey , а значение берем из файла /etc/opendkim/keys/domain.com/mail.txt Пример:
v=DKIM1; h=sha256; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA1hrOt283HUPBskuF2f6Dij9BDxxx+Gz09lGUu7dp8lL8S7it3SI2HQRqgM/HlsNoRihNxxx/Edgs8FFoaru4N7b8QXJirXxpe7yJRbnUhYacFVxxxGuFJPpRr6LNSVWhWh8d4Z2e2af2n2VJVbb5ByP3b6MxxxKYw8gj1oVyHVq+kM7jLzOvA8zu9NyPaPhKcF68ZVCnkrON4lgUzQwLwJHo3I5YF7zwAK5jDRZlriI8aXkzxxxSYlyzMFyd6E/5s9TwO40UyhfEl3WooLRaB27ty5MBdg4pJtch4IiM4FhslxRDf1d7juuDktL81YdDosD4RDBgphl6lZoOynOe9wIDAQAB
На этом настройка sendmail + dkim завершена. Проверить работоспособность dkim можно на https://www.mail-tester.com/