试图得到这封邮件已经吃了大量的2天,我已经取得了一些进展,但这个具体的错误始终贯穿始终。 我使用的是Postfix + Dovecot + Postgres的Debian服务器。 如果我尝试从我的Gmail帐户发送电子邮件到服务器上的电子邮件帐户,以下错误将logging在/var/log/mail.log
Jun 5 10:57:32 6r6n-6vh7 postfix/smtpd[748]: connect from mail-oi0-f45.google.com[209.85.218.45] Jun 5 10:57:32 6r6n-6vh7 postfix/smtpd[748]: warning: SASL: Connect to private/auth failed: Connection refused Jun 5 10:57:32 6r6n-6vh7 postfix/smtpd[748]: fatal: no SASL authentication mechanisms Jun 5 10:57:33 6r6n-6vh7 postfix/master[32593]: warning: process /usr/lib/postfix/smtpd pid 748 exit status 1 Jun 5 10:57:33 6r6n-6vh7 postfix/master[32593]: warning: /usr/lib/postfix/smtpd: bad command startup -- throttling
所以罪魁祸首似乎是postfix / smtpd [748]:警告:SASL:连接到私人/身份validation失败:连接被拒绝
任何想法可能会导致它? 我已经生成.pem文件,并将它们放在适当的文件夹,但它似乎像authentication仍然失败。 下面包括一些configuration文件,我已经修改了这个设置过程。 为了节省你们从雪崩的文本,我张贴主要是部分configuration文件,不包括任何默认我没有改变。
myhostname = mail.myserver.net myorigin = </var/mail/vhosts alias_maps = hash:/etc/aliases alias_database = hash:/etc/aliases mydestination = mail.myserver.net, myserver.net,localhost,localhost.localdomain relayhost = mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 mailbox_size_limit = 0 recepient_delimiter = + inet_interfaces = all smtpd_tls_cert_file = /etc/ssl/certs/mailcert.pem smtpd_tls_key_file = /etc/ssl/private/mail.key smtpd_use_tls = yes smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache smtpd_tls_security_level=may smtpd_tls_protocols = !SSLv2, !SSLv3 smtpd_tls_auth_only = yes local_recipient_maps = proxy:unix:passwd.byname $alias_maps biff = no append_dot_mydomain = no readme_directory = no smtpd_sasl_type = dovecot smtpd_sasl_path = private/auth smtpd_sasl_auth_enable = yes smtpd_recipient_restrictions = permit_sasl_authenticated, permit_mynetworks, reject_unauth_destination #Handing off local delivery to Dovecot's LMTP, and telling it where to store mail virtual_transport = lmtp:unix:private/dovecot-lmtp #Virtual domains, users, and aliases virtual_mailbox_domains = pgsql:/etc/postfix/pgsql-virtual-mailbox-domains.cf virtual_mailbox_maps = pgsql:/etc/postfix/pgsql-virtual-mailbox-maps.cf virtual_alias_maps = pgsql:/etc/postfix/pgsql-virtual-alias-maps.cf
submission inet n - - - - smtpd -o syslog_name=postfix/submission -o smtpd_tls_security_level=encrypt -o smtpd_sasl_auth_enable=yes -o smtpd_client_restrictions=permit_sasl_authenticated,reject -o milter_macro_daemon_name=ORIGINATING smtps inet n - - - - smtpd -o syslog_name=postfix/smtps -o smtpd_tls_wrappermode=yes -o smtpd_sasl_auth_enable=yes -o smtpd_client_restrictions=permit_sasl_authenticated,reject -o milter_macro_daemon_name=ORIGINATING
mail_location = maildir:/var/mail/vhosts/%d/%n mail_privileged_group = mail
disable_plaintext_auth = yes auth_mechanisms = plain login !include auth-sql.conf.ext
userdb { driver = static args = uid=vmail gid=vmail home=/var/mail/vhosts/%d/%n } passdb { driver = sql # Path for SQL configuration file, see example-config/dovecot-sql.conf.ext args = /etc/dovecot/dovecot-sql.conf.ext }
driver = pgsql connect = host=localhost dbname=XXX user=YYY password=ZZZ default_pass_scheme = SHA512 password_query = SELECT \ CONCAT(username,'@',domain) as user, \ password, \ 'vmail' AS userdb_uid, \ 'vmail' AS userdb_gid, \ '/var/mail/vhosts/%d/%u' as userdb_home \ FROM virtual_users \ WHERE concat(username,'@',domain) = '%u'; user_query = SELECT username, \ CONCAT('maildir:/var/mail/vhosts/%d/',username,'@',domain) as mail, \ '/var/mail/vhosts/%d/%u' as home, \ 'vmail' as uid, \ 'vmail' as gid \ FROM virtual_users \ WHERE concat(username,'@',domain) = '%u';
service imap-login { inet_listener imap { #port = 143 } inet_listener imaps { port = 993 ssl = yes } } service pop3-login { inet_listener pop3 { #port = 110 } inet_listener pop3s { port = 995 ssl = yes } } service lmtp { unix_listener /var/spool/postfix/private/dovecot-lmtp { mode = 0600 user = postfix group = postfix } } service auth { unix_listener auth-userdb { mode = 0600 user = vmail #group = } unix_listener auth-master { mode = 0660 user = vmail group = vmail } # Postfix smtp-auth unix_listener /var/spool/postfix/private/auth { mode = 0666 user=postfix group=postfix } # Auth process is run as this user. user = dovecot } service auth-worker { user = vmail }
ssl = required ssl_cert = </etc/dovecot/dovecot.pem ssl_key = </etc/dovecot/private/dovecot.pem log_path = /var/log/dovecot.log verbose_ssl = yes