PHP,电子邮件提交表格

时间:2018-08-28 12:40:25

标签: php html email

我已经搜索并搜索了答案,但是找不到我特定问题的答案。我只是想在用户填写联系页面并单击“提交”时发送电子邮件。

下面是表单的代码。

<form method="post" action="contactRob.php">
    <label for="name">First Name:</label>
    <input type="text" name="name" id="name" />                         
    <label for="lastName">Last Name:</label>
    <input type="text" name="lastName" id="lastName" />
    <label for="email">Email:</label>
    <input type="text" name="email" id="email" />
    <label for="message">Message:</label><br />
    <textarea name="message" rows="20" cols="20" id="message"></textarea>
    <label>*What is 2+2? (Anti-spam)</label>
    <input name="human" placeholder="Type Here">

    <input type="submit" name="submit" value="Submit" class="submit-button" />

</form>

下面是我正在使用的PHP。

<?php
    $name = $_POST['name'];
    $email = $_POST['email'];
    $message = $_POST['message'];
    $from = $_POST['lastName']; 
    $to = 'juliansilvestri92@gmail.com'; 
    $subject = 'Hello';
    $human = $_POST['human'];

    $body = "From: $name\n E-Mail: $email\n Message:\n $message";

    if ($_POST['submit'] && $human == '4') {         
        if (mail ($to, $subject, $body, $from)) { 
           echo '<p>Your message has been sent!</p>';
        } else { 
           echo '<p>Something went wrong, go back and try again!</p>'; 
        } 
    } else if ($_POST['submit'] && $human != '4') {
        echo '<p>You answered the anti-spam question incorrectly!</p>';
    }
?>

我想念什么? 当前,该网站位于托管服务器域上。 当我单击“提交”按钮时,出现“我出了点问题”错误提示。

任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:3)

您的名字是第一个大写字母,而结果不在。

$message = $_POST['email']; 
<input type="text" name="Email" id="Email" />

都将小写。然后回显$ body可能会有所帮助,查看数据是否与您输入的相同,注释邮件部分,查看错误是来自邮件还是来自DOM本身。如果它的邮件程序问题导致了您的错误,请继续阅读有关邮件程序的更多信息,这无济于事。

您的发件人不正确。

$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);

您的来源应如下所示:

$from = "From: ".$_POST['email']."\r\n CC: ".$_POST['lastName']; 

或类似的东西。

关于它的所有话题都准备好了,有一个坦诚的评论,您将不会错过。 PHP mail function doesn't complete sending of e-mail 进行该评论所指示的操作,您很可能会解决或理解该问题。

祝你好运。

答案 1 :(得分:1)

大多数服务器不允许您仅使用php邮件功能发送电子邮件,请使用php邮件程序功能从任何本地开发服务器/实时Web服务器发送邮件。

https://github.com/PHPMailer/PHPMailer

对于默认邮件发送,您也可以使用这些参数

$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);