繁体   English   中英

使用PHP将表单数据发送到电子邮件

[英]Sending form data to E-mail with PHP

我试图将表单数据发送到我的电子邮件,但没有成功。 我希望当用户单击“提交”按钮(并在验证之后)时,数据字段将发送到我的电子邮件中,并且用户看到一条消息“谢谢您与我们联系”,而不是表单字段。 我对PHP非常陌生,希望你们中的一员能帮助我。

这是我的HTML表单:

    <form id="contactForm" method="post" action="contact.php" onsubmit="return validateForm()">
            <input type="text" name="name" id="name" placeholder="Full Name">

            <input type="email" name="email" id="email" placeholder="E-mail Address">

            <input type="text" name="phone" id="phone" placeholder="Phone Number">

            <input type="text" name="company" id="company" placeholder="Company">

            <textarea name="message" id="message" placeholder="Write Your Message Here..."></textarea>

            <input type="submit" value="SEND" id="submitForm">
</form>

这是我的PHP代码:

<?php

if($_POST["submit"]) {
    $recipient="myEmail@gmail.com";
    $subject="Message from Website";
    $sender=$_POST["name"];
    $senderEmail=$_POST["email"];
    $senderPhone=$_POST["phone"];
    $senderCompany=$_POST["company"];
    $message=$_POST["message"];

    $mailBody="Name: $sender\nEmail: $senderEmail\nPhone: $senderPhone\nCompany: $senderCompany\n\n$message";

    mail($recipient, $subject, $mailBody, "From: $sender <$senderEmail>");

$thankYou="<p>Thank you! Your message has been sent.</p>";
}

?>

我也有这种形式的JS验证功能,称为validateForm(),可以正常工作。 我是否需要在托管服务器上定义一些内容才能使该PHP工作?

将以下行添加到脚本顶部

error_reporting(E_ALL);
ini_set("display_errors", "On");

如果未使用邮件正确配置服务器,则会看到错误。 最佳实践是使用PHPMailer。 这样您就可以使用sendmail或任何SMTP服务器

您是否尝试过使用类似PHPMailer的工具?

https://github.com/PHPMailer/PHPMailer/

它是一个类,它将使用适当的标题发送电子邮件,并且易于使用和调试。

您还会发现,由于它具有适当的标题,因此垃圾邮件过滤器不会阻止其到达正确的目的地。

希望能帮助到你。

用这个

<input type="submit" value="SEND" id="submit">

更新:

它是输入按钮的name="xx"属性,用于为$ _POST或$ _GET数组中传递的值赋予变量名称

因此,您需要像这样在按钮html标记中添加一个name="submit"

<input type="submit" value="SEND" name="submit">

现在,此PHP语句将起作用,因为它将在$ _POST数组中看到一个名为“ submit”的命名变量。

if ( $_POST['submit'] )

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM