J'ai configuré Postfix, Dovecot et RoundCube. La réception et l'envoi d'e-mail via RoldCube fonctionne ainsi que de recevoir des courriels via IMAP avec un autre client de messagerie.
Mais je ne peux pas envoyer de courriels avec un client de messagerie externe. Dès que je me connecte, je vois:
postfix/smtpd[1258]: warning: SASL: Connect to private/auth failed: No such file or directory
postfix/smtpd[1258]: fatal: no SASL authentication mechanisms
dans mail.log.
ici, ma configuration Dovecot:
dovecot -n
# 2.1.7: /etc/dovecot/dovecot.conf
# OS: Linux 3.2.0-4-AMD64 x86_64 Debian 7.6
mail_location = mbox:~/mail:INBOX=/var/mail/%u
namespace inbox {
inbox = yes
location =
mailbox Drafts {
special_use = \Drafts
}
mailbox Junk {
special_use = \Junk
}
mailbox Sent {
special_use = \Sent
}
mailbox "Sent Messages" {
special_use = \Sent
}
mailbox Trash {
special_use = \Trash
}
prefix =
}
passdb {
args = /etc/dovecot/dovecot-sql.conf
driver = sql
}
protocols = imap pop3
ssl_cert = </etc/dovecot/dovecot.pem
ssl_key = </etc/dovecot/private/dovecot.pem
userdb {
args = /etc/dovecot/dovecot-sql.conf
driver = sql
}
voici mon postfix config:
postconf -n
alias_database = hash:/etc/aliases
alias_maps = pgsql:/etc/postfix/pgsql-aliases.cf
append_dot_mydomain = no
biff = no
config_directory = /etc/postfix
default_transport = error
dovecot_destination_recipient_limit = 1
html_directory = /usr/share/doc/postfix/html
inet_interfaces = 127.0.0.1, 192.168.1.134
inet_protocols = ipv4
local_recipient_maps = $virtual_mailbox_maps
local_transport = virtual
mailbox_size_limit = 0
mydestination = localhost
myhostname = vocdemosvr01.voxtelo.com
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
myorigin = $mydomain
readme_directory = /usr/share/doc/postfix
recipient_delimiter = +
relay_domains = proxy:pgsql:/etc/postfix/pgsql/relay_domains.cf
relay_transport = error
relayhost =
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)
smtpd_sasl_auth_enable = yes
smtpd_sasl_path = private/auth
smtpd_sasl_type = dovecot
smtpd_tls_cert_file = /etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file = /etc/ssl/private/ssl-cert-snakeoil.key
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtpd_use_tls = yes
virtual_alias_maps = proxy:pgsql:/etc/postfix/pgsql/virtual_alias_maps.cf
virtual_gid_maps = static:12
virtual_mailbox_base = /var/vmail
virtual_mailbox_domains = proxy:pgsql:/etc/postfix/pgsql/virtual_domains_maps.cf
virtual_mailbox_limit = 512000000
virtual_mailbox_maps = proxy:pgsql:/etc/postfix/pgsql/virtual_mailbox_maps.cf
virtual_minimum_uid = 8
virtual_transport = dovecot
virtual_uid_maps = static:8
voxdemosvr01:/var/spool/postfix/private#
Quelle configuration dois-je vérifier?
Vérifier
/etc/dovecot/conf.d/10-master.conf
pour la ligne
unix_listener private/auth
changez-le à
unix_listener /var/spool/postfix/private/auth
Redémarrez DOVECOT et réessayez. Si toujours ne fonctionne pas, postez la sortie de dovecot -n
et postfix -n
Après avoir passé quelques heures à essayer de comprendre cela, j'ai finalement réparé mon problème, j'espère que cela aide les autres ...
Dans le fichier postfix/main.cf, vous avez quelque chose comme:
smtpd_sasl_path = private/auth
et dans le dovecot/Conf.d/10-Master.conf Vous avez quelque chose comme:
service auth {
# auth_socket_path points to this userdb socket by default. It's typically
# used by dovecot-lda, doveadm, possibly imap process, etc. Its default
# permissions make it readable only by root, but you may need to relax these
# permissions. Users that have access to this socket are able to get a list
# of all usernames and get results of everyone's userdb lookups.
unix_listener /var/spool/postfix/private/auth {
mode = 0666
user = postfix
group = postfix
}
...
dans mon cas, le "Private/Auth" dans le premier fichier ne correspondait pas au chemin UNIX_LISTENER, dès que je pose celui-ci égal au premier, il a résolu le problème. Je suppose que le SMTPD_SASL_PATH doit être identique à la valeur/var/spool/postfix/... sinon cela échouera.
J'espère que cela t'aides,
Un autre endroit à vérifier est /etc/postfix/master.cf
Dans la configuration de la soumission. Assurez-vous que le smtpd_sasl_path
Variable Il correspond à celui de la configuration de Dovecot.
D'une manière ou d'une autre, en plus des autres contextes, je devais ajouter la ligne suivante à mon principal.cf:
ueue_directory = /var/spool/postfix
Avant de faire la ré-jigging de vos chemins, vérifiez la syntaxe de configuration DOVECOT avec:
dovecot -n
Cette commande doit vider le fichier de configuration DOVECOT à l'écran, si elle ne montre pas la première erreur qu'elle a rencontrée. Modifiez le fichier pour corriger les erreurs, le cas échéant et vous devriez être prêt à partir. Si vous obtenez un Fatal: Erreur dans le fichier de configuration /etc/dovecot/dovecot.conf ligne 6: attendre '=' ou similaire, puis supprimez simplement les espaces avant et/ou après le signe des égaux sur le La ligne notée devrait le réparer (je pense que c'est une question de codage).