我目前正在为我的一个网页设计课程开发一个网站组合网站,它有望在完成后成为我的实际投资组合。部分作业需要"联系我"该网站的部分,其中包括验证输入数据并在适当的提交时重定向用户的表单。我已经完成了这个,但我希望它能在我提交表单时给我发电子邮件。这是我的代码:
$admin_mail = example@mail.com
-code to validate form-
$headers = array("First Name: " => $_POST['first_name'],
"Last Name: " => $_POST['last_name'],
"Email: " => $_POST['email'],
"Company: " => $_POST['company']);
$message = wordwrap($_POST['message'],70);
mail($admin_mail,"Portfolio Message",$message,$headers);
header("location: success.html");
我使用$headers
函数检查了$message
和print_r
变量,并且它们正常工作。正在添加所有输入的数据并且页面重定向正确,但电子邮件似乎根本无法发送。我检查了我的虚拟主机可以发送和接收电子邮件,这似乎也能正常工作。
有关如何解决此问题的任何想法?
答案 0 :(得分:0)
只需检查..通过输入真实的电子邮件ID
<?php
$to = "somebody@example.com";
$subject = "My subject";
$txt = "Hello world!";
$headers = "From: webmaster@example.com" . "\r\n" .
"CC: somebodyelse@example.com";
mail($to,$subject,$txt,$headers);
?>
答案 1 :(得分:0)
标题可以添加如下
$headers = 'From: '.$from.''. "\r\n" .
'Reply-To: '.$from.'' . "\r\n" .
'X-Mailer: PHP/' . phpversion();
$message = htmlspecialchars($body);
mail($to, $subject, $message, $headers);
答案 2 :(得分:-1)
$ header错误。请检查php mail function docs
答案 3 :(得分:-1)
(假设您没有步骤调试可用)
无论邮件是否发送,看起来都会设置您的位置标头。 mail()返回boolean,所以使用类似:
if(mail($admin_mail,"Portfolio Message",$message,$headers)){
header(...);
}
else{
// it failed. run some debug here.
}
快速启动:这是我网站上类似联系表单的复制粘贴代码。它就像一个魅力 - 每天给我发邮件。 ......好吧,每天都有人使用它:)
$to = 'my.mail@gmail.com';
$subject = 'The Site Contact Request';
$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$mail = mail($to, $subject, $m, $headers);
return $mail;