我的电子邮件服务器目前遇到了问题。我尝试使用 SASL 身份验证设置 Postfix 和 Dovecot,但是当我使用 telnet(端口 25)连接到服务器时出现以下错误:
Dec 30 17:42:51 mail postfix/smtpd[2857]: warning: SASL: Connect to private/auth failed: No such file or directory
Dec 30 17:42:51 mail postfix/smtpd[2857]: fatal: no SASL authentication mechanisms
经过一番调查,似乎套接字文件/var/spool/postfix/private/auth
不是由 postfix/dovecot 创建的。运行doveconf
命令时,我得到以下条目,其中service auth
包含 private/auth 条目:
service auth {
chroot =
client_limit = 0
drop_priv_before_exec = no
executable = auth
extra_groups =
group =
idle_kill = 0
privileged_group =
process_limit = 1
process_min_avail = 0
protocol =
service_count = 0
type =
unix_listener /var/spool/postfix/private/auth {
group = postfix
mode = 0666
user = postfix
}
unix_listener auth-client {
group =
mode = 0600
user = $default_internal_user
}
unix_listener auth-login {
group =
mode = 0600
user = $default_internal_user
}
unix_listener auth-master {
group =
mode = 0600
user =
}
unix_listener auth-userdb {
group = mail
mode = 0666
user = vmail
}
unix_listener login/login {
group =
mode = 0666
user =
}
unix_listener token-login/tokenlogin {
group =
mode = 0666
user =
}
user = $default_internal_user
vsz_limit = 18446744073709551615 B
}
运行时postconf
,我得到以下配置smtpd_sasl
:
smtpd_sasl_auth_enable = yes
smtpd_sasl_authenticated_header = yes
smtpd_sasl_exceptions_networks =
smtpd_sasl_local_domain =
smtpd_sasl_path = private/auth
smtpd_sasl_security_options = noanonymous
smtpd_sasl_service = smtp
smtpd_sasl_tls_security_options = $smtpd_sasl_security_options
smtpd_sasl_type = dovecot
所以我不确定为什么private/var
不是由 dovecot 或 postfix 创建的。有人能解释一下这个现象吗?
答案1
就我而言,问题是 dovecot 根本没有启动,即使服务 dovecot start 给了我一个 pid 启动。
尝试运行 dovecot 作为命令,这向我显示了以下内容:
doveconf:致命:配置文件 /etc/dovecot/conf.d/10-ssl.conf 第 12 行错误:ssl_cert:无法打开文件 /etc/dovecot/dovecot.pem:没有这样的文件或目录
我选择不制作自签名证书,但配置仍然希望它存在。简单地注释掉有关 ssl_cert 的两行即可解决我的问题。