包含下拉列表时 PHP 联系表单不发送电子邮件的问题 [关闭]

问题描述 投票:0回答:1

我有一个 PHP 联系表单,当包含除下拉列表以外的所有字段时,它可以成功发送电子邮件。但是,当我将下拉字段添加到表单时,没有发送电子邮件。我检查了 Gmail 中的垃圾邮件文件夹,但是带有下拉选择的电子邮件也没有。

我怀疑我的代码可能有错误,但我不确定它可能是什么。我将不胜感激在确定和解决问题方面的任何帮助。此外,如果有其他方法可以发送带有下拉选项的电子邮件,我也想探索一下。

这是我试过的代码:

<?php

// checking if the form is submitted
if (isset($_POST['submit'])) {
    $fullname   = $_POST['fullname'];
    $email      = $_POST['email'];
    $subject    = $_POST['subject'];
    $message    = $_POST['message'];
    $dropdown   = $_POST['dropdown'];

    $to             = '[email protected]';
    $mail_subject   = 'Message from Website';
    $email_body     = "Message from Contact Us Page of the Website: <br>";
    $email_body    .= "<b>From:</b> {$fullname} <br>";
    $email_body    .= "<b>Subject:</b> {$subject} <br>";
    $email_body    .= "<b>Dropdown Selection:</b> {$dropdown} <br>";
    $email_body    .= "<b>Message:</b><br>" . nl2br(strip_tags($message));

    $header  = "From: {$email}\r\nContent-Type: text/html;";

    $send_mail_result = mail($to, $mail_subject, $email_body, $header);

    if ($send_mail_result) {
        echo "Message Sent.";
    } else {
        echo "Message Not Sent.";
    }
}
?>

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <title>Contact Us</title>
    <link rel="stylesheet" href="css/style.css">
</head>

<body>
    <div class="container">
        <h1>Contact Us</h1>
        <form action="index.php" method="post">
            <p>
                <label for="fullname">Full Name *:</label>
                <input type="text" name="fullname" id="fullname" required>
            </p>

            <p>
                <label for="email">Email *:</label>
                <input type="email" name="email" id="email" required>
            </p>

            <p>
                <label for="subject">Subject *:</label>
                <input type="text" name="subject" id="subject" required>
            </p>

            <p>
                <label for="dropdown">Dropdown *:</label>
                <select name="dropdown" id="dropdown" required>
                    <option value="">Select an option</option>
                    <option value="Option 1">Option 1</option>
                    <option value="Option 2">Option 2</option>
                    <option value="Option 3">Option 3</option>
                </select>
            </p>

            <p>
                <label for="message">Message *: </label>
                <textarea name="message" id="message" cols="30" rows="10" required></textarea>
            </p>
            <p>
                <button type="submit" name="submit">Send Message</button>
            </p>
        </form>
    </div> <!-- .container -->
</body>

</html>

我已经验证了电子邮件功能在没有下拉字段的情况下也能正常工作,所以它似乎与下拉选择有关。发送电子邮件时是否需要进行任何修改或额外的代码更改才能正确处理下拉值?

谢谢。

php html forms email
1个回答
-1
投票

不会因为它是一个下拉菜单。你需要诊断。当您在提交时转储 $_POST 时会发生什么?如果您回显电子邮件正文而不是发送电子邮件,会发生什么情况?

© www.soinside.com 2019 - 2024. All rights reserved.