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

Не приходят сообщения с сайта

22.11.2016, 15:36. Показов 1274. Ответов 16
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день. Вопрос в следующем:выгрузил сайт на сервер. Письма с сообщениями не приходят на указанный в форме адрес. В чем может быть причина? Может нужно что-то на хостинге настраивать?
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
<?php
header ("Content-type: text/html; charset=utf-8");
session_start();
if(isset($_POST['send'])){
    $name=htmlspecialchars($_POST["name"]);
    $email=htmlspecialchars($_POST["email"]);
    $message=htmlspecialchars($_POST["message"]);
    $to="123@gmail.com";
    $subject="Сoобщение с сайта";
    $_SESSION['name'] = $name;
    $_SESSION['email'] = $email;
    $_SESSION['message'] = $message;
    $error_name ="";
    $error_message="";
    $error_email="";
    $error = false;
 
if(!isset($name)|| empty($name)|| strlen($name)< 2){
    $error_name="Слишком короткое имя";
    $error = true;
}
if (!isset($email)|| empty($email)||!preg_match ("/@/",$email)){
    $error_email="Неверный формат адреса";
    $error = true;
}
if(!isset($message)|| empty($message)|| strlen($message)< 4){
    $error_message="Слишком короткое сообщение";
    $error = true;
}
if(!$error){
    header ('Location:mail.php?send=1');
$subject="=?utf-8?B?".base64_decode($subject)."?=";
$headers= "From: $email\r\nReply-To: $email\r\nContent-type: text/plain; charset=utf-8\r\n";
mail($name, $email, $subject, $headers);
 
exit();
}
}
?>
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.11.2016, 15:36
Ответы с готовыми решениями:

Не приходят сообщения на почту
Ребят, помогите пожалуйста. Я создал тестовый index.php и вставил вот этот код ...

В заголовке сообщения приходят иероглифы
Всем привет, столкнулся с такой проблемой: При открытии письма в самом заголовке иероглифы Вот...

С формы обратной связи приходят пустые сообщения
Всем привет. Столкнулся с такой проблемой. На сайте есть форма обратной связи, работает без...

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

16
461 / 369 / 94
Регистрация: 01.05.2010
Сообщений: 1,761
22.11.2016, 15:50 2
Что возвращает mail()? True или false?
0
0 / 0 / 0
Регистрация: 21.09.2016
Сообщений: 41
22.11.2016, 18:04  [ТС] 3
А что должно возвращать? Это весь мой код. Сайт выкладываю впервые. В php новичок) В коде ошибка?
0
36 / 33 / 10
Регистрация: 14.06.2013
Сообщений: 432
22.11.2016, 18:18 4
вы на mail или gmail посылаете?
0
0 / 0 / 0
Регистрация: 21.09.2016
Сообщений: 41
22.11.2016, 18:19  [ТС] 5
gmail
0
36 / 33 / 10
Регистрация: 14.06.2013
Сообщений: 432
22.11.2016, 18:21 6
на mail отправьте, что будет?
0
0 / 0 / 0
Регистрация: 21.09.2016
Сообщений: 41
22.11.2016, 18:36  [ТС] 7
в восьмой строке прописал другую почту на mail.ru. Письмо с сайта все равно не приходят.

Добавлено через 1 минуту
Может быть у меня функция mail() неправильно указана?
0
1931 / 1522 / 703
Регистрация: 17.11.2012
Сообщений: 6,585
22.11.2016, 18:54 8
Цитата Сообщение от Yano Посмотреть сообщение
if(!$error){ header ('Location:mail.php?send=1'); $subject="=?utf-8?B?".base64_decode($subject)."?="; $headers= "From: $email\r\nReply-To: $email\r\nContent-type: text/plain; charset=utf-8\r\n"; mail($name, $email, $subject, $headers); exit(); }
сначала нужно отправить письмо, а потом делать редирект
0
36 / 33 / 10
Регистрация: 14.06.2013
Сообщений: 432
22.11.2016, 18:57 9
Пропишите так, посмотрите, что возвращает


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
<?php
header ("Content-type: text/html; charset=utf-8");
session_start();
if(isset($_POST['send'])){
    $name=htmlspecialchars($_POST["name"]);
    $email=htmlspecialchars($_POST["email"]);
    $message=htmlspecialchars($_POST["message"]);
    $to="123@gmail.com";
    $subject="Сoобщение с сайта";
    $_SESSION['name'] = $name;
    $_SESSION['email'] = $email;
    $_SESSION['message'] = $message;
    $error_name ="";
    $error_message="";
    $error_email="";
    $error = false;
 
if(!isset($name)|| empty($name)|| strlen($name)< 2){
    $error_name="Слишком короткое имя";
    $error = true;
}
if (!isset($email)|| empty($email)||!preg_match ("/@/",$email)){
    $error_email="Неверный формат адреса";
    $error = true;
}
if(!isset($message)|| empty($message)|| strlen($message)< 4){
    $error_message="Слишком короткое сообщение";
    $error = true;
}
 
$subject="=?utf-8?B?".base64_decode($subject)."?=";
$headers= "From: $email\r\nReply-To: $email\r\nContent-type: text/plain; charset=utf-8\r\n";
$success = mail($name, $email, $subject, $headers);
 
if($success === true) {
    echo 'Письмо отправлено';
} else {
   echo 'Письмо  не отправлено';
}
 
exit();
}
}
?>
0
1931 / 1522 / 703
Регистрация: 17.11.2012
Сообщений: 6,585
22.11.2016, 19:08 10
Цитата Сообщение от zontik24 Посмотреть сообщение
$success = mail($name, $email,
первый параметр, должен быть Email
0
36 / 33 / 10
Регистрация: 14.06.2013
Сообщений: 432
22.11.2016, 19:31 11
ах, да, это все и объясняет
0
0 / 0 / 0
Регистрация: 21.09.2016
Сообщений: 41
22.11.2016, 20:07  [ТС] 12
Значит, в моем случае первой в mail() должна идти переменная $to? (адрес моего почтового ящика)
0
1931 / 1522 / 703
Регистрация: 17.11.2012
Сообщений: 6,585
22.11.2016, 20:09 13
Цитата Сообщение от Yano Посмотреть сообщение
Значит, в моем случае
не в вашем, а всегда
0
0 / 0 / 0
Регистрация: 21.09.2016
Сообщений: 41
23.11.2016, 11:53  [ТС] 14
Все поменял. На локальном сервере письма доходят. А вот на удаленном - нет!
Связался со службой поддержки. Спросил, подключена ли функция mail(). Ответили, что да.
Сказали, что:
"Ваша форма отправляет письма в html формате. К сожалению, наша система такие письма может блокировать.

Попробуйте заменить Content-type: text/html; на Content-type: text/plain.

Также, уберите заголовок
$headers.= 'From:' . $from . "rn";"
Проделал все вышесказанное:
если меняю html на plain, то вместо сайта появляется исходный код.((((

Есть еще какие-нибудь размышления по этому поводу????????????
0
461 / 369 / 94
Регистрация: 01.05.2010
Сообщений: 1,761
23.11.2016, 13:01 15
Цитата Сообщение от Yano Посмотреть сообщение
А что должно возвращать? Это весь мой код. Сайт выкладываю впервые. В php новичок) В коде ошибка?
При успешной отправке письма функция mail возвращает TRUE. Если отправка не удалась - возвращает FALSE.
0
0 / 0 / 0
Регистрация: 21.09.2016
Сообщений: 41
23.11.2016, 13:06  [ТС] 16
сообщения об отправке приходят успешно
0
0 / 0 / 0
Регистрация: 21.09.2016
Сообщений: 41
24.11.2016, 14:53  [ТС] 17
Проблема решилась следующим образом. Я поменял мой почтовый ящик на хостинге и письма начали приходить. С чем это связано - не знаю. Он был на .mail.ru. Поменял на gmail. В поддержке хостинга об этом не говориться(
0
24.11.2016, 14:53
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
24.11.2016, 14:53
Помогаю со студенческими работами здесь

Почему не приходят сообщения с формы?
Вот форма http://testerfree.zzz.com.ua/ git...

Mail.php Сообщения приходят, но без содержания
Нужна помощь не пойму где ошибка, помогите разобраться. Страница обратной связи на HTML кодировка...

После переноса dle сайта приходят сообщения через связь с администрацией с url первого сайта
При переносе dle сайта с одного хостинга на другой при связи с администрацией приходит на почту...

Повторно приходят сообщения
На телефон повторно, раз в 5-20 минут, приходят сообщения. Это дико раздражает. Кто знает в чем...


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

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