这让我很困惑。我已经检查了我的dns,后缀配置etc...and,这一切似乎都很好。而且它起作用了。我可以寄给gmail等等..。我的spf,dkim和dmarc记录都通过了。
问题是:
smtpd_recipient_restrictions = permit_sasl_authenticated, permit_mynetworks, permit_auth_destination,
reject_unauth_destination, check_policy_service unix:private/policyd-spf效果很好。因为保险单-spf不检查我域名的任何电子邮件。但假设我希望它检查所有的电子邮件,所以我把它设置为:
smtpd_recipient_restrictions = reject_unauth_destination, check_policy_service unix:private/policyd-spf那是当我得到spf失败-没有授权的问题。But...if --我把它设置为:
smtpd_recipient_restrictions = reject_unauth_destination后缀没有问题,发送电子邮件从我的领域和发送到gmail etc...works,如预期。
我阅读了https://www.rfc-editor.org/rfc/rfc7208.html,试图找出它,并认为这可能是helo,因为当我使用outlook发送helo时,helo默认为我的帐户名。因此,在/etc/postfix-policyd-spf-python/policyd-spf.conf中,我按照https://manpages.debian.org/testing/postfix-policyd-spf-python/policyd-spf.conf.5.en.html添加了HELO_reject = No_Check,但这并没有解决这个问题。我的mx记录是:
@ IN MX 10 mail.example.com.我的spf记录是:
@ IN TXT ( "v=spf1 ip4:255.255.255.255 -all" )在后缀main.cf中,我有:
smtpd_banner = $mydomain ESMTP (Ubuntu)
mydomain = example.com
myhostname = mail.example.com
myorigin = $mydomain因为机器名只是个例子
也许我只是漏掉了显而易见的东西?
下面是日志上的内容:
policyd-spf[2599481]: Config: {'debugLevel': 5, 'HELO_reject': 'No_Check', 'Mail_From_reject': 'Fail', 'PermError_reject': 'False', 'TempError_Defer': 'False', 'skip_addresses': '127.0>
policyd-spf[2599481]: Cached data for this instance: []
policyd-spf[2599481]: skip_addresses enabled.
policyd-spf[2599481]: _get_resultcodes: scope: mfrom, Reject_Not_Pass_Domains: None, helo_policy: No_Check, mfrom_policy: Fail
policyd-spf[2599481]: Scope mfrom unused results: ['Pass', 'None', 'Neutral', 'Softfail', 'Temperror', 'Permerror']
policyd-spf[2599481]: mfrom policy true results: actions: {'defer': [], 'reject': ['Fail'], 'prepend': ['Pass', 'None', 'Neutral', 'Softfail', 'Temperror', 'Permerror']} local {'local_>
policyd-spf[2599481]: spfcheck: pyspf result: "['Fail', 'SPF fail - not authorized', 'mailfrom']"
policyd-spf[2599481]: Fail; identity=mailfrom; client-ip=10.0.0.1; helo=accountname; envelope-from=hostmaster@example.com; receiver=
policyd-spf[2599481]: Action: None: Text: None Reject action: 550 5.7.23它是否因为我的ip与服务器的ip不同而拒绝它?这在某种程度上是有意义的。但是如果是这样的话,那么当您的用户之一发送电子邮件时,是否可能从您的域检查spf记录的邮件?因为如果(我确信几乎每个人都这么做)从他们的本地ip连接到邮件服务器,这显然是不同的,那么邮件服务器就有了,spf检查查找域,获取授权服务器的ip,然后将它们与您的ip进行比较,结果失败了吗?我敢肯定是个奇怪的边缘案子。
发布于 2022-08-05 19:54:38
正如您从日志中看到的,您的邮件被policyd视为源自私有IP地址10.0.0.1。
显然,此地址无法通过SPF检查域example.com (或任何实际域)。
这是意料之中的。
防晒系数有什么意义?在您的服务器上,您使用它检查传入邮件的授权。必须授权客户端IP为信封发件人域发送邮件。
检查SPF发出的邮件是没有意义的。在您的服务器上提交的邮件通常来自本地或私有IP地址,该地址不会通过您的域的SPF检查。
https://serverfault.com/questions/1107497
复制相似问题