Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.96/50: Рейтинг темы: голосов - 50, средняя оценка - 4.96
0 / 0 / 0
Регистрация: 25.03.2014
Сообщений: 5
1

Не работает обратная связь

25.03.2014, 12:54. Показов 10047. Ответов 10
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день, я делаю (точнее изменяю шаблон) себе сайт-визитку - всё хорошо, только осталась последняя проблема - форма обратной связи никак не хочет отправлять мне письма на почту. Почитал тут подобные темы - у большинства письма отправляются, но коряво. А вот у меня - вообще ни разу письмо так и не дошло.
В PHP новичок, достигать каких то высот в этом деле не собираюсь, буду благодарен если кто подскажет в чём может быть дело.

Использую шаблон с сайта bayguzin http://bayguzin.ru/assets/file... -files.zip , там уже присутствует файл send-mail.php.

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php
 
//vars
$subject = $_POST['subject'];
$from = $_POST['email'];
$to = 'po4tanaodinraz@yandex.ru';
 
//data
$msg = "NAME: "  .$_POST['name']    ."<br>\n";
$msg .= "EMAIL: "  .$_POST['email']    ."<br>\n";
$msg .= "WEBSITE: "  .$_POST['web']    ."<br>\n";
$msg .= "COMMENTS: "  .$_POST['comments']    ."<br>\n";
 
//Headers
$headers  = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=UTF-8\r\n";
$headers .= "From: <".$from. ">" ;
 
mail($to, $subject, $msg, $headers);
 
?>
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.03.2014, 12:54
Ответы с готовыми решениями:

Не работает обратная связь
Добрый вечер форумчане. Я как человек который учится решил сделать у себя на сайтике форму...

Не работает обратная связь
Подскажите что ещё нужно изменить чтобы обратная связь заработала. contact.php &lt;?php if ($_POST...

PHP - обратная связь, не работает
Не работает &lt;?php /* Задаем переменные */ $name = htmlspecialchars($_POST); $subject =...

Не корректно работает обратная связь на сайте
&lt;form action=&quot;send.php&quot; method=&quot;post&quot; &gt; &lt;p&gt;Введите Ваше имя:&lt;br&gt; &lt;input...

10
249 / 249 / 98
Регистрация: 26.07.2010
Сообщений: 1,685
25.03.2014, 14:05 2
проверьте правильность email и не пустой ли subject
1
0 / 0 / 0
Регистрация: 25.03.2014
Сообщений: 5
25.03.2014, 14:37  [ТС] 3
Я пробовал разные почты, ни на один так и не пришло - пробовал на яндекс и гмэйл. Есть у кого нибудь возможность скачать этот шаблон и проверить его работоспособность?
У меня такое чувство, что проблема не в коде, а где то у меня - вот только незнаю в чём.

Пробовал указывать просто $subject = 'subject'; не пришло ничего.

Вот например - демо формы обратной связи, с неё мне тоже ничего не приходит на почту http://ruseller.com/lessons/le... ontact.php
0
3 / 3 / 2
Регистрация: 21.12.2012
Сообщений: 12
25.03.2014, 15:11 4
Форма обратной связи на php
0
0 / 0 / 0
Регистрация: 25.03.2014
Сообщений: 5
25.03.2014, 15:41  [ТС] 5
С кодом у меня всё в порядке (вроде как), но письма не доходят.
0
Заблокирован
26.03.2014, 00:11 6
Попробуйте так
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
  $from ="trom@mail.ru"; 
            $To = "to@mail.ru";
            $headers[]="Content-type: text/html; charset=\"windows-1251\"";
            $headers[] ="From: ".$from;
            $headers[] ="Reply-To: ".$from;
            $headers[] ="Return-Path: ".$from;
            $headers[]="Content-type: text/html; charset=\"windows-1251\"";
            $headers[] ="X-Mailer: PHP/" . phpversion();
 
            $header=implode("\r\n", $headers);
 
            $msg="<body>  Привет  </body>";
 
            mail($To, $subject, $msg, $header);
0
Не мoдepaтор
340 / 315 / 94
Регистрация: 07.07.2012
Сообщений: 1,040
Записей в блоге: 7
26.03.2014, 01:51 7
Цитата Сообщение от Танкья Посмотреть сообщение
Попробуйте так
Хоть так, хоть не так, а письмо не отправится никак - это ведь уже и так понятно.
Тут вся проблема в этом: mail($To, $subject, $msg, $header);
Попробуйте отправить через class.phpmailer.php, если не придет письмо, тогда Я вам напишу как отправить письмо по настоящему, минуя все неудобства, которые предоставляют многие хостинги.
1
0 / 0 / 0
Регистрация: 25.03.2014
Сообщений: 5
26.03.2014, 23:52  [ТС] 8
А в чём конкретно проблема? Почему у других работает, а у меня нет? Не может же это от моей системы зависеть.
Если не трудно, можете проверить доставку Вам письма, вот в этом примере?
http://script.landman.ru/sendmail/
У меня не доставляется на яндекс.
0
Не мoдepaтор
340 / 315 / 94
Регистрация: 07.07.2012
Сообщений: 1,040
Записей в блоге: 7
27.03.2014, 02:17 9
Лучший ответ Сообщение было отмечено Yolomatic как решение

Решение

Цитата Сообщение от Yolomatic Посмотреть сообщение
У меня не доставляется на яндекс.
Отправил, ввел свой яндекс! А куда оно должно мне придти?

Добавлено через 1 минуту
Цитата Сообщение от Yolomatic Посмотреть сообщение
Почему у других работает, а у меня нет?
Бывают чудо хостинги, где функция mail() отключена. Нужно использовать sendmail, то есть с авторизацией и кучей фишек, но это даже лучше в плане спама.
Кстати, Я один свой проект по малограмотности весь написал на mail(), потом в процессе понял что это была ошибка, так-как пользователь обязательно должен получить письмо именно туда, куда он хочет, а почта гугла не пускала - помещала в "спам", и Я все перевел на "sendmail" - проблем теперь "0". Остальные проекты работают с помощью класса "майлер"
1
0 / 0 / 0
Регистрация: 25.03.2014
Сообщений: 5
27.03.2014, 12:29  [ТС] 10
Придти должно Вам же на почту, это тестовый скрипт, который мне кто то посоветовал.

Ясно, то есть дело в хостинге. Я думал что такие вещи в обычном порядке должны работать. Спасибо за помощь.
0
Не мoдepaтор
340 / 315 / 94
Регистрация: 07.07.2012
Сообщений: 1,040
Записей в блоге: 7
27.03.2014, 13:05 11
Лучший ответ Сообщение было отмечено Yolomatic как решение

Решение

Вот функция "sendmail" , подключите ее на страницу через инклуд.
Файл: "smtp.php"
Кликните здесь для просмотра всего текста
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
<?php
$mhSmtpMail_Server = "smtp.domain.tld"; // smtp-сервер
$mhSmtpMail_Port = "25"; // порт smtp
$mhSmtpMail_Username = "postmaster@domain.tld"; // имя пользователя
$mhSmtpMail_Password = "password"; // пароль
 
function MailSmtp($to, $subject, $message, $headers) 
{
    global $mhSmtpMail_Server, $mhSmtpMail_Port, $mhSmtpMail_Username, $mhSmtpMail_Password;
    $mhSmtpMail_localhost  = "localhost";
    $mhSmtpMail_newline    = "\r\n";
    $mhSmtpMail_timeout    = "30";
 
    $smtpConnect = fsockopen($mhSmtpMail_Server, $mhSmtpMail_Port, $errno, $errstr, $mhSmtpMail_timeout);
    $smtpResponse = fgets($smtpConnect, 515);
 
    if (empty($smtpConnect)) 
    {
        $output = "Failed to connect: $smtpResponse";
        return $output;
    } else {
        $logArray['connection'] = "Connected: $smtpResponse";
    }
 
    fputs($smtpConnect, "HELO $mhSmtpMail_localhost" . $mhSmtpMail_newline);
    $smtpResponse = fgets($smtpConnect, 515);
    $logArray['heloresponse'] = "$smtpResponse";
 
    fputs($smtpConnect,"AUTH LOGIN" . $mhSmtpMail_newline);
    $smtpResponse = fgets($smtpConnect, 515);
    $logArray['authrequest'] = "$smtpResponse";
 
    fputs($smtpConnect, base64_encode($mhSmtpMail_Username) . $mhSmtpMail_newline);
    $smtpResponse = fgets($smtpConnect, 515);
    $logArray['authmhSmtpMail_username'] = "$smtpResponse";
 
    fputs($smtpConnect, base64_encode($mhSmtpMail_Password) . $mhSmtpMail_newline);
    $smtpResponse = fgets($smtpConnect, 515);
    $logArray['authmhSmtpMail_password'] = "$smtpResponse";
 
    fputs($smtpConnect, "MAIL FROM: $mhSmtpMail_Username" . $mhSmtpMail_newline);
    $smtpResponse = fgets($smtpConnect, 515);
    $logArray['mailmhSmtpMail_fromresponse'] = "$smtpResponse";
 
    fputs($smtpConnect, "RCPT TO: $to" . $mhSmtpMail_newline);
    $smtpResponse = fgets($smtpConnect, 515);
    $logArray['mailtoresponse'] = "$smtpResponse";
 
    fputs($smtpConnect, "DATA" . $mhSmtpMail_newline);
    $smtpResponse = fgets($smtpConnect, 515);
    $logArray['data1response'] = "$smtpResponse";
 
    fputs($smtpConnect, "Subject: $subject\r\n$headers\r\n\r\n$message\r\n.\r\n");
    $smtpResponse = fgets($smtpConnect, 515);
    $logArray['data2response'] = "$smtpResponse";
 
    fputs($smtpConnect,"QUIT" . $mhSmtpMail_newline);
    $smtpResponse = fgets($smtpConnect, 515);
    $logArray['quitresponse'] = "$smtpResponse";
}
?>

Пропишите в ней настройки в строках: 2, 3, 4, 5, узнать их можете в панели управления хостинга, или сразу спросить в техподдержке.
Подключение к своей странице:
require("smtp.php");
Далее у себя на странице замените:
mail($To, $subject, $msg, $header);
на
MailSmtp($To, $subject, $msg, $header);

Все, должно работать!
1
27.03.2014, 13:05
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.03.2014, 13:05
Помогаю со студенческими работами здесь

PHP обратная связь работает только если пользователь указывает google почту
Никогда не работал с php. Нашёл в интернете код php для обратной связи. Кое-как запустил (Не без...

Обратная связь
всем привет, написал код который отправляет емайл с текстом указанным в input. но при нажатии на...

Обратная связь
Здравствуйте, я абсолютно ничего не понимаю в php, знаю лишь основы html и css. Пробую сделать на...

Обратная связь
Есть уже готовый HTML и CSS файлы, надо подключить форму обратной связи. Какой код для PHP файла и...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru