我运行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
仍然没有错误报告…
请帮。
这是因为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");
?>
我用air.com
代替了apple.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