Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/270.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP电子邮件正在发送但未收到_Php_Email - Fatal编程技术网

PHP电子邮件正在发送但未收到

PHP电子邮件正在发送但未收到,php,email,Php,Email,我有一个不起作用的电子邮件表单。我甚至复制粘贴了确切的语法,并插入了我的电子邮件地址。我的错误处理说它工作,但我没有收到电子邮件。是的,我已经检查了我的垃圾邮件。这是我的代码: $to = 'krummens@krummens.com'; $subject = 'the subject'; $message = 'hello'; $headers = 'From: webmaster@example.com' . "\r\n" . 'Reply-To: krummens@yahoo.c

我有一个不起作用的电子邮件表单。我甚至复制粘贴了确切的语法,并插入了我的电子邮件地址。我的错误处理说它工作,但我没有收到电子邮件。是的,我已经检查了我的垃圾邮件。这是我的代码:

$to      = 'krummens@krummens.com';
$subject = 'the subject';
$message = 'hello';
$headers = 'From: webmaster@example.com' . "\r\n" .
'Reply-To: krummens@yahoo.com' . "\r\n" .
'X-Mailer: PHP/' . phpversion();

$mailResult = mail($to, $subject, $message, $headers);
if($mailResult) {
echo "Email sent to " . $to;
}
else {
echo "Error sending email";
}
页面上的结果是:

Email sent to krummens@yahoo.com

有什么帮助吗?

您需要在php.ini中打开邮件。函数返回true并不意味着邮件已实际发送

像这样:

在php.ini中:

[mail function]
; For Win32 only.
;SMTP = localhost
;smtp_port = 25

; For Win32 only.
;sendmail_from = me@example.com

; For Unix only.  You may supply arguments as well (default: "sendmail -t -i").
sendmail_path = /usr/sbin/sendmail -t -i -f  me@example.com
从:

重要的是要注意,仅仅因为邮件被接受 但这并不意味着邮件将实际到达预定的目的地 目的地


通过运行phpinfo()检查是否安装并打开了SMTP;仅仅因为
mail()
返回true,并不意味着邮件已实际发送。这只是意味着它被传递给了系统的邮件处理程序。“如果邮件被成功接受交付,则返回TRUE,否则返回FALSE。重要的是要注意,仅仅因为邮件被接受交付,并不意味着邮件将实际到达预期目的地。”还要检查邮件日志、apache日志和php日志(如果存在)的输出我建议您使用,因为邮件功能在许多情况下可能会有问题。谷歌搜索一下。@KoenHoeijmakers:my phpinfo()上写着“localhost”。这就是它应该是的吗?