我在 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?
答案1
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"
下面内容,有效。
答案2
在我的系统上,我发现我必须改变
/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 未用于指定端口。
高血压,
米