PHP 邮件功能不适用于 Google Workspace 电子邮件

PHP Mail function not working with Google Workspace Email

提问人:DTSolutions 提问时间:9/16/2023 最后编辑:DTSolutions 更新时间:9/17/2023 访问量:111

问:

我尝试了几种不同的方法,但 php mail() 和 PHPMailer 没有发送到我的 google workspace 电子邮件地址。不过,它们会发送到我的 yahoo 和 gmail 地址。

我的域名在 Google 域名中,网站在 GoDaddy 上。我还想指出,google workspace电子邮件与我使用联系表单的域不同。

到目前为止,我已经尝试将 GoDaddy 的 txt SPF 记录添加到我的域中。我被告知使用这两个。

主办方 |类型 |数据

@ | txt | "v=spf1 include:secureserver.net -all"
admin| txt | "v=spf1 include:secureserver.net -all"

这些 SPF 记录是提供给我的,供 GoDaddy 代表使用。

我测试了我在网上找到的不同 php 邮件函数,以确保它不是我的代码,以及 PHPMailer 的 5.2 和 6.6 版本。(我仍然有PHPMailer SMTP的问题,但我会在解决这个问题后解决这个问题。

我唯一能想到的另一件事就是在不同的服务器上尝试这个,但我没有可以测试的服务器。

有没有人遇到过这个问题?我不知所措。

示例代码:

ini_set('display_errors', 1);
error_reporting(E_ALL);

$from = 'Darth Vader <[email protected]>';
$to = 'Emperor <[email protected]>';
$subject = 'Force';
$message = 'There is a great disturbance in the Force.';
$headers = 'From: ' . $from;

if (!mail($to, $subject, $message, $headers))
{
    echo "Error.";
}
else
{
    echo "Message sent.";
}

显然是我自己的信条。

更新

昨晚我还把DMARC添加到了我的txt记录中。我在 16 小时后测试了它,没有运气。

我用“域”一词替换了我的实际域

"v=DMARC1; p=none; rua=mailto:no-reply@domain; ruf=mailto:no-reply@domain; fo=1;"

更新 2SPF记录现已发布

v=spf1 include:_spf.google.com include:secureserver.net -all

我一直等到它传播,仍然没有运气。

PHP 电子邮件 phpmailer google-workspace

评论

0赞 KIKO Software 9/16/2023
从您的问题中,我了解到可以从您的服务器发送电子邮件,但我看不到您是否有有效的 SPF 记录,这对我来说似乎很奇怪,而且也不清楚您是否使用在 FROM 地址中具有 SPF 记录的域发送电子邮件。你能在你的问题中更明确地说明这些事情吗?
0赞 DTSolutions 9/17/2023
@KIKOSoftware我确实在联系表格中使用了无reply@domain电子邮件地址。它确实发送到我提到的其他地址类型,所以我已经确认它确实发送电子邮件。(托管是GoDaddy)。至于 SPF 记录,我会尝试在上面修复它,以便您更清楚。
0赞 KIKO Software 9/17/2023
好的,谢谢你。SPF 现在看起来不错,而且您似乎使用了正确的域。我假设您所说的域是与您运行PHP脚本的Web服务器关联的域,而不是与您的Google Workspace电子邮件地址关联的域?你检查过垃圾邮件文件夹吗?对不起,我必须检查这些基本的东西。我看到了你的更新。DMARC相当复杂,我不确定单条DNS线路是否能做到。但是,您可以在此处测试您的邮件服务器,这非常有用。
0赞 DTSolutions 9/17/2023
@KIKOSoftware所以谷歌告诉我将我的 SPF 更改为此并重试。“v=spf1 include:_spf.google.com include:_secureserver.net ~all” 是的,带有网站联系表单的域是我对 SPF 进行更改的地方,google workspace 电子邮件是不同的域。我检查了垃圾邮件、日志并搜索了电子邮件。我会尽快在这里查看您的链接。
0赞 KIKO Software 9/17/2023
您更新的 SPF 记录意义不大。您包含的是您允许代表您的域发送电子邮件的其他域。因此,如果您的邮件服务器托管在GoDaddy上,那么在上述条件下,include:secureserver.net是有意义的,但是您永远不会通过Google发送,因此没有意义。为了让邮件正常工作,你必须了解事情是如何工作的。include:_spf.google.com

答: 暂无答案