The error message postfix/smtpd[1258]: warning: SASL: Connect to private/auth failed: No such file or directory
typically occurs when Postfix cannot establish a connection to the Dovecot authentication service. This prevents external email clients from sending emails while receiving works fine.
Based on your configuration files, here are the critical components that need verification:
# Postfix main.cf relevant settings
smtpd_sasl_auth_enable = yes
smtpd_sasl_path = private/auth
smtpd_sasl_type = dovecot
The most common cause is incorrect permissions or missing socket file. Check if the auth socket exists:
ls -la /var/spool/postfix/private/auth
If missing, you'll need to ensure Dovecot is properly configured to create it.
Add these to your Dovecot configuration (/etc/dovecot/conf.d/10-master.conf):
service auth {
unix_listener /var/spool/postfix/private/auth {
mode = 0660
user = postfix
group = postfix
}
}
Ensure Postfix can access the socket:
chown postfix:postfix /var/spool/postfix/private/auth
chmod 660 /var/spool/postfix/private/auth
After making changes, test with:
telnet localhost 25
EHLO example.com
You should see SASL mechanisms listed in the response.
Enable verbose logging in both services:
# In /etc/dovecot/conf.d/10-logging.conf
auth_verbose = yes
auth_debug = yes
# In Postfix main.cf
debug_peer_level = 2
debugger_command =
Check both services are running and communicating:
systemctl restart postfix dovecot
netstat -anp | grep auth
You should see the socket active and both processes connected to it.
When external clients fail to authenticate while internal services work, we're typically dealing with a broken SASL handshake between Postfix and Dovecot. The key error:
postfix/smtpd[1258]: warning: SASL: Connect to private/auth failed: No such file or directory
postfix/smtpd[1258]: fatal: no SASL authentication mechanisms
1. Verify the auth socket path:
# Check Postfix's expected path postconf -d | grep smtpd_sasl_path # Should return: smtpd_sasl_path = private/auth
2. Confirm Dovecot's actual socket location:
# Check Dovecot's auth socket doveconf | grep auth_listener_path # Typical output: auth_listener_path = /var/spool/postfix/private/auth
Postfix main.cf adjustment:
# Explicitly set the correct path sudo postconf -e "smtpd_sasl_path = /var/spool/postfix/private/auth"
Dovecot 10-auth.conf verification:
# Enable and configure UNIX socket service { unix_listener /var/spool/postfix/private/auth { mode = 0660 user = postfix group = postfix } }
Create the required directory with correct permissions:
sudo mkdir -p /var/spool/postfix/private sudo chown postfix:dovecot /var/spool/postfix/private sudo chmod 750 /var/spool/postfix/private
After making changes, test the connection:
telnet localhost 25 EHLO example.com AUTH PLAIN
Monitor logs in real-time:
tail -f /var/log/mail.log | grep -E 'postfix/smtpd|dovecot'
If issues persist, enable detailed debugging:
# In /etc/dovecot/conf.d/10-logging.conf auth_verbose = yes auth_debug = yes
For Postfix:
# In /etc/postfix/master.cf smtpd -v -v
Remember to restart both services after configuration changes:
sudo systemctl restart postfix dovecot