使用php从html表单发送电子邮件

时间:2016-08-21 08:29:49

标签: php html forms email

我一直在尝试这一整天,但我无法弄清楚如何从我的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!";
}
?>

编辑:经过一整天的反复试验后想出来。问题出在我使用的免费网络主机上。更改了主机,代码开始正常工作。希望这可以帮助将来的某个人。谢谢大家的帮助。

3 个答案:

答案 0 :(得分:1)

我很清楚为什么你的代码不能正常工作。很久以前它发生在我身上。您的代码无效的原因是:

  • 当您在标题中传递“from”时,php需要您的现有电子邮件帐户 服务器。 例如: $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);
    ?> 

希望这有帮助