私はUbuntu16 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