我一直在尝试这一整天,但我无法弄清楚如何从我的html联系表单发送一封电子邮件,其中包含表格中的信息到我的电子邮件地址。我是php新手。
我已尝试将其上传到免费虚拟主机。我得到了消息"成功!"当我按下我的html表单上的提交按钮但实际上没有发送电子邮件。
感谢任何帮助。
PHP脚本:
<?php
//Subject
$subject ="Contact Form Submission";
// Name
$name =$_POST['InputName'];
// Message
$message =$_POST['InputMessage'];
//Mail of Sender
$email =$_POST['InputEmail'];
//From
$header = "From:$name<$email>";
$send_contact=mail("myemail@gmail.com",$subject,$message,$header);
//Check if mail was sent
if($send_contact){
echo "Success!";
}
else {
echo "Error!";
}
?>
编辑:经过一整天的反复试验后想出来。问题出在我使用的免费网络主机上。更改了主机,代码开始正常工作。希望这可以帮助将来的某个人。谢谢大家的帮助。
答案 0 :(得分:1)
我很清楚为什么你的代码不能正常工作。很久以前它发生在我身上。您的代码无效的原因是:
$headers = 'From: emailacc@yourserver.com';
From
放入header
到您刚刚创建的电子邮件地址。From
中的$headers
字段不是From
。<?php
$email = $_POST["InputEmail"];
$subject = $_POST["InputSubject"];
$message = "From: ".$email.", ".$_POST["InputMessage"];
//您在此处输入表单中的电子邮件地址$headers = 'From: emailacc@yourserver.com';
//这是指定您要发送电子邮件的电子邮件地址。(即您的服务器电子邮件地址)mail($to, $subject, $message, $headers)
?>
我确信这会完成这项工作:)
答案 1 :(得分:0)
对此有所了解。
我改变了你的$header
变量,所以不要将电子邮件设置为&#34; $ email &#34; < / em>,它实际上会传递在表单中输入的已发布电子邮件。这也适用于名称。
我也这样做了,你通过if
语句的参数传递mail函数,而不是设置一个新变量。
$headers = "From: " . $name . "<" . $email . ">"; // notice new concatenation
if(mail("myemail@gmail.com", "Contact Form Submission", $message, $headers)){
// success message
} else {
// error message
}
真的希望这有帮助! :)
答案 2 :(得分:0)
尝试在“=”之后添加可能是问题的空格,
如果这不起作用,您可以尝试使用此
<?php
$emailvariable = $_POST['InputEmail']
$to = 'example@gmail.com';
$subject = "Form"
$message = $_POST['InputMessage'];
$headers = "From: $emailvariable";
mail($to, $subject, $message, $headers);
?>
希望这有帮助