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

PHP обратная связь работает только если пользователь указывает google почту

30.09.2017, 04:19. Показов 795. Ответов 9
Метки html (Все метки)

Author24 — интернет-сервис помощи студентам
Никогда не работал с php. Нашёл в интернете код php для обратной связи. Кое-как запустил (Не без помощи тех.поддержки хостинга). Попробовал - всё ништяк, всё работает. Но со временем оказалось, что обратная связь работает только если пользователь указывает kakoj-to-email@gmail.com. То есть, если пользователь указывает @mail.ru или @yandex.ru, то письмо не приходит. Где ошибка?

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
<?php
 
$name = htmlspecialchars($_POST["name"]);
$email = htmlspecialchars($_POST["email"]);
$tel = htmlspecialchars($_POST["tel"]);
$message = htmlspecialchars($_POST["message"]);
$bezspama = htmlspecialchars($_POST["bezspama"]);
 
$address = "litoflex@mail.ru";
$sub = "Обратная связь Литофлекс";
 
$mes = "Обратная связь Литофлекс.\n
Имя отправителя: $name 
Электронный адрес отправителя: $email
Телефон отправителя: $tel
Текст сообщения:
$message";
 
 
if (empty($bezspama))
{
$from  = "From: $name <$email> \r\n Reply-To: $email \r\n";
if (mail($address, $sub, $mes, $from)) {
 header('Refresh: 5; URL=http://литофлекс.рф');
 echo '<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /></head>
    <body>Письмо отправлено, через 5 секунд вы вернетесь на наш сайт</body>';}
else {
 header('Refresh: 5; URL=http://литофлекс.рф');
 echo '<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /></head>
    <body>Письмо не отправлено, через 5 секунд вы вернетесь на наш сайт</body>';}
}
exit;
?>
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
30.09.2017, 04:19
Ответы с готовыми решениями:

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

Обратная связь (отправка сообщений на почту)
Привет всем, кто может помочь? Мне нужно что бы с &quot;Обратной связи&quot; отправлялось сообщение на...

Обратная связь Php
Добрый вечер. Скажите, почему не получается настроить форму обратной связи? Я пробовал подключить...

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

9
В экстазе
168 / 152 / 38
Регистрация: 05.08.2012
Сообщений: 767
Записей в блоге: 3
30.09.2017, 05:41 2
Цитата Сообщение от Hass Walker Посмотреть сообщение
Где ошибка?
в папке "СПАМ" на Mail/Yandex смотрели?
0
0 / 0 / 0
Регистрация: 02.05.2017
Сообщений: 15
30.09.2017, 06:27  [ТС] 3
О. Спасибо! Однако. Почему они определяются как спам?
0
В экстазе
168 / 152 / 38
Регистрация: 05.08.2012
Сообщений: 767
Записей в блоге: 3
30.09.2017, 11:20 4
Цитата Сообщение от Hass Walker Посмотреть сообщение
Почему они определяются как спам?
Это совокупность особенностей настройки анти-спам фильтров почтового сервера и настройки функции mail() (которая отправляет почту) на Вашем хостинге. Иначе говоря, это "нормально", в некоторой степени. Другой вопрос - почему оно до GMail доходит вообще... обычно gmail "гробит" подобные письма и они не "доживают" даже до папки со спам'ом...

Что бы такого не происходило, наиболее простое решение - это использовать существующий почтовый ящик и "настоящий" STMP-сервер, например ящик+SMTP от Яндекса. То есть, отправлять письма с "настоящего" почтового ящика. Но там будут свои "проблемы", в частности - не более 100 писем в час и т.д. Для этого можно использовать какую-нибудь готовую библиотеку, например вот эту, но повозиться с кодом Вам всё равно придётся...

Как один из вариантов - можете завести почту с Вашим доменом (с сайтом при этом ничего не случиться) на Яндексе или Майл.ру и использовать их SMTP-сревера и существующие ящики для отправки писем с сайта (подробности я описал выше), но с кодом (и не только) повозиться всё равно придётся...
0
0 / 0 / 0
Регистрация: 02.05.2017
Сообщений: 15
01.10.2017, 03:06  [ТС] 5
Нет вы не поняли. Если в форме обратной связи указать gmail, то письмо придёт на наш ящик в папку входящие, но если указать любую другую почту, то письмо придёт на наш ящик, но в папку спам. Странно всё это.
0
В экстазе
168 / 152 / 38
Регистрация: 05.08.2012
Сообщений: 767
Записей в блоге: 3
01.10.2017, 08:49 6
Цитата Сообщение от Hass Walker Посмотреть сообщение
Нет вы не поняли. Если в форме обратной связи указать gmail, то письмо придёт на наш ящик в папку входящие, но если указать любую другую почту, то письмо придёт на наш ящик, но в папку спам. Странно всё это.
Я как раз всё верно понял, и верно попытался вкратце объяснить, почему так происходит

Если очень коротко и упрощенно: почтовый сервер (яндекс.почта, майл.ру и т.д.), когда приходит какое-то письмо (неизвестное) - проверяют IP с которого пришло это письмо, нет ли его в базе спам-IP и проверяют то, привязана ли почта, которую Вы указываете как обратный адрес - к этому IP. Если всё нормально - письмо попадает во "Входящие", если не нормально - в "Спам". Это очень упрощенное описание происходящего на почтовом сервере.
0
0 / 0 / 0
Регистрация: 02.05.2017
Сообщений: 15
07.10.2017, 23:16  [ТС] 7
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
<?php
 
$name = htmlspecialchars($_POST["name"]);
$email = htmlspecialchars($_POST["email"]);
$tel = htmlspecialchars($_POST["tel"]);
$message = htmlspecialchars($_POST["message"]);
$bezspama = htmlspecialchars($_POST["bezspama"]);
 
$address = "litoflex@mail.ru";
$sub = "Обратная связь Литофлекс";
 
$mes = "Обратная связь Литофлекс.\n
Имя отправителя: $name 
Электронный адрес отправителя: $email
Телефон отправителя: $tel
Текст сообщения:
$message";
 
 
if (empty($bezspama))
{
$from  = "From: $name <$email> \r\n Reply-To: $email \r\n";
if (mail($address, $sub, $mes, $from)) {
 header('Refresh: 5; URL=http://литофлекс.рф');
 echo '<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /></head>
    <body>Письмо отправлено, через 5 секунд вы вернетесь на наш сайт</body>';}
else {
 header('Refresh: 5; URL=http://литофлекс.рф');
 echo '<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /></head>
    <body>Письмо не отправлено, через 5 секунд вы вернетесь на наш сайт</body>';}
}
exit;
?>
Обратная связь работает только, если почтовый адрес указан в .com,
Сообщение приходит, либо в спам, либо во входящие. Но, если почта указан домен .ru, то письмо не приходит вообще.

Если указать в форме на сайте pochta@mail.com - письмо придёт и определится в спам
Если указать в форме на сайте pochta@gmail.com - письмо придёт и определится во входящие
Если указать в форме на сайте pochta@mail.ru - письмо не придёт вовсе.

В чём может быть ошибка?

Ps. Про php ничего не знаю: smtp, pop3 и т.п. даже не знаю что это такое.
0
В экстазе
168 / 152 / 38
Регистрация: 05.08.2012
Сообщений: 767
Записей в блоге: 3
08.10.2017, 00:09 8
Цитата Сообщение от Hass Walker Посмотреть сообщение
Если указать в форме на сайте pochta@mail.com - письмо придёт и определится в спам
Если указать в форме на сайте pochta@gmail.com - письмо придёт и определится во входящие
Если указать в форме на сайте pochta@mail.ru - письмо не придёт вовсе.
В чём может быть ошибка?
Вот это вообще довольно сложный вопрос, насколько я понимаю, у Вас почта уходит на майл.ру? Никогда им не пользовался особо, но подозреваю, что это какой-то заскок на его стороне, касательно именно поведения, что если указан gmail - то письма идут во входящие, а если mail.com - то в СПАМ.

При этом, то, что почта с домена mail.ru не приходит вообще - в этом нет ничего удивительного, т.к. mail.ru (на который у Вас приходит почта), скорее всего банально проверяет IP'шник с которого это письмо пришло, и понимая, что это IP адрес не из их диапазона - считает такие письма спамом по определению (или попыткой подделать письмо).

Что бы такого не происходило, с учётом:
Цитата Сообщение от Hass Walker Посмотреть сообщение
Ps. Про php ничего не знаю: smtp, pop3 и т.п. даже не знаю что это такое.
наиболее рациональное и простое решение для Вас - указывайте "настоящий" адрес отправителя, т.к. письма шлёт Ваш сервер, а Вы пытаетесь доказать другому почтовому серверу, что письма шлёт кто-то другой. В кратце, ваши действия будут выглядеть примерно так:
1. Пишите в поддержку хостера и просите их уточнить, какой e-mail адрес можно/нужно использовать для графы "от кого".
2. Вместо того, что бы указывать палёные адреса, которые ввёл пользователь (в графе "от кого") - указываете адрес из п.1
3. Адрес который ввёл пользователь - добавляете в тело (текст) письма, что бы на него можно было ответить
4. Добавляете адрес из п.1 в своём почтовом ящике в "белый" список или просто настраиваете фильтр, который будет перекладывать все письма от этого адресата из "спам" во "входящие"

Это наиболее короткий путь решения проблемы и узнавать про php, smtp и т.д. не придётся.

P.S. Конкретно в Вашем примере, строка отвечающая за "от кого" - идёт под номером 22.

Добавлено через 3 минуты
Да, ещё как совсем простой вариант - можно вообще не указывать ничего в графе "от кого", тогда какой-нибудь технический адрес будет подставлен автоматически. В этом случае можно начинать с п.3.
0
0 / 0 / 0
Регистрация: 02.05.2017
Сообщений: 15
08.10.2017, 07:18  [ТС] 9
Проблема решилась: просто использовал почту яндекс, вместо почты маилру.
0
8 / 10 / 0
Регистрация: 01.10.2017
Сообщений: 173
09.10.2017, 16:18 10
Потому что интернет контролируется америкой, а gmail google это центральная почта америки,
которая работает по всему интернете, т.е. миру, поэтому она у тебя и работает.
0
09.10.2017, 16:18
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.10.2017, 16:18
Помогаю со студенческими работами здесь

Не работает обратная связь
Добрый вечер. Установил из маркетплейс решение Обратная связь PRO, письма на ящик не приходят! ...

Не работает обратная связь
Добрый день, я делаю (точнее изменяю шаблон) себе сайт-визитку - всё хорошо, только осталась...

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

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

Php обработчик для формы "обратная связь"
Помогите пожалуйста написать обработчик для отправки сообщения на e-mail. Ниже код формы &quot;Обратной...

Не работает PHP код. Файлы .php не обрабатываются, хотя, если занести в html, всё работает.
не могу разобраться с проблемой. установила денвер, вроде все работает, но как только начала...


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

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