PHP 电子邮件生成在使用 POST 方法时不起作用



我做了一个页面,它将接收 3 个变量并根据发送到该页面的数据发送电子邮件。但是当我从表单发送数据时,当我使用 POST 时,我会收到 HTTP 错误 500。当使用 GET 方法以及在 url 中发送数据时,相同的代码正在工作。可能有什么错误?

<!doctype html>
<html>
<head>
<title>MAIL</title>
<meta charset="utf-8" />
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
</head>
<body>
<div>
<?php

 $emailTo=$_POST['to_address'];
 $subject=$_POST['subject'];
 $body="$_POST['body'];
 $headers="From: myemail@mysite.com";
 if (mail($emailTo, $subject, $body, $headers)) {
 echo "Mail sent successfully!";
 } else {
 echo "Mail not sent!";
 }

?>
</div>
</body>
</html>

你在这里有一个错别字 -> $body="$_POST['body'];/* 双引号未关闭 */另外:您应该真正检查POST数据并进行消毒,因为它根本不安全

> 500 表示内部服务器错误。大多数情况下,源代码中存在错误。

开关

$body="$_POST['body'];

$body=$_POST['body'];

你真的应该真正转义邮件函数的参数。看看这个答案:

转义邮件功能

最新更新