warning: when SASL type is “dovecot”, SASL path “dovecot-auth” should be a socket pathname


Postfix – это MTA (mail transfer agent), и его можно использовать при построении всевозможных почтовых систем. Он, разумеется, заслуживает нескольких хороших статей, однако сейчас я расскажу о конкретной ошибке, встретившейся мне. Постоянно получаю в логах своего почтового сервера следующие варнинги:

warning: when SASL type is "dovecot", SASL path "dovecot-auth" should be a socket pathname

Надоели эти варнинги, и я решил их убрать.

Вот содержимое моего файла main.cf:

smtpd_sasl_type = dovecot
smtpd_sasl_path = dovecot-auth

Окей, меняю smtpd_sasl_path на путь к unix-сокету, как и говорится в сообщении:

smtpd_sasl_path = /var/spool/postfix/dovecot-auth

Однако теперь Postfix ругается по-другому:

Aug 25 10:10:57 mail postfix/smtpd[3085]: warning: SASL: Connect to /var/spool/postfix/dovecot-auth failed: No such file or directory
Aug 25 10:10:57 mail postfix/smtpd[3085]: fatal: no SASL authentication mechanisms
Aug 25 10:10:58 mail postfix/master[2370]: warning: process /usr/lib/postfix/smtpd pid 3085 exit status 1
Aug 25 10:10:58 mail postfix/master[2370]: warning: /usr/lib/postfix/smtpd: bad command startup -- throttling

Решение оказывается довольно неожиданным. Нужно поместить unix-сокет в подкаталог private. Сначала меняем место создания unix-сокета в файле dovecot.conf:

        client {
#            path = /var/spool/postfix/dovecot-auth
            path = /var/spool/postfix/private/dovecot-auth
            mode = 0666
            user = postfix
            group = postfix

А затем меняем настройку в файле Postfix’а:

#smtpd_sasl_path = dovecot-auth
smtpd_sasl_path = private/dovecot-auth

Перезапускаем сначала dovecot, затем postfix:

# /etc/init.d/dovecot restart
# /etc/init.d/postfix restart

Вот и все! Ошибки перестанут нас докучать. А старый сокет можно удалить:

# rm /var/spool/postfix/dovecot-auth

Похожие статьи

Leave a Reply

Your email address will not be published. Required fields are marked *