我正在运行CentOS 64位,安装php 5.3.3,我有像这样的PHP代码
<?php
session_start();
set_time_limit(0);
ini_set("max_execution_time", 1800);
ini_set("display_errors", 1);
error_reporting(E_ALL & ~E_NOTICE & ~E_WARNING);
date_default_timezone_set('Asia/Saigon');
mail("myemail@gmail.com","x","y","From: steve@a.com\n");
?>
电子邮件未发送但也未报告任何错误,我将在php.ini中编辑
error_reporting = E_ALL & ~E_NOTICE & ~E_WARNING
display_errors = On
仍然没有错误报告......
请帮忙。
答案 0 :(得分:2)
这是因为Spf
保护。尝试下面的代码,它将工作
<?php
session_start();
set_time_limit(0);
ini_set("max_execution_time", 1800);
ini_set("display_errors", 1);
error_reporting(E_ALL & ~E_NOTICE & ~E_WARNING);
date_default_timezone_set('Asia/Saigon');
mail("myemail@gmail.com","x","y","From: steve@air.com\n");
?>
我将apple.com
替换为air.com
您无法使用某些域名,例如
support@facebook.com
support@google.com
等。在php mail()
中,因为它们受Sender Policy Framework (SPF)
保护,但如果你想要,你可以使用它,它可以适用于任何域:
<?php
session_start();
set_time_limit(0);
ini_set("max_execution_time", 1800);
ini_set("display_errors", 1);
error_reporting(E_ALL & ~E_NOTICE & ~E_WARNING);
date_default_timezone_set('Asia/Saigon');
mail("myemail@gmail.com","x","y","From: steve@ apple.com\n");
?>
@
请注意@
和apple.com
之间的空格,但使用此方法无法向Yahoo
个用户发送邮件。最好的选择是买一台SMTP服务器来安静地发送邮件!
在此处阅读更多内容:https://workaround.org/ispmail/lenny/spf