为什么我得到一个“致命的:SASL库初始化”

如果我打开smtp_sasl_auth_enable = yes < – 是的

我收到了这套警告,是SASL的一个致命错误。 我不明白为什么它也在寻找赛勒斯 – 这是没有编译。

postfix/smtp[87056]: warning: unsupported SASL client implementation: cyrus Apr 20 13:29:52 zeus.quantum-radio.net postfix/smtp[87056]: fatal: SASL library initialization Apr 20 13:29:53 zeus.quantum-radio.net postfix/master[86038]: warning: process /usr/libexec/postfix/smtp pid 87056 exit status 1 Apr 20 13:29:53 zeus.quantum-radio.net postfix/master[86038]: warning: /usr/libexec/postfix/smtp: bad command startup -- throttling 

我的configuration是这样的:

 smtpd_use_tls=yes smtpd_tls_cert_file=/System/Library/OpenSSL/certs/testServer.crt smtpd_tls_key_file=/System/Library/OpenSSL/private/testServer.key tls_random_source=dev:/dev/urandom smtpd_sasl_auth_enable=yes smtpd_sasl_type=dovecot smtpd_sasl_path=private/auth smtpd_recipient_restrictions=check_sender_access hash:/usr/local/cutedge/postfix/etc/access, check_client_access hash:/usr/local/cutedge/postfix/etc/access, permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination, check_recipient_access hash:/usr/local/cutedge/postfix/etc/access broken_sasl_auth_clients=yes smtp_sasl_auth_enable=no smtp_sasl_password_maps=hash:/usr/local/cutedge/postfix/etc/sasl_passwd smtp_sasl_security_options=noplaintext,noanonymous smtp_use_tls=yes smtpd_helo_required=yes 

Postfix没有实现SASL本身 ,而是使用现有的实现作为构build块。 目前postfix只支持两个SASL实现,Cyrus SASL和Dovecot SASL。

  1. 赛勒斯SASL为Postfix SMTP服务器smtpd和SMTP客户端smtp提供SASL框架
  2. Dovecot SASL的当前实现不提供客户端function 。

所以,这足够清楚为什么postfix smtp抛出关于丢失cyrus SASL实现的错误。 这是因为Postfix SMTP客户端只使用Cyrus SASL实现才能正常工作。


显而易见的解决scheme是使用SASL实现编译后缀:Cyrus SASL和Dovecot SASL。 要检查它们是否被编译为postfix使用, postconf命令

 postconf -a