Milter 服务需要 Transport:endpoint 而不是“/var/run/opendkim/opendkim.sock”

Ano*_*nom 2 postfix dkim socket milter

我根据本教程使用 milter 设置了 postfix:https://www.digitalocean.com/community/tutorials/how-to-install-and-configure-dkim-with-postfix-on-debian-wheezy

但后来 posptfix 报告它无法连接到该套接字上的 milter

我将 postfix 中的套接字更改main.cf为:

    smtpd_milters = /var/run/opendkim/opendkim.sock
    non_smtpd_milters = /var/run/opendkim/opendkim.sock
Run Code Online (Sandbox Code Playgroud)

并打开dkim /etc/default/opendkim

SOCKET="local:/var/run/opendkim/opendkim.sock" # default
Run Code Online (Sandbox Code Playgroud)

现在我收到以下警告,并且我的邮件未签名:

Oct 28 18:45:12 localhost postfix/cleanup[22881]: warning: Milter service needs transport:endpoint instead of "/var/run/opendkim/opendkim.sock"
Run Code Online (Sandbox Code Playgroud)

我该如何解决这个问题?

mas*_*oeh 5

正如错误中所述,参数值smtpd_miltersnon_smtpd_milters正确。正确的一个是

smtpd_milters = unix:/var/run/opendkim/opendkim.sock
non_smtpd_milters = unix:/var/run/opendkim/opendkim.sock
Run Code Online (Sandbox Code Playgroud)

正如官方文档中所述

监听套接字的一般语法如下:

Unix:路径名

连接到绑定到指定路径名的本地 UNIX 域服务器。如果 smtpd(8) 或 cleanup(8) 进程以 chroot 方式运行,则会相对于 Postfix 队列目录解释绝对路径名。

inet:主机:端口

连接到指定本地或远程主机上的指定 TCP 端口。主机和端口可以用数字或符号形式指定。