Я использую Ubuntu 16 LTS, пытаюсь подписывать почту с помощью opendkim
и я получаю:
$ tail /var/log/mail.err
...
Milter (opendkim): error connecting to filter: Connection refused by localhost
у меня есть sendmail
настроен с:
INPUT_MAIL_FILTER(`opendkim', `S=inet:8891@localhost')dnl
И в /etc/opendkim.conf
У меня есть:
Socket inet:8891@localhost
Когда я проверяю с lsof
Я не вижу ничего, что слушает 8891:
$ sudo lsof -i :8891 -n
[nothing]
Смотря на opendkim
статус говорит, что он работает:
$ systemctl status opendkim.service
...
Active: active (running)
...
Почему не слушает 8891?
Есть еще один файл конфигурации для opendkim, /etc/default/opendkim
, и в этом файле указан другой сокет по умолчанию:
# Command-line options specified here will override the contents of
# /etc/opendkim.conf. See opendkim(8) for a complete list of options.
...
SOCKET="local:/var/run/opendkim/opendkim.sock"
Комментируя эту строку и вставляя SOCKET="inet:8891@localhost"
ниже, работал.
В моей системе я обнаружил, что мне нужно изменить
/etc/systemd/system/multi-user.target.wants/opendkim.service
из
ExecStart=/usr/sbin/opendkim -P /var/run/opendkim/opendkim.pid -p local:/var/run/opendkim/opendkim.sock
к
ExecStart=/usr/sbin/opendkim -P /var/run/opendkim/opendkim.pid -p inet:8891@localhost
А потом
systemctl daemon-reload
и
service opendkim restart
после чего я увидел, как он слушает:
netstat -nalp | grep 8891
По какой-то причине opendkim.conf не использовался для указания порта.
HTH,
M