【问题标题】:Send contents of contact form direct to email via php [duplicate]通过php将联系表的内容直接发送到电子邮件[重复]
【发布时间】:2016-08-11 12:01:50
【问题描述】:

我的 wordpress 网站上有一个联系表格,但是当单击提交按钮时,我无法从表格中获取信息以发送到我的电子邮件地址。

单击提交按钮并发送电子邮件后,我希望在提交按钮下方显示消息已发送的确认信息/如果未发送则错误。注意:我将更新联系表单的 css 以容纳额外的文本。

这是我的表单代码:

<form action="secure_email.php" method="post" id="contact-form-content">
    <h5>You have had a look, so let's get cracking. Email me at me@myemail.com or use this nifty thing.</h5><br></br> 
    <legend>Contact Form</legend>
    <input type="text" placeholder="Full Name" name="full-name" id="full-name" required;><br></br> 
    <input type="text" placeholder="Email" name="email" id="email" required;><br></br>
    <textarea placeholder="Message" name="message" id="message" rows="100" cols="100" wrap="hard" required;></textarea><br></br> 
    <button type="submit" name="submit" value="submit">Send</button>
</form>

这是secure_email.php文件:

        <?php 
        if(isset($_POST['submit'])){
            $to = "me@myemail.com"; // this is your Email address
            $email = $_POST['email']; // this is the sender's Email address
            $full-name = $_POST['full-name'];
            $subject = "Form submission";
            $message = $full-name . " " . $email . " wrote the following:" . "\n\n" . $_POST['message'];

            $headers  = 'MIME-Version: 1.0' . "\r\n";
            $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
            mail($to, $subject, $message, $headers);

 if (isset($_POST['submit'])) 
        {
        if (mail($to, $subject, $message, $headers))

        echo "Thank you for contacting me!";
        }
        else 
        { 
        echo '<p>Something went wrong, go back and try again!</p>'; 
        }
    }
    ?>

只是为了更新所有这些是工作代码,其中联系表格详细信息被发送到我给定的电子邮件,确认消息出现在联系表格中并滚动回联系表格以查看确认消息

    <div id="contact-form">
    <form action="#contact" method="post" id="contact-form-content">
    <h5>You have had a look, so let's get cracking. Email me at me@myemail.com or use this nifty thing.</h5><br></br> 
    <legend>Contact Form</legend>
    <input type="text" placeholder="Full Name" name="fullname" id="fullname" required;><br></br> 
    <input type="text" placeholder="Email" name="email" id="email" required;><br></br>
    <textarea placeholder="Message" name="message" id="message" rows="100" cols="100" wrap="hard" required;></textarea><br></br> 
    <button type="submit" name="submit" value="submit">Send</button>
<?php 
if(isset($_POST['submit'])){
    $to = "me@myemail.com"; // this is your Email address
    $email = $_POST['email']; // this is the sender's Email address
    $fullname = $_POST['fullname'];
    $subject = "Form submission";
    $message = $fullname . " " . $email . " wrote the following:" . "\n\n" . $_POST['message'];
    $headers  = 'MIME-Version: 1.0' . "\r\n";
    $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";

if (mail($to, $subject, $message, $headers)){
        echo "Thank you for contacting me!";
        }
        else 
        { 
        echo '<p>Something went wrong, go back and try again!</p>'; 
        }
    }
?>
</form>
</div>
</div>

【问题讨论】:

  • 我没有看到发送电子邮件的wp_mail()mail()
  • 我也看不到您将响应发送回浏览器的位置,因此它将向用户显示 mail sent 消息。
  • 我没有创建mail sent 响应,因为我不知道从哪里开始。我看到的所有示例都在另一个 html 页面上显示响应,这不是我想要的。我没有使用wp_mail(),因为我没有使用 wp 电子邮件工具/插件?我想从头开始创建自己的表单和代码。希望这是有道理的?
  • 您仍然没有发送电子邮件的代码。如果您实际上不尝试发送邮件,您希望如何发送邮件?
  • 我要查看什么样的代码?我在网上看到的所有示例都使用表单代码,然后使用类似于我的secure_email.php 的代码。我没有看到任何额外的东西。任何指针都会很棒。

标签: javascript php wordpress forms email


【解决方案1】:

请使用邮件功能。

PHP 邮件函数

$headers  = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
mail($to, $subject, $message, $headers);

WordPress 邮件功能

wp_mail($to, $subject, $message, $headers);

【讨论】:

  • 我已经更新了上面的代码,但仍然无法正常工作
  • 您不能在 PHP 变量 "$full-name" 中使用连字符 (-)。请尝试使用“$fullname”
  • 我已经删除了连字符但仍然是同样的错误
  • 当您点击提交按钮时。你得到什么?我的意思是任何问题或任何消息或其他任何东西?
  • 当我点击提交时,我被定向到另一个页面,显示“找不到网页”
【解决方案2】:

你要么需要

使用 Ajax 将表单数据发布到 secure-email.php,然后在 JavaScript 中添加成功消息。

或者

与表单发布到同一页面,检测表单是否已提交并发送您的电子邮件,如果邮件发送成功,则回显您的成功消息。当他们点击提交时页面将刷新并显示消息。

【讨论】:

  • 这并不能真正回答问题,并且在当前形式下也不是很有用。更不用说你完全错过了他们实际上并没有尝试在他们的代码中发送电子邮件的事实。
猜你喜欢
  • 2021-10-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-04-24
  • 2014-03-27
  • 2021-04-16
  • 2012-05-02
相关资源
最近更新 更多