我已经安装了postfix,dovecot和roundcube。 通过圆形接收和发送电子邮件正在工作,以及通过IMAP与另一个电子邮件客户端接收电子邮件。
但是我无法使用外部电子邮件客户端发送电子邮件。 只要我连接,我看到:
postfix/smtpd[1258]: warning: SASL: Connect to private/auth failed: No such file or directory postfix/smtpd[1258]: fatal: no SASL authentication mechanisms
在mail.log。
这里我的鸽子configuration:
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 }
在这里我的后缀configuration:
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#
我需要检查哪个configuration?
检查
/etc/dovecot/conf.d/10-master.conf
为线
unix_listener private/auth
改变它
unix_listener /var/spool/postfix/private/auth
重新启动dovecot,然后重试。 如果仍然不起作用,请inputdovecot -n和postfix -n输出
花了一些时间试图找出这个,我终于解决了我的问题,希望这有助于其他人…
在后缀/ main.cf文件中,你有这样的东西:
smtpd_sasl_path = private/auth
而在dovecot / conf.d / 10-master.conf中你有这样的东西:
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 } ...
在我的情况下,第一个文件中的“private / auth”与unix_listenerpath不匹配,只要我把这一个等同于第一个文件解决了问题。 我的猜测是smtpd_sasl_path必须与/ var / spool / postfix /相同,否则会失败。
希望这可以帮助,
不知何故,除了其他设置,我不得不添加以下行到我的main.cf:
ueue_directory = /var/spool/postfix
在对path进行任何重新调整之前,请检查dovecotconfiguration语法:
dovecot -n
该命令应该将dovecotconfiguration文件转储到屏幕上,如果没有,则会显示遇到的第一个错误。 编辑文件来修复错误,如果有的话,你应该很好去。 如果你在configuration文件/etc/dovecot/dovecot.conf第6行中遇到致命错误:期望'='或相似,那么简单地删除表示行上的等号之前和/或之后的空格应该修复它(I认为这是一个编码问题)。
另一个要检查的地方是提交configuration中的/etc/postfix/master.cf 。 确保那里的smtpd_sasl_pathvariables与dovecot的configuration文件中的匹配。