Установка: Debian 10, postfix 3.4.7 и opendkim 2.11 (оба установлены из репозиториев Debian).
Я выполнил инструкции Debian на https://wiki.debian.org/opendkim
Похоже, виновата розетка. В /var/log/mail.log
, Я получаю сообщение об ошибке:
Dec 27 ···· postfix/smtpd[1153]: warning: connect to Milter service unix:/var/run/opendkim/opendkim.sock: No such file or directory
В инструкциях Debian это упоминается, и они просто говорят: «дважды проверьте разрешения».
$ ls -lhd /var/run/opendkim/
drwxr-x--- 2 opendkim opendkim 80 Dec 27 17:20 /var/run/opendkim/
$ sudo ls -lh /var/run/opendkim/
total 4.0K
-rw-rw---- 1 root root 5 Dec 27 17:20 opendkim.pid
srwxrwx--- 1 opendkim opendkim 0 Dec 27 17:20 opendkim.sock
$ groups postfix
postfix : postfix opendkim
Postfix, похоже, работает в режиме chroot (я не уверен, как сказать наверняка). Я вижу кучу каталогов внутри /var/spool/postfix
:
$ ls /var/spool/postfix/
active corrupt deferred etc hold lib pid public trace var
bounce defer dev flush incoming maildrop private saved usr
Включая /var/spool/postfix/var/run/opendkim
(за исключением того, что этот каталог кажется пустым):
$ ls -lhd /var/spool/postfix/var/run/opendkim/
drwx--x--- 2 opendkim opendkim 4.0K Dec 27 16:25 /var/spool/postfix/var/run/opendkim/
$ sudo ls -lh /var/spool/postfix/var/run/opendkim/
total 0
[РЕДАКТИРОВАТЬ]:
Забыл добавить - соответствующие разделы конфигурационных файлов следующие:
Постфикс:
smtpd_milters = inet:localhost:2525 unix:/var/run/opendkim/opendkim.sock
non_smtpd_milters = unix:/var/run/opendkim/opendkim.sock
milter_default_action = accept
milter_protocol = 6
(localhost: 2525 - это спам-фильтр, который я закодировал сам. Кажется, он работает, так как добавляет поле в заголовок сообщения)
opendkim:
Socket local:/var/run/opendkim/opendkim.sock
[КОНЕЦ РЕДАКТИРОВАНИЯ]
Вы видите то, что мне не хватает? Есть предложения, что попробовать или проверить?
Вы практически сами нашли решение: поскольку постфикс chroot'ed, а opendkim нет, вы должны поместить сокет opendkim в chroot postfix:
Socket local:/var/spool/postfix/var/run/opendkim/opendkim.sock