【问题标题】:multi-recipient PHP email form not sending emails多收件人 PHP 电子邮件表单不发送电子邮件
【发布时间】:2015-05-05 12:52:52
【问题描述】:

我正在尝试让我的电子邮件表单正常工作,但似乎有问题。它根本不发送电子邮件!

作为参考,这里使用的是 Wordpress,代码如下:

<?php
$action=$_REQUEST['action'];
if ($action=="")    /* display the contact form */
    {
    ?>
    <form  action="#" method="POST" enctype="multipart/form-data">
    <input type="hidden" name="action" value="submit">
    Your name:<br>
    <input name="username" type="text" value="" size="30"/><br>
    Department:<br>
          <select id="department" class="form-control-footer">
        <option value="Email_0">Sales</option>
        <option value="Email_1">Support</option>
        <option value="Email_2">Website Feedback</option>
        <option value="Email_3">Other</option>
      </select><br>
    Email Subject<br>
    <input name="emailsubject" type="text" value="" size="30"/><br>
    Your email:<br>
    <input name="email" type="text" value="" size="30"/><br>
    Your message:<br>
    <textarea name="message" rows="7" cols="30"></textarea><br>
    <input type="submit" value="Send email"/>
    </form>

    <?php
    } 
else                /* send the submitted data */
    {
    $name=$_POST['username'];

    if (($department=="Email_0"))
    {
        $mailto=$_POST['example@website.com'];
        }
    if (($department=="Email_1"))
    {
        $mailto=$_POST['example@website.com'];
        }
    if (($department=="Email_2"))
    {
        $mailto=$_POST['example@website.com'];
        }
    else
    {
        $mailto=$_POST['example@website.com'];
        }

    $emailsubject=$_POST['emailsubject'];
    $email=$_POST['email'];
    $message=$_POST['message'];
    if (($name=="")||($email=="")||($message==""))
        {
        echo "All fields are required, please fill <a href=\"\">the form</a> again.";
        }
    else{        
        $from="From: $name<$email>\r\nReturn-path: $email";
        $subject="Webform : $emailsubject";
        mail($mailto, $subject, $message, $from);
        echo "Thank you for your email! Your email has been sent, and we will try to respond as soon as we can!";
        }
    }  
?>

我已修改基本表单以添加部门,这会更改联系表单的收件人。但这样做时,表单似乎根本不再发送这些电子邮件。

谁知道我做错了什么?

【问题讨论】:

  • 您是否收到任何错误消息?如果是这样,请将它们包括在您的问题中。 - 另外,为什么你把 if 语句包在 double () 中?
  • 我没有在页面上收到任何错误消息。网站上的某个地方我可以访问任何错误日志吗?另外,我这样做是因为它的下部相同。我会用单括号试试!
  • $mailto=$_POST['example@website.com']; 这似乎不对。你的意思是写$mailto='example@website.com';
  • 最好使用if.. else if.. 而不是只使用if
  • 我真的不知道。我是 PHP 新手,但似乎邮件函数中使用的所有内容都使用 POST,所以我认为 mailto 应该是相同的。代码实际上一直在屏蔽屏幕,直到我将其添加进去。

标签: php wordpress forms email


【解决方案1】:

这里需要在下面的代码中添加“name="department"”

<select id="department" name="department" class="form-control-footer">

这里你需要改变你的代码,如下所示:

if (($_POST['department'] == "Email_0"))
{
    $mailto='example@website.com';
}
else if ($_POST['department'] == "Email_1")
{
    $mailto = 'example@website.com';
}
...

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-09-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-24
    • 2011-10-07
    相关资源
    最近更新 更多