主题: BCC 設定 outgoing 無動作 , incoming 正常

==== 必填信息。没有填写将不予回复 ====
- iRedMail 版本号:0.6.0
- 使用哪个数据库存储用户帐号(OpenLDAP,MySQL,PostgreSQL):Pro-LDAP(2.7.0)
- 使用的 Linux/BSD 发行版名称及版本号:CentOS7.3
- 与您的问题相关的日志信息:
====
per-user 啟用 incoming 及outgoing 的BCC功能
在 admin@ 收不到 user 外寄的信件 ;
也就是說 outgoing 無動作 , incoming 正常,可收到monitor 信件. 

Thanks.

回复: BCC 設定 outgoing 無動作 , incoming 正常

rain6966 写道:

也就是說 outgoing 無動作 , incoming 正常,可收到monitor 信件. 

听着像是 iRedMail 或 iRedAdmin-Pro 的 bug。
可否将以下两个文件里的 LDAP query 语句贴一下,确认无误之后我可以去检查是否 iRedAdmin-Pro 的 bug:

/etc/postfix/ldap/sender_bcc_maps_domain.cf
/etc/postfix/ldap/sender_bcc_maps_user.cf

如果你是很旧的 iRedMail 版本,文件名可能是 /etc/postfix/ldap_*.cf 这样的,而不是在单独的 /etc/postfix/ldap/ 目录底下。

3 最后由 rain6966 (2017-02-15 09:37:20) 编辑

回复: BCC 設定 outgoing 無動作 , incoming 正常

ZhangHuangbin 写道:

可否将以下两个文件里的 LDAP query 语句贴一下,
. . . .
/etc/postfix/ldap/sender_bcc_maps_domain.cf
/etc/postfix/ldap/sender_bcc_maps_user.cf

除CentOS7.3的  bind_dn及search_base 多出 dc=sub ,其他
在CentOS6.8 及 CentOS7.3 兩台內容格式皆一樣,

# cat /etc/postfix/ldap/sender_bcc_maps_domain.cf
server_host     = 127.0.0.1
server_port     = 389
version         = 3
bind            = yes
start_tls       = no
bind_dn         = cn=vmail,dc=mydomain,dc=com
bind_pw         = VXXXXXXXXXXXXXXXXXXXXXXXX
search_base     = o=domains,dc=mydomain,dc=com
scope           = one
query_filter    = (&(objectClass=mailDomain)(|(domainName=%d)(domainAliasName=%d))(accountStatus=active)(enabledService=mail)(enabledService=senderbcc))
result_attribute= domainSenderBccAddress
debuglevel      = 0

# cat /etc/postfix/ldap/sender_bcc_maps_user.cf
server_host     = 127.0.0.1
server_port     = 389
version         = 3
bind            = yes
start_tls       = no
bind_dn         = cn=vmail,dc=mydomain,dc=com
bind_pw         = VXXXXXXXXXXXXXXXXXXXXXXXX
search_base     = ou=Users,domainName=%d,o=domains,dc=mydomain,dc=com
scope           = one
query_filter    = (&(|(mail=%s)(&(enabledService=shadowaddress)(shadowAddress=%s)))(objectClass=mailUser)(accountStatus=active)(!(domainStatus=disabled))(enabledService=mail)(enabledService=senderbcc))
result_attribute= userSenderBccAddress
debuglevel      = 0


ps: 我的iRedMail 版本号:為0.9.6 , 我寫錯了(0.6.0)

回复: BCC 設定 outgoing 無動作 , incoming 正常

query_filter 看上去没问题。继续贴一下信息:

- 命令:postconf sender_bcc_maps
- 可否将通过 iRedAdmin-Pro 设置了 sender bcc 的用户的 LDIF 贴一下?需要检查一下 iRedAdmin-Pro 更新后的 ldif 是否都正确。

回复: BCC 設定 outgoing 無動作 , incoming 正常

1).
# postconf sender_bcc_maps
sender_bcc_maps = proxy:ldap:/etc/postfix/ldap/sender_bcc_maps_user.cf proxy:ldap:/etc/postfix/ldap/sender_bcc_maps_domain.cf

2). 1@mydomain.com 的 ldif
dn: mail=1@mydomain.com,ou=Users,domainName=mydomain.com,o=domains,dc=mydomain,dc=com
accountStatus: active
amavisLocal: TRUE
cn: 1
enabledService: internal
enabledService: doveadm
enabledService: lib-storage
enabledService: indexer-worker
enabledService: mail
enabledService: dsync
enabledService: smtp
enabledService: smtpsecured
enabledService: pop3
enabledService: pop3secured
enabledService: imap
enabledService: imapsecured
enabledService: deliver
enabledService: lda
enabledService: lmtp
enabledService: recipientbcc
enabledService: senderbcc
enabledService: managesieve
enabledService: managesievesecured
enabledService: sieve
enabledService: sievesecured
enabledService: forward
enabledService: shadowaddress
enabledService: displayedInGlobalAddressBook
enabledService: sogo
homeDirectory: /var/vmail/vmail1/mydomain.com/1/1/1/1-2017.02.14.10.44.59/
mail: 1@mydomain.com
mailMessageStore: vmail1/mydomain.com/1/1/1/1-2017.02.14.10.44.59/
mailQuota: 5242880000
objectClass: inetOrgPerson
objectClass: mailUser
objectClass: shadowAccount
objectClass: amavisAccount
preferredLanguage: en_US
shadowLastChange: 0
sn: 1
storageBaseDirectory: /var/vmail
uid: 1
userPassword: {SSHA}wNa/70FM6vgd4LOvw7TLCIcHoU0VQNmNrIayjQ==
userRecipientBccAddress: admin@mydomain.com
userSenderBccAddress: admin@mydomain.com

回复: BCC 設定 outgoing 無動作 , incoming 正常

rain6966 写道:

accountStatus: active
enabledService: senderbcc
userSenderBccAddress: admin@mydomain.com

这三个是必要的 ldap attributes,你都有。LDAP 数据应该是没问题的。

请再贴一下以下命令的输出:

postmap -v -q '1@mydomain.com' ldap:/etc/postfix/ldap/sender_bcc_maps_user.cf

'-v' 参数会以 debug 级别输出相关信息,请在复制到论坛之前隐去隐私信息。

回复: BCC 設定 outgoing 無動作 , incoming 正常

# postmap -v -q '1@mydomain.com' ldap:/etc/postfix/ldap/sender_bcc_maps_user.cf
postmap: name_mask: all
postmap: inet_addr_local: configured 2 IPv4 addresses
postmap: inet_addr_local: configured 2 IPv6 addresses
postmap: dict_ldap_open: Using LDAP source /etc/postfix/ldap/sender_bcc_maps_user.cf
postmap: cfg_get_str: /etc/postfix/ldap/sender_bcc_maps_user.cf: server_host = 127.0.0.1
postmap: cfg_get_int: /etc/postfix/ldap/sender_bcc_maps_user.cf: server_port = 389
postmap: cfg_get_int: /etc/postfix/ldap/sender_bcc_maps_user.cf: version = 3
postmap: dict_ldap_open: /etc/postfix/ldap/sender_bcc_maps_user.cf server_host URL is ldap://127.0.0.1:389
postmap: cfg_get_str: /etc/postfix/ldap/sender_bcc_maps_user.cf: scope = one
postmap: cfg_get_str: /etc/postfix/ldap/sender_bcc_maps_user.cf: search_base = ou=Users,domainName=%d,o=domains,dc=mydomain,dc=com
postmap: cfg_get_int: /etc/postfix/ldap/sender_bcc_maps_user.cf: timeout = 10
postmap: cfg_get_str: /etc/postfix/ldap/sender_bcc_maps_user.cf: query_filter = (&(|(mail=%s)(&(enabledService=shadowaddress)(shadowAddress=%s)))(objectClass=mailUser)(accountStatus=active)(!(domainStatus=disabled))(enabledService=mail)(enabledService=senderbcc))
postmap: cfg_get_str: /etc/postfix/ldap/sender_bcc_maps_user.cf: result_format = <NULL>
postmap: cfg_get_str: /etc/postfix/ldap/sender_bcc_maps_user.cf: result_filter = %s
postmap: cfg_get_str: /etc/postfix/ldap/sender_bcc_maps_user.cf: domain =
postmap: cfg_get_str: /etc/postfix/ldap/sender_bcc_maps_user.cf: terminal_result_attribute =
postmap: cfg_get_str: /etc/postfix/ldap/sender_bcc_maps_user.cf: leaf_result_attribute =
postmap: cfg_get_str: /etc/postfix/ldap/sender_bcc_maps_user.cf: result_attribute = userSenderBccAddress
postmap: cfg_get_str: /etc/postfix/ldap/sender_bcc_maps_user.cf: special_result_attribute =
postmap: cfg_get_str: /etc/postfix/ldap/sender_bcc_maps_user.cf: bind = yes
postmap: cfg_get_str: /etc/postfix/ldap/sender_bcc_maps_user.cf: bind_dn = cn=vmail,dc=mydomain,dc=com
postmap: cfg_get_str: /etc/postfix/ldap/sender_bcc_maps_user.cf: bind_pw = bXXXXXXXXXXXXXXXXXXXXXXXXXXXX
postmap: cfg_get_bool: /etc/postfix/ldap/sender_bcc_maps_user.cf: cache = off
postmap: cfg_get_int: /etc/postfix/ldap/sender_bcc_maps_user.cf: cache_expiry = -1
postmap: cfg_get_int: /etc/postfix/ldap/sender_bcc_maps_user.cf: cache_size = -1
postmap: cfg_get_int: /etc/postfix/ldap/sender_bcc_maps_user.cf: recursion_limit = 1000
postmap: cfg_get_int: /etc/postfix/ldap/sender_bcc_maps_user.cf: expansion_limit = 0
postmap: cfg_get_int: /etc/postfix/ldap/sender_bcc_maps_user.cf: size_limit = 0
postmap: cfg_get_int: /etc/postfix/ldap/sender_bcc_maps_user.cf: dereference = 0
postmap: cfg_get_bool: /etc/postfix/ldap/sender_bcc_maps_user.cf: chase_referrals = off
postmap: cfg_get_bool: /etc/postfix/ldap/sender_bcc_maps_user.cf: start_tls = off
postmap: cfg_get_bool: /etc/postfix/ldap/sender_bcc_maps_user.cf: tls_require_cert = off
postmap: cfg_get_str: /etc/postfix/ldap/sender_bcc_maps_user.cf: tls_ca_cert_file =
postmap: cfg_get_str: /etc/postfix/ldap/sender_bcc_maps_user.cf: tls_ca_cert_dir =
postmap: cfg_get_str: /etc/postfix/ldap/sender_bcc_maps_user.cf: tls_cert =
postmap: cfg_get_str: /etc/postfix/ldap/sender_bcc_maps_user.cf: tls_key =
postmap: cfg_get_str: /etc/postfix/ldap/sender_bcc_maps_user.cf: tls_random_file =
postmap: cfg_get_str: /etc/postfix/ldap/sender_bcc_maps_user.cf: tls_cipher_suite =
postmap: cfg_get_int: /etc/postfix/ldap/sender_bcc_maps_user.cf: debuglevel = 0
postmap: dict_open: ldap:/etc/postfix/ldap/sender_bcc_maps_user.cf
postmap: dict_ldap_lookup: In dict_ldap_lookup
postmap: dict_ldap_lookup: No existing connection for LDAP source /etc/postfix/ldap/sender_bcc_maps_user.cf, reopening
postmap: dict_ldap_connect: Connecting to server ldap://127.0.0.1:389
postmap: dict_ldap_connect: Actual Protocol version used is 3.
postmap: dict_ldap_connect: Binding to server ldap://127.0.0.1:389 with dn cn=vmail,dc=mydomain,dc=com
postmap: dict_ldap_connect: Successful bind to server ldap://127.0.0.1:389 with dn cn=vmail,dc=mydomain,dc=com
postmap: dict_ldap_connect: Cached connection handle for LDAP source /etc/postfix/ldap/sender_bcc_maps_user.cf
postmap: dict_ldap_lookup: /etc/postfix/ldap/sender_bcc_maps_user.cf: Searching with filter (&(|(mail=1@mydomain.com)(&(enabledService=shadowaddress)(shadowAddress=1@mydomain.com)))(objectClass=mailUser)(accountStatus=active)(!(domainStatus=disabled))(enabledService=mail)(enabledService=senderbcc))
postmap: dict_ldap_get_values[1]: Search found 1 match(es)
postmap: dict_ldap_get_values[1]: search returned 1 value(s) for requested result attribute userSenderBccAddress
postmap: dict_ldap_get_values[1]: Leaving dict_ldap_get_values
postmap: dict_ldap_lookup: Search returned admin@mydomain.com
admin@mydomain.com
postmap: dict_ldap_close: Closed connection handle for LDAP source /etc/postfix/ldap/sender_bcc_maps_user.cf

回复: BCC 設定 outgoing 無動作 , incoming 正常

rain6966 写道:

postmap: dict_ldap_lookup: Search returned admin@mydomain.com
admin@mydomain.com

这里也有正确返回 bcc address,所以 Postfix, LDAP data 都是正确的。

现在需要检查的是:用户发出一封邮件后,postfix log 里是否记录了 postfix 实际发邮件给 bcc address。
按照目前的分析,postfix 应该是实际 bcc 了邮件给  admin@mydomain.com,但是因为某种原因,邮件未能正确投递。(而不是 postfix 没有实际发送,导致 outgoing bcc 不工作。)