设置

设置

我最近开始在我的 Ubuntu 18.04. LTS 上部署带有 Postfix 和 Dovecot 的邮件服务器。不幸的是,无法接收邮件,我还不知道原因。

设置

多夫科特

在 Dovecot 中,我已在端口 993 上启用 IMAPS、在 127.0.0.1:24 上启用 LMTP 并通过 启用 SMTP 身份验证unix_listener。身份验证针对 LDAP 服务器,该服务器还应为我的邮件服务器提供所有用户。我的邮件服务器中的设置为
,因为具有此对象类的所有用户都应该能够发送/接收邮件。LDAP条目的 等于邮件地址的本地部分,因此我将其用于过滤器。user_filterdovecot-ldap.conf.ext(&(objectClass=rspfMember)(uid=%Ln))uid%Ln

后缀

我启用了以下限制:

smtpd_recipient_restrictions =
        reject_non_fqdn_sender,
        reject_non_fqdn_recipient,
        reject_unknown_sender_domain,
        reject_unknown_recipient_domain,
        permit_sasl_authenticated,
        permit_mynetworks,
        reject_unauth_destination,
        reject_rbl_client zen.spamhaus.org,
        reject_rbl_client ix.dnsbl.manitu.net,
        check_policy_service inet:127.0.0.1:10023,
        reject_unverified_recipient,
        permit

测试用例

首先,运行sudo doveadm user myusername会找到我要搜索的用户,并sudo doveadm auth test myusername mypassword返回auth succeeded,因此我假设我的 LDAP 设置是正确的。
也可以从帐户发送邮件,因此我可以使用任何邮件客户端通过 SMTP 登录该帐户,因此使用 IMAP 即可成功。

如果我向某个用户发送一封邮件,我可以在日志文件中看到 RBL 限制以及 postgrey 让邮件通过,但之后 Postfix 无法找到该用户(或者 dovecot 无法投递邮件,我真的说不准):

postfix/smtpd[22142]: maps_find: local_recipient_maps: myuser: not found
postfix/smtpd[22142]: dict_proxy_lookup: table=unix:passwd.byname flags=lock|utf8_request [email protected] -> status=1 result=
postfix/smtpd[22142]: maps_find: local_recipient_maps: @mydomain.com: not found
postfix/smtpd[22142]: mail_addr_find: [email protected] -> (not found)
postfix/smtpd[22142]: NOQUEUE: reject: RCPT from senderdomain.de[185.26.XX.XX]: 550 5.1.1 <[email protected]>: Recipient address rejected: User unknown in local recipient table; from=<[email protected]> to=<[email protected]> proto=ESMTP helo=<senderdomain.de>
postfix/smtpd[22142]: > senderdomain.de[185.26.XX.XX]: 550 5.1.1 <[email protected]>: Recipient address rejected: User unknown in local recipient table

但是,如果我运行postmap -s btree:/var/lib/postfix/verify_cache,我会得到结果

_LAST_CACHE_CLEANUP_COMPLETED_    1552662532
[email protected]    0:0:1552662532:250 2.1.5 OK

因此我认为收件人验证工作正常。此外,在中创建了正确的 maildir /srv/vmail/myuser

我可以在哪里找到有关邮件投递失败的更多信息?

提前非常感谢您。


更新

我更新了 LDAP 配置local_recipient_maps,搜索查询是存储用户邮件的query_filter = (rspfMail=%s)属性rspfMail。当我使用测试查询时,我得到:postmap -vq '[email protected]' ldap:/etc/postfix/local_recipient_maps.cf

postmap: dict_ldap_connect: Successful bind to server ldap://192.168.**.**:389 with dn cn=**,ou=**,dc=**
postmap: dict_ldap_connect: Cached connection handle for LDAP source /etc/postfix/local_recipient_maps.cf
postmap: dict_ldap_lookup: /etc/postfix/local_recipient_maps.cf: Searching with filter ([email protected])
postmap: dict_ldap_get_values[1]: Search found 1 match(es)
postmap: dict_ldap_get_values[1]: Leaving dict_ldap_get_values
postmap: dict_ldap_lookup: Search returned nothing

因此,搜索确实找到了一个结果,正如预期的那样,但却没有返回任何内容。我非常感谢任何帮助。

答案1

您应该设置result_attribute:

result_attribute = rspfMail   #default is maildrop
result_format = %s   # default

http://www.postfix.org/ldap_table.5.html

相关内容