PHP联系表单给出错误

时间:2014-05-31 11:13:17

标签: php html

我的基本联系表格在发送邮件时给出了错误"错误"。当然,下面的代码非常简单,没有针对垃圾邮件发送者或SQL注入的保护,但我目前主要担心的是发送消息。

尽管问题很简单,但请提前感谢您提供的任何帮助。

HTML:

<form action="sendmail.php" method="post">
    <table>
        <tr>
            <td>Name:</td>
            <td><input type="text" name="Name" size="20" maxlength="40" /></td>
        </tr>
        <tr>
            <td>Email:</td>
            <td><input type="text" name="Email" size="20" maxlength="60" /></td>
        </tr>
        <tr>
            <td>Message:</td>
            <td><textarea  name="Message" maxlength="1000" cols="25" rows="6"></textarea></td>
        </tr>
    </table>
    <div align="left">
        <input name="submit" type="submit" />
    </div>
</form>

sendmail.php PHP:

<?php
    if(isset($_POST['submit'])) 
    {

        $name = $_POST['Name'];
        $email = $_POST['Email'];
        $message = $_POST['Message'];
        $from = 'From: CWON Australia';
        $to = "......@hotmail.com";
        $subject = "CWON Message";

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

        if(mail ($to, $subject, $content, $from)) {
            echo "mail has been sent";
        }
        else
        {
            echo "error during sending mail";
        }       
    }
?>

2 个答案:

答案 0 :(得分:1)

您的代码正常运行,我假设您收到了“已发送邮件”的回复。

如果你不是,那么你首先要检查你的php.ini是否有正确的sendmail路径(我相信这是默认的):

sendmail_path = / usr / sbin / sendmail -t -i

如果sendmail路径良好,您是否在邮件日志中看到了您的电子邮件?我还会通过在服务器上邮寄您的用户帐户进行测试。

您更有可能被垃圾邮件过滤器拥有,尤其是当您通过电子邮件发送到“@ hotmail.com”地址时。

请参阅this SO question for some guidance

答案 1 :(得分:0)

mail()函数在php中不是很可靠,而且很难配置......所以我建议你使用 PHPMailer 发送你的邮件...... 您可以在此处阅读有关如何使用PHPMailer发送邮件的所有内容:PHPMailer GitHUB