我目前正在尝试在 Debian 上设置邮件服务器。到目前为止,我已经安装了后缀和opendkim。我还配置了一个完整限定域名 (FQDN),域名解析,密钥管理信息系统,DMARC, 和防晒指数,但后者不知为何不起作用。
SPF 记录我的域名当我运行在线测试(例如 mxtoolbox.com、appmaildev.com)时,可以识别,但不能我的主机名.mydomain.net(邮件就是从这里发送的)。DKIM 和 DMARC 测试均正常。我的主机名.mydomain.net有 A/AAAA 记录,以及 MX 记录。通过该mail
命令发送邮件也非常顺畅。邮件到达后不会进入垃圾邮件文件夹。
FQDN 设置为127.0.1.1 myhostname.mydomain.net myhostname
“/etc/hosts”。
SPF TXT 记录如下所示: v=spf1 mx a:myhostname.mydomain.net -all
这是我的“/etc/postfix/main.cf”:
# See /usr/share/postfix/main.cf.dist for a commented, more complete version
# Debian specific: Specifying a file name will cause the first
# line of that file to be used as the name. The Debian default
# is /etc/mailname.
myhostname = myhostname.mydomain.net
smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)
biff = no
# appending .domain is the MUA's job.
append_dot_mydomain = no
# Uncomment the next line to generate "delayed mail" warnings
#delay_warning_time = 4h
readme_directory = no
# See http://www.postfix.org/COMPATIBILITY_README.html -- default to 2 on
# fresh installs.
compatibility_level = 2
# TLS parameters
smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
smtpd_use_tls=yes
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
# See /usr/share/doc/postfix/TLS_README.gz in the postfix-doc package for
# information on enabling SSL in the smtp client.
smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = /etc/mailname
mydestination = $myhostname
relayhost =
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
inet_protocols = all
# Milter configuration
milter_default_action = accept
milter_protocol = 6
smtpd_milters = local:opendkim/opendkim.sock
non_smtpd_milters = $smtpd_milters
opendkim 密钥生成于我的域名, 不是我的主机名.mydomain.net,但看上去一切正常。
我的 DMARC TXT 记录如下: v=DMARC1;p=拒绝;rua=mailto:[电子邮件保护];fo=1
我在这里忽略了什么?
答案1
一般来说,你应该设置 SPF 记录
- 对于您打算从中发送邮件的每个域(出现在 SMTP 命令中的域名);
MAIL FROM:<[email protected]>
RFC 7208, 2.4 - 可选地,对于您打算从中发送邮件的每个邮件主机(出现在 SMTP 命令中的域名
EHLO myhostname.mydomain.net
);RFC 7208, 2.3
v=spf1 mx a:myhostname.mydomain.net -all
您已在域 mydomain.net 上完成记录安装。一切顺利!
可选地(推荐),您也可以在域 myhostname.mydomain.net 安装记录v=spf1 a -all
,但这不是绝对必要的。
答案2
当我运行在线测试(例如 mxtoolbox.com、appmaildev.com)时,mydomain.net 的 SPF 记录可以被识别,但 myhostname.mydomain.net(邮件从其发送)的 SPF 记录却无法被识别。
这是预期结果。SPF 记录针对的是域名,而不是您的电子邮件主机。
您的 SPF 记录基本上表明“myhostname.mydomain.net 被授权为域 mydomain.net 发送电子邮件。
因此,您已验证了域的 SPF 记录。很好。您无需验证电子邮件主机名的 SPF 记录。