我已经按照这指导。
当我 telnet mydomain.com 25 并使用 AUTH 命令时,它返回:
Error: authentication not enabled
尝试通过 Outlook 登录时返回未知错误,并且当我向某个地址发送电子邮件时收到中继访问被拒绝错误。
但是,mxtoolbox
告诉我一切设置正常。
答案1
您可能已添加smtpd_tls_auth_only=yes
到您的 main.cf 中?
此选项使得仅在设置 tls 后才发生身份验证。
因此,如果您通过 telnet 连接到您的 smtp 端口,然后发出 auth 命令,您将会得到该信息,因为此时not enabled error
仍未建立连接。tls
答案2
由于您在 postfix 日志中看不到任何内容,因此至少 postfix 配置不正确。
首先,确认 Dovecot 已配置(在dovecot.conf
),如下所示:
auth default {
mechanisms = plain login
passdb pam {
}
userdb passwd {
}
user = root
socket listen {
client {
path = /var/spool/postfix/private/auth
mode = 0660
user = postfix
group = postfix
}
}
}
在您的 postfix 中确认以下内容main.cf
:
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_sasl_auth_enable = yes
smtpd_relay_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination
smtpd_sender_restrictions = permit_sasl_authenticated`
在 中master.cf
,确保您的提交端口提供 SASL 服务。您可以将其放入smtp
服务中,以便在端口 25 上进行身份验证,但这种情况并不常见。您还应该将其放入 smtps 服务中,以便进行加密访问:
submission inet n - - - - smtpd
-o smtpd_tls_security_level=encrypt
-o smtpd_sasl_auth_enable=yes
-o smtpd_sasl_type=dovecot
-o smtpd_sasl_path=private/auth
-o smtpd_sasl_security_options=noanonymous
-o smtpd_sasl_local_domain=$myhostname
-o smtpd_client_restrictions=permit_sasl_authenticated,reject
-o smtpd_sender_restrictions=reject_sender_login_mismatch
-o smtpd_recipient_restrictions=reject_non_fqdn_recipient,reject_unknown_recipient_domain,permit_sasl_authenticated,reject
答案3
这是两件不同的事情。
1:SSL/TLS 支持
2:身份验证
它们是独立的,也就是说,可以只使用其中一个,而不需要另一个。当然,如果身份验证只在已加密的通道上进行,那就更好了。
可能你的 postfix 没有第二个(auth),只有TLS
。
Postfix 上的身份验证通过sasl
身份验证守护进程进行,该守护进程也需要进行配置。
mxtoolbox 说一切正常,因为它不检查身份验证,只检查加密。
答案4
您使用了错误的端口。
经过验证的外发电子邮件在端口 587 上,而不是端口 25 上。