我正在将 Ubuntu 14.04 postfix 邮件安装从一台机器移动到另一台机器。当前设置与 Ubuntu 的默认 postfix 和 dovecot 设置配合得很好,因此用户可以使用 SMTP auth 等。
因此,我将相关配置文件复制到新机器(也运行 Ubuntu 14.04)并在进行必要的 DNS 更改后在那里启动 postfix。
但是我在新机器的邮件日志中得到了这个:
10 月 28 日 14:18:50 lorina postfix/smtpd[13445]:警告:SASL:连接到私有/身份验证失败:没有这样的文件或目录 10 月 28 日 14:18:50 lorina postfix/smtpd[13445]:致命:没有 SASL 身份验证机制 10 月 28 日 14:18:51 lorina postfix/master[13440]:警告:进程 /usr/lib/postfix/smtpd pid 13445 退出状态 1 10 月 28 日 14:18:51 lorina postfix/master[13440]:警告:/usr/lib/postfix/smtpd:错误的命令启动 -- 节流
Postfix 设置为使用以下内容:
smtpd_sasl_type = dovecot smtpd_sasl_path = 私有/授权
在 dovecot 配置中我有:
# 后缀 smtp-auth unix_listener /var/spool/postfix/private/auth { 模式 = 0666 }
但是,我看到 /var/spool/postfix/private/auth 在新机器上不存在。
我已尝试重新启动机器,以防任何服务无法正常工作。这个文件什么时候制作?我怎样才能把它装箱?
要回答您的问题:
我认为您的设置缺少一些设置(Postfix 和 Dovecot)并且依赖于默认设置。这可能已从一台机器更改为另一台机器。
鸽棚
我想说最大的问题是你没有告诉 dovecot 谁应该拥有套接字。它通常分配给后缀用户和组,如下所示:
检查套接字父目录的所有权('private')它分配给什么用户和组?如果要在目录中写入,您需要 dovecot 使用相同的用户。
后缀
smtpd_sasl_path 设置与 queue_directory 设置相关。默认情况下 queue_directory 应该是 /var/spool/postfix 但让它显式化也没有什么坏处。
从日志中可以看出,您已经在 postfix 中启用了 sasl,尽管您的配置没有这么说。但是在什么代理上?如果您在 main.cf 中设置 smtpd_sasl_auth_enable=yes,它适用于所有代理,包括端口 25 上的 smtpd。我认为仅在 master.cf(在端口 587 上运行)中的提交代理上使用它被认为是更好的做法。如果您编辑现有的 master.cf,只需取消注释提交行和您需要的任何选项行。
看起来报告的错误具有误导性。事实上,dovecot 没有找到 SSL 证书的路径,因此它没有正确启动,因此没有在 /var/spool/postfix/private/auth 中创建套接字。