我最近转移了服务器,发现默认的PHP邮件功能不起作用,而该功能在先前的服务器中起作用。我通过编写简单的邮件功能进行了测试
$mailto="me@domain.com"; //Enter recipient email address here
$subject = "Test Email";
$from="you@domain.com"; //Your valid email address here
$message_body = "This is a test email from Webmaster.";
$mail = mail($mailto,$subject,$message_body,"From:".$from);
var_dump($mail);
if($mail) {
echo "Your email has been sent successfully";
} else {
echo "not sent";
}
以上代码返回了我 false 的值。我用谷歌搜索。检查了我的PHP.ini。它还设置为google链接中提到的解决方案。
; For Win32 only.
; http://php.net/sendmail-from
;sendmail_from =me@example.com
; For Unix only. You may supply arguments as well
(default: "sendmail -t -i").
; http://php.net/sendmail-path
sendmail_path = "/usr/sbin/sendmail -t -i"
我不是我所想念的。
答案 0 :(得分:1)
它返回FALSE
,这意味着您的邮件配置有问题。您将需要检查邮件日志,以查看是否遇到任何错误。更重要的是,php可能正在传递邮件,您的服务器可能正在发送邮件,并且在此过程中可能会过滤掉垃圾邮件。
<?php
mail('nobody@example.com', 'the subject', 'the message', null, '-fwebmaster@example.com');
?>
答案 1 :(得分:-1)
语法
bool mail ( string $to , string $subject , string $message [, mixed $additional_headers [, string $additional_parameters ]] )
尝试这样
$mail = mail($mailto,$subject,$message_body,null,"From:".$from);
引用 this