Контактная форма PHP возвращается успешно, но ничего не отправляет

0

Я работаю на веб-сайте личного портфолио (www.corybolles.com), и я пытаюсь создать контакт, основанный на PHP. У меня очень мало знаний о PHP по сравнению с HTML и CSS, и мне было интересно, сможет ли кто-нибудь помочь мне понять, почему это работает неправильно.

HTML

<div id="contact">
            <form action="contact.php" method="post">
                <label>Name</label><br>
                <input class="forminput" type="text" name="cf_name" width="50px"><br>
                <label>Email</label><br>
                <input class="forminput" type="text" name="cf_email" width="50px"><br>
                <label>Message</label><br>
                <textarea class="forminput" name="cf_message" cols="18" rows="10"></textarea><br>
                <input class="formbutton" type="submit" name="submit"value="Send">
                <input class="formbutton" type="reset"  name="clear" value="Clear">
            </form>
        </div>

PHP

<?php

$name = $_POST['cf_name'];
$email = $_POST['cf_email'];
$message = $_POST['cf_message'];
$from = 'From: www.corybolles.com'; 
$to = '[email protected]';
$subject = 'Message from user via www.corybolles.com';

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

?>

<?php

if ($_POST['submit']) {
if (mail ($to, $subject, $body, $from)) {
    echo '<p>Thanks! Your message has been sent!</p>';
} else {
    echo '<p>Sorry, something appears to have broken. Please try again</p>';
    }
}   

?>

Вы можете протестировать ее самостоятельно, но всякий раз, когда я заполняю форму для ее проверки, она возвращает успешное сообщение, но на самом деле ничего не посылает.

  • 1
    У меня раньше была похожая проблема, затем я обнаружил, что мой сервер блокирует проходящие письма. Если код верен, то это может быть связано с вашим сервером?
  • 0
    Я попробовал то, что вы предложили Jethro, и оно вернулось с '1', поэтому мне кажется, что мне нужно связаться с сервером. Еще раз спасибо!
Теги:
email

3 ответа

1
Лучший ответ

Попробуйте это в отдельном файле, чтобы проверить, действительно ли mail "работает", так как ваш текущий код выглядит хорошо.

<?php
echo mail('[email protected]', '[email protected]', 'test');
?>

Этот скрипт пытается отправить электронное письмо по [email protected], from [email protected], и повторяет возвращаемое значение функции. Если он не отвечает 'TRUE' или '1', возникает странная проблема. Если это произойдет, и вы не получите сообщений в своем почтовом ящике, обратитесь к администратору вашего сервера.

1

Посмотрите на PHPMailer, который позволяет отправлять почту через SMTP. Это означает, что у вас есть все электронные письма, которые были отправлены, и снизит риск отправки вашей почты в папки спама пользователя!

1

Возможно, это ваш сервер. Если вы этого не знаете, обратитесь к системному администратору. Возможными причинами могут быть: закрытые порты, фильтрация пакетов или системы безопасности (например, SELinux) на вашем сервере или в локальной сети.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню