Я работаю на веб-сайте личного портфолио (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>';
}
}
?>
Вы можете протестировать ее самостоятельно, но всякий раз, когда я заполняю форму для ее проверки, она возвращает успешное сообщение, но на самом деле ничего не посылает.
Попробуйте это в отдельном файле, чтобы проверить, действительно ли mail
"работает", так как ваш текущий код выглядит хорошо.
<?php
echo mail('[email protected]', '[email protected]', 'test');
?>
Этот скрипт пытается отправить электронное письмо по [email protected]
, from [email protected]
, и повторяет возвращаемое значение функции. Если он не отвечает 'TRUE'
или '1'
, возникает странная проблема. Если это произойдет, и вы не получите сообщений в своем почтовом ящике, обратитесь к администратору вашего сервера.
Посмотрите на PHPMailer, который позволяет отправлять почту через SMTP. Это означает, что у вас есть все электронные письма, которые были отправлены, и снизит риск отправки вашей почты в папки спама пользователя!
Возможно, это ваш сервер. Если вы этого не знаете, обратитесь к системному администратору. Возможными причинами могут быть: закрытые порты, фильтрация пакетов или системы безопасности (например, SELinux) на вашем сервере или в локальной сети.