Ubuntu 上带有 Postfix 的 Dovecot:警告:SASL:连接到 private/auth-client 失败:没有此文件或目录

Ubuntu 上带有 Postfix 的 Dovecot:警告:SASL:连接到 private/auth-client 失败:没有此文件或目录

我似乎无法启动 dovecot。我的日志一直显示以下内容:

connect from localhost[127.0.0.1]
Mar  1 17:15:01 mac postfix/smtpd[32526]: warning: SASL: Connect to private/auth-client failed: No such file or directory
Mar  1 17:15:01 mac postfix/smtpd[32526]: fatal: no SASL authentication mechanisms
Mar  1 17:15:02 mac postfix/master[21369]: warning: process /usr/lib/postfix/smtpd pid 32526 exit status 1
Mar  1 17:15:02 mac postfix/master[21369]: warning: /usr/lib/postfix/smtpd: bad command startup -- throttling
Mar  1 17:15:03 mac postfix/smtpd[32546]: connect from localhost[127.0.0.1]
Mar  1 17:15:03 mac postfix/smtpd[32546]: warning: SASL: Connect to private/auth-client failed: No such file or directory
Mar  1 17:15:03 mac postfix/smtpd[32546]: fatal: no SASL authentication mechanisms
Mar  1 17:15:04 mac postfix/master[21369]: warning: process /usr/lib/postfix/smtpd pid 32546 exit status 1
Mar  1 17:15:04 mac postfix/master[21369]: warning: /usr/lib/postfix/smtpd: bad command startup -- throttling

我的 /etc/postfix/main.cf 有:

home_mailbox = Maildir/
mailbox_command =
inet_protocols = ipv4
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth-client
smtpd_sasl_local_domain =
smtpd_sasl_security_options = noanonymous

谷歌搜索后我发现我需要添加一个客户端块,例如:

client {
  path = /var/spool/postfix/auth/dovecot
  mode = 0660
  user = postfix
  group = mail
}

但是似乎自从我找到所有示例以来,dovecot 都发生了变化,所以我不知道把它放在哪里。我使用的是 Dovecot 2.0.13

有什么办法可以解决这个问题吗?谢谢!

答案1

我到处找了找,什么也没找到。我使用的是 Dovecot 2.0.19。

最终通过编辑 /etc/dovecot/conf.d/10-master.conf 并设置以下内容找到了修复方法:

  # Postfix smtp-auth
  unix_listener /var/spool/postfix/private/auth_client {
    mode = 0666
    user = postfix
  }

然后重启 dovecot ('service restart dovecot')

如果您没有文件 /etc/dovecot/conf.d/10-master.conf,请尝试 grepping /etc/dovecot 来查找其可能被配置的位置:

cd /etc/dovecot
grep -ri postfix *

并查找声明 /var/spool/postfix 中某处路径的文件,并根据需要进行调整。在我的 dovecot 配置中,unix_listener 被注释掉,并指向错误的文件 (/var/spool/postfix/private/auth)。

答案2

当然,您需要在 Dovecot 和 Postfix 中匹配套接字的路径名,否则您将收到“没有这样的文件或目录”错误,原因很明显,您正在连接到一个不存在的套接字。

选择其中一个路径名,并在 Dovecot 和 Postfix 中以相同的方式配置它。例如,让您的 Dovecot 配置与 Postfix 的预期相匹配:

auth default {
  ...
  socket listen {
    ...
    client {
      path = /var/spool/postfix/private/auth-client
      mode = 0660
      user = postfix
      group = mail
    }
    ...
  }
  ...
}

答案3

您必须将 auth-client 更改为 dovecot-auth,因为 是新套接字身份验证的名称。位于 中/var/spool/postfix/private/。因此请输入/var/spool/postfix/private/dovecot-auth而不是/var/spool/postfix/private/auth-client

我遇到了同样的问题并已解决。

相关内容