【问题标题】:Parallels Plesk 12.0.18 - can not send mails using php while spf turned onParallels Plesk 12.0.18 - 打开 spf 时无法使用 php 发送邮件
【发布时间】:2014-10-01 19:06:35
【问题描述】:

我最近将我的 Parallels Plesk Panel 从版本 11 升级到了在 CentOS 上运行的 12.0.18。而且我注意到在启用 SPF-Spamprotection 时,我无法再使用 php 函数“mail”发送邮件。我使用 postfix 作为邮件服务器,邮件总是因为错误的 helo (localhost) 而被拒绝。

日志是这样写的:

spf filter[2532]: Starting spf filter...  
spf filter[2532]: Wrong HELO hostname: localhost  
/usr/lib64/plesk-9.0/psa-pc-remote[2465]: handlers_stderr: REJECT  
/usr/lib64/plesk-9.0/psa-pc-remote[2465]: REJECT during call 'spf' handler  
postfix/cleanup[2515]: 4E4D620AE2: milter-reject: END-OF-MESSAGE from    localhost[127.0.0.1]: 5.7.1 Command rejected; from=<> to=<xxx@xx.xx>  
postfix/cleanup[2515]: 4E4D620AE2: to=<xxx@xx.xx>, relay=none, delay=0.08, delays=0.08/0/0/0, dsn=5.7.1, status=bounced (Command rejected)

关闭 SPF 保护工作并发送邮件,但这不是我想要的。在以前版本的 Plesk 上一切正常。 我已经搜索过解决方案,但没有发现任何有用的信息。

现在我的问题是:我怎样才能让它再次工作?

【问题讨论】:

  • 我已经看过那个页面,但这不起作用,也不是我的问题的解决方案。我的服务器向其他人发送了正确的 helo,但拒绝发送使用邮件功能在本地生成的消息。写“正常”的邮件是没有问题的,而且他们已经送达了。只是php邮件不起作用。

标签: php email plesk spf spam-prevention


【解决方案1】:

在您从 i.ex 发送的域的 DNS 设置中检查您的 SPF 记录: xxx.xx TXT v=spf1 +a +mx -all +a:your_host_name

这意味着:

  • 允许a-record的所有ip在此下发送邮件 域名
  • mx-records的所有ip都可以在该域名下发送邮件
  • 允许通过主机名发送的域在该域名下发送邮件

至少如果我没记错的话,你可以在 php.ini 中更改 php 邮件功能的 HELO 域

来自 php 文档 (http://php.net/manual/en/ref.mail.php):

; sendmail will use your hostname and your default_domain in the ehlo/helo
; smtp greeting.  you can manually set the ehlo/helo name if required

hostname=

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-12-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-29
    相关资源
    最近更新 更多