2015-03-30 2 views
2

Я создал очень простую форму HTML и создал форму PHP из учебника, изменив только то, что мне нужно было изменить, чтобы соответствовать моей форме HTML. Я не получаю сообщений об ошибках, но форма никогда не отправляет электронное письмо. Я отправил два код ниже:.php простую форму контакта не отправит письмо

HTML

<form action="general.php" method="post" name="genform"> 
    <label class="contact" for="pronom">First Name:</label> 
    <input type="text" name="pronom" autofocus required> 
    <label class="contact" for="surname">Last Name:</label> 
    <input type="text" name="surname" required><br><br> 
    <label class="contact" for="email">Email:</label> 
    <input type="email" name="email" required> 
    <label class="contact" for="date">Date:</label> 
    <input type="date" name="date"><br><br> 
    <label class="contact" for="text">Question/Concern:</label> 
    <textarea name="text" rows="6" cols="50" required></textarea><br><br> 
    <input type="submit" name="send" value="Send Message"> 
</form> 

PHP

<?php 
if (isset($_POST['send'])) { 
$to = '[email protected]'; //*Changed this, obviously, as well as below 
$subject = "New message from $name"; 
$message = "First Name: " . $_POST['pronom'] . "\r\n\r\n"; 
$message .= "Last Name: " . $_POST['surname'] . "\r\n\r\n"; 
$message .= "Email: " . $_POST['email'] . "\r\n\r\n"; 
$message .= "Date: " . $_POST['date'] . "\r\n\r\n"; 
$message .= "Message: " . $_POST['text']; 
$message = wordwrap($text, 70); 
$headers = "From: [email protected]aoh.org\r\n"; 
$headers .= 'Content-Type: text/plain; charset=utf-8'; 
$email = filter_input(INPUT_POST, 'email', FILTER_VALIDATE_EMAIL); 
if ($email) { 
    $headers .= "\r\nReply-To: $email"; 
} 
$success = mail($to, $subject, $message, $headers, '[email protected]'); 
} 
?> 
<?php if (isset($success) && $success) { ?> 
<h1>Thank you!</h1> 
<p3>Your message has been sent, and someone will get back to you shortly.</p3> 
<?php } else { ?> 
<h1>Oops!</h1> 
<p3>There was a problem sending your message.</p3> 
<?php } ?> 

Я проверил функцию почты с очень простым тестом PHP, и это сработало. Я проверил спам и все остальное. Может кто-нибудь, пожалуйста, дайте совет?

+0

есть только 4 параметра pass в функции mail() не включают '-fme @ mymail.org' –

ответ

0

изменение этой линии

$headers .= 'Content-Type: text/plain; charset=utf-8'; 

к,

$headers .= "Content-Type: text/plain; charset=utf-8'"; 

если еще ошибка сохраняется, попробуйте этот

error_reporting(E_ALL); 
ini_set('display_errors', '1'); 

также попробуйте удалить из параметра адреса, как это,

$success = mail($to, $subject, $message, $headers); 
-1

Функция почты Возвращает TRUE, если почта была успешно принята к доставке, в противном случае FALSE.

Важно отметить, что только потому, что почта была принята к доставке, это НЕ означает, что почта действительно достигнет предполагаемого адресата.

-1

В строках, где вы используете $ _POST [], попробуйте с некоторым жестким кодированным значением. Если он работает с использованием жестко заданных значений, это означает, что ваша функция электронной почты работает, проблема в переменной $ _POST.

До этой строки кода

если (Исеть ($ _ POST [ 'отправить'])) {

, чтобы проверить значение $ _POST использовать следующую строку кода

var_dump ($ _POST ['ваши ключи]]; умереть;

Посмотрите, имеются ли значения из вашей формы или нет.

Даже если он не работает, попробуйте простую форму для отправки данных на сервер. Получите примерный код из онлайн, который имеет рабочую форму с файлами php, а затем измените его на свои нужды.

Я думаю, что есть проблема с вашим тегом ввода. Попробуйте также с тегом кнопки.

+0

Я пошел с немного другой настройкой, и теперь все работает отлично. Спасибо за помощь! –