我使用这个指南设置我的邮件服务器,并且一切工作正常,除了似乎没有任何smtpauthentication。 不知道发生了什么事情,因为mail.log中没有任何东西可以指示任何东西。 希望在这里有人可以帮助我。
这是当我运行telnet命令(我换出了域和电子邮件地址)时发生的事情。
telnet pro.domain.org 25 Trying 50.576.3.15... Connected to mail.domain.org. Escape character is '^]'. 220 pro.domain.org ESMTP Postfix (Ubuntu) ehlo example.com 250-pro.domain.org 250-PIPELINING 250-SIZE 10240000 250-VRFY 250-ETRN 250-STARTTLS 250-ENHANCEDSTATUSCODES 250-8BITMIME 250 DSN mail from: <[email protected]> 250 2.1.0 Ok rcpt to: <[email protected]> 250 2.1.5 Ok data 354 End data with <CR><LF>.<CR><LF> asd . 250 2.0.0 Ok: queued as 7C0F8D620 quit 221 2.0.0 Bye Connection closed by foreign host.
这是postconf -n输出
alias_database = hash:/etc/aliases alias_maps = hash:/etc/aliases always_bcc = [email protected] append_dot_mydomain = no biff = no config_directory = /etc/postfix content_filter = smtp-amavis:[127.0.0.1]:10024 inet_interfaces = all mailbox_size_limit = 0 mydestination = localhost myhostname = pro.domain.org mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 myorigin = /etc/mailname readme_directory = no recipient_delimiter = + relayhost = smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu) smtpd_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination smtpd_sasl_auth_enable = yes smtpd_sasl_path = private/auth smtpd_sasl_type = dovecot smtpd_tls_auth_only = yes smtpd_tls_cert_file = /etc/ssl/certs/dovecot.pem smtpd_tls_key_file = /etc/ssl/private/dovecot.pem smtpd_use_tls = yes virtual_alias_maps = mysql:/etc/postfix/mysql-virtual-alias-maps.cf virtual_mailbox_domains = mysql:/etc/postfix/mysql-virtual-mailbox-domains.cf virtual_mailbox_maps = mysql:/etc/postfix/mysql-virtual-mailbox-maps.cf virtual_transport = lmtp:unix:private/dovecot-lmtp
这是postconf的一个输出
cyrus dovecot
这是鸽舍-n输出
# 2.0.19: /etc/dovecot/dovecot.conf # OS: Linux 3.9.2-x86_64-linode32 x86_64 Ubuntu 12.04.2 LTS ext3 auth_mechanisms = plain login mail_location = maildir:/var/mail/vhosts/%d/%n mail_privileged_group = mail passdb { args = /etc/dovecot/dovecot-sql.conf.ext driver = sql } protocols = imap pop3 lmtp service auth-worker { user = vmail } service auth { unix_listener /var/spool/postfix/private/auth { group = postfix mode = 0666 user = postfix } unix_listener auth-userdb { mode = 0600 user = vmail } user = dovecot } service imap-login { inet_listener imap { port = 0 } } service lmtp { unix_listener /var/spool/postfix/private/dovecot-lmtp { group = postfix mode = 0600 user = postfix } } service pop3-login { inet_listener pop3 { port = 0 } } ssl = required ssl_cert = </etc/ssl/certs/dovecot.pem ssl_key = </etc/ssl/private/dovecot.pem userdb { args = uid=vmail gid=vmail home=/var/mail/vhosts/%d/%n driver = static }
看来dovecot确实在创造socket
ls -la /var/spool/postfix/private/auth srw-rw-rw- 1 postfix postfix 0 May 22 23:10 /var/spool/postfix/private/auth
任何想法现在做什么?
你configuration使用smtpd_tls_auth_only = yes ,它应该这样做,因为这不允许明文发送密码。 但是,这意味着AUTH只能在encryption的频道上使用。 你应该testing
openssl s_client -connect smtp.example.com:25 -starttls smtp -CApath /etc/ssl/certs/
看着你的鸽舍configuration,你有:
unix_listener /var/spool/postfix/private/auth { group = postfix mode = 0666 user = postfix
根据在postfix的文档,你应该有一个套接字监听,而不是一个unix_listener – 如果你在做unix_listener你应该也有一个TCP套接字。 所以你的dovecot.conf应该包含这个:
socket listen { client { path = /var/spool/postfix/private/auth mode = 0660 user = postfix group = postfix } }
完成后,重新启动dovecot和postfix。 如果仍然不起作用,请检查您的postfix日志(通常是/var/log/mail.log),并将原始问题中的任何信息作为编辑发布。
您正在将电子邮件发送到$ mydomain中列出的收件人地址,并且您已将邮件服务器configuration为始终接受这些邮件。
要testing身份validation,您需要从未在$ mynetwork中列出的networking进行连接,并将邮件发送给未列为允许的配方域的收件人。
(事实上,如果你真的以正确的方式进行testing,如果你没有把你所做的一半信息弄清楚,那将是一件容易的事情。)