2013-08-16 7 views
1

мой сайт размещен на сайте name.com, и для проверки этого я загрузил простой файл с именем contact.php с этим вверху.Использование PHP mail() - проблема с хостингом name.com

<?php 

$to = '~~~~'; 
$subject = 'enquiry from '; 
$name = $_POST['name']; 
$email - $_POST['email']; 
$message = $_POST['message']; 

if ($_POST){ 
mail($to, $subject, $message, $header); 
$feedback = "Sent"; 
} 
?> 

Таким образом, когда я нажимаю кнопку отправки, она отправляет почту. Внутри тега p у меня есть обратная связь echo $, которая появляется после нажатия кнопки.

Электронная почта не отправляется? Что-нибудь я здесь делаю неправильно, или мне нужно каким-то образом настроить мою cPanel?

+0

вы имеют опечатку на строке 6. Это должен быть знак '=', а не '-'. –

+0

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

+0

@ Sergio Ya, я изменил его, как было предложено - он работает на локальном сервере XAMPP, но когда я использую его на своем сайте, он не отправляет на адрес электронной почты в параметре $ to, а вместо этого в Home directory -> Mail - > Создать внутри файлового менеджера cPanel. Любые предложения по этому поводу? – BrettD

ответ

0

Поскольку заголовок является необязательным и остается неопределенным, его удаление должно решить вашу проблему.

+0

Я сделал переменную $ feedback = mail (...), которая повторяется при нажатии submit. Он возвращает 1, но я все еще не получаю письмо. – BrettD

+0

Не из того, что я вижу, вы устанавливаете '$ feedback = 'Sent';', который будет срабатывать до тех пор, пока '$ _POST' установлен не потому, что отправляется почта. –

+0

Mail возвращает логическое значение, поэтому, устанавливая $ feedback = mail(), eachoing $ feedback должен = 1, если он отправлен. Я получаю 1, но это не приходит в мой почтовый ящик. – BrettD

0

Вы не установили переменный заголовок, который является необязательным, есть опечатка при установке переменных $ электронной почты, вы, использование - вместо =

обновленного кода,

<?php 
    $to = '[email protected]'; 
    $subject = 'enquiry from '; 
    $name = $_POST['name']; 
    $email = $_POST['email']; 
    $message = $_POST['message']; 

    if ($_POST){ 
     mail($to, $subject, $message); 
     $feedback = "Sent"; 
    } 
?> 
+0

Даже с этими изменениями он не будет отправлен. Мне нужно какое-то редактирование в конфигурации php для отправки почты? – BrettD

+0

@BrettD Вы проверили папку со спамом/нежелательной почтой? –

+0

Ya, все еще нет. – BrettD

0

Имейте в виде, что использование содержимого $_POST непосредственно в электронном письме представляет собой угрозу безопасности для вас! Существуют хорошие библиотеки электронной почты, в которых есть инструменты для предотвращения злоупотреблений. (Например: ZendMail, PHPmailer)

Сказав, что, на ваш код, вам не хватает заголовка и имеют небольшую ошибку на $email= (не -) $_POST['email'];, вы можете использовать это:

$header = 'From: [email protected]' . "\r\n" . 
'Reply-To: [email protected]' . "\r\n" . 
'Content-type: text/html; charset=iso-8859-1' . "\r\n" . 
'X-Mailer: PHP/' . phpversion(); 
Смежные вопросы