如果我从邮件功能中删除$ header它的工作,它发送$ message包含在邮件中的所有html代码而不是显示表,但是当我在邮件功能中包含$ headers时,它不会发送邮件。它甚至不显示任何错误。我的code.im是关于在Web服务器上工作的。
<?php
//Deal with the email
if(isset($_POST['submit']))
{
$to = 'myemail@example.com';
$title = 'New Enquiry || example.com';
$subject = $_POST['subject'];
$message = $_POST['message'];
$name = $_POST['name'];
$email = $_POST['email'];
}
$headers .= "From: " . strip_tags($email) . "\r\n";
$headers .= 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$msg = '<html><head><body><b>'.$title.'</b>
<br>
<table bgcolor=#CCCCCC>
<tr>
<td> Subject : </td>
<td> '.$subject.'</td></tr>'
.'<tr> <td> Contact person: </td><td>'.$name.'</td></tr>'
.'<tr> <td> E-mail:</td><td> '.$email.'</td></tr>'
.'<tr><td> Message : </td><td>'.$message.' </td></tr></table></body></head></html>';
mail($to, $title, $subject, $msg, $headers);
header( "refresh:1;url=contact-us-ok.html" );
?>
答案 0 :(得分:1)
您对mail()
的参数顺序错误。它应该是:
mail($to, $subject, $msg, $headers);
“标题”没有争议。
来自Manual:
bool mail(string $ to,string $ subject,string $ message [,string $ additional_headers [,string $ additional_parameters]])
旁注:
strip_tags()
不足以阻止标头注入。我建议您使用您自己的From
地址的硬编码电子邮件,而不是用户输入,否则您可能会得到不一致的垃圾邮件过滤器结果,而您显然必须实施一些验证以防止注入漏洞。答案 1 :(得分:0)
邮件功能定义为:
bool mail ( string $to , string $subject , string $message [, string $additional_headers [, string $additional_parameters ]] )
来自:http://php.net/manual/en/function.mail.php
您正在发送:
mail($to, $title, $subject, $msg, $headers);
看起来你不应该发送$ title变量。