当我的外发电子邮件从别名域发送时,DKIM 签名会遇到问题。也就是说,当我以 身份[email protected]
发送时[email protected]
,[email protected]
我的邮件已正确签名,但如果我以[email protected]
身份发送,则签名为不是添加到邮件头中。我使用的是 postfix 和 rspamd,以下是相关文件:
后缀
主配置文件
(initial boilerplate omitted for brevity)
virtual_mailbox_domains = pgsql:/etc/postfix/pgsql-virtual-mailbox-domains.cf
virtual_mailbox_maps = pgsql:/etc/postfix/pgsql-virtual-mailbox-users.cf
virtual_alias_maps = pgsql:/etc/postfix/pgsql-virtual-alias-maps.cf
virtual_transport = lmtp:unix:private/dovecot-lmtp
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_sasl_auth_enable = yes
smtpd_tls_security_level = may
smtpd_tls_auth_only = yes
smtp_tls_security_level = may
smtpd_sender_login_maps = pgsql:/etc/postfix/pgsql-virtual-alias-maps.cf
smtpd_milters = inet:127.0.0.1:11332
non_smtpd_milters = inet:127.0.0.1:11332
milter_protocol = 6
milter_mail_macros = i {mail_addr} {client_addr} {client_name} {auth_authen}
主配置文件
(default configs omitted for brevity)
submission inet n - - - - smtpd
-o syslog_name=postfix/submission
-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_sender_login_maps=pgsql:/etc/postfix/pgsql-email2email.cf
-o smtpd_sender_restrictions=reject_unauthenticated_sender_login_mismatch
-o smtpd_sasl_local_domain=$myhostname
-o smtpd_client_restrictions=permit_sasl_authenticated,reject
-o smtpd_recipient_restrictions=reject_non_fqdn_recipient,reject_unknown_recipient_domain,permit_sasl_authenticated,reject
垃圾邮件
本地.d/dkim_signing.conf
path = "/var/lib/rspamd/dkim/$domain.$selector.key";
selector_map = "/etc/rspamd/dkim_selectors.map";
dkim 选择器路径的权限适用r-x------
于文件和r-xr-x---
文件夹。
答案1
来自 DKIM 签名模块操作原理:
DKIM 签名模块根据预定义的策略选择签名域和选择器,该策略可以通过各种设置进行修改。此默认策略的描述如下:- -
- 如果存在经过身份验证的用户,则应以 @domain 作为后缀,其中域是所见的信封/标头发件人地址
辅助域与经过身份验证的用户的域不匹配。要更改此默认行为,您的dkim_signing.conf
应该有:
allow_username_mismatch = true;
。