【问题标题】:PHP Contact form won't workPHP 联系表格不起作用
【发布时间】:2014-03-31 02:25:30
【问题描述】:

我已经尝试了每个 php 联系表教程,但我无法让他们中的任何一个正确发送电子邮件。他们都只显示代码但不发送电子邮件。这是我现在拥有的 HTML 代码:

<form method="POST" action="scripts/contact.php">
    <input id="name" name="name" placeholder="Name*" type="text" /> <br>
    <input id="subject" name="subject" placeholder="Subject" type="text" /> <br>
    <input id="email_address" name="email" placeholder="Email address*" type="text" /> <br>
    <textarea id="message" name="message" placeholder="Your message*"></textarea>
    <input id="submit" type="submit" name="submit" value="Send" />
</form>

这是我拥有的 php:

<?php
$name = $_POST['name'];
$subject = $_POST['subject'];
$email = $_POST['email'];
$message = $_POST['message'];


$to = "benmuschol@gmail.com";
$subject = "Hello World";
$message = "Name: $name \n Subject: $subject \n Email: $email \n Message: $message \n";
$headers = "From: $email" . $email;
mail($name,$email,$subject,$message,$headers);
echo "Mail Sent.";
?>

我对 HTMl 有相当的了解,但对 PHP 却一无所知。任何帮助将不胜感激。

【问题讨论】:

  • 如果 PHP 代码显示而不是执行,说明您的 PHP 解释器没有正确安装。确保您已将 Web 服务器软件(可能是 Apache)配置为通过 PHP 解释器处理 .php 文件。有关详细信息,请参阅 php.net 上的安装文档。
  • 好的,谢谢。电脑本地文件执行不正常是正常的吗?
  • 我认为你必须配置你的邮件变量php.net/manual/en/mail.configuration.php
  • 是的,除非您在本地计算机上安装了 Web 服务器和 PHP 解释器,否则这是意料之中的。如果您使用的是 Windows,则可以安装 WAMP 以获取您需要的所有软件。
  • 但是请注意,您需要安装另一个软件,以便可以从本地主机发送电子邮件!

标签: php html forms email post


【解决方案1】:

首先你要确定 php 文件存在于路径 scripts/contact.php 中

第二次查看 phpinfo 或 php.ini 以查找是否设置了 smptp 服务器

【讨论】:

    【解决方案2】:

    使用以下 php 代码:

    <?php
    $name = $_POST['name'];
    $subject = $_POST['subject'];
    $email = $_POST['email'];
    $message = $_POST['message'];
    
    
    $to = "benmuschol@gmail.com";
    $subject = "Hello World";
    $message = "Name: $name \n Subject: $subject \n Email: $email \n Message: $message \n";
    
    $headers  = 'MIME-Version: 1.0' . "\r\n";
    $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
    
    // Additional headers
    $headers .= 'From: '.$email. "\r\n";
    
    
    if(mail($to, $subject, $message, $headers))
    {
        echo "Mail Sent Successfully.";
    }
    else
    {
        echo "Error in Mail Sent.";
    }
    
    
    ?>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-05-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-04
      • 1970-01-01
      相关资源
      最近更新 更多