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

Не отправляется письмо на почту

13.11.2014, 00:43. Показов 976. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте. Помогите пожалуйста.
Есть форма восстановления пароля по e-mail:
PHP/HTML
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
<?php include_once('include/config.php');?>
<?php include_once('include/function.php');?>
<html>
<meta content="text/pane" http-equiv="content-type" charset="windows-1251">
<head>
<link rel="stylesheet" type="text/css" href="../style.css"/>
<title>Воcстановление пароля</title>
</head>
<body><h1 align="center">Восстановление пароля</h1>
<p align="center"><a href="index.php">Главная</a></p>
<p align="center">&nbsp;</p>
<p align="center">&nbsp;</p>
<p align="center">&nbsp;</p>
<p align="center">&nbsp;</p>
<p align="center">&nbsp;</p>
<p align="center">&nbsp;</p>
 <center><form  method="post">
 <p>E-mail 
 <input name="email" type="text" /></p>
 <input type="submit" name="this" value="Выслать пароль" />
</form></center>
<p align="center">
<?php
 if($_POST['this']){
   $email = htmlspecialchars(trim($_POST['email']));
   //Опознаем пользователя по мылу
   $select = mysql_query("SELECT * FROM users WHERE email = '$email'") or die(mysql_error());
   //Генерируем новый пароль
   $rand = mt_rand(100,1000).mt_rand(2000,5000) * mt_rand(1,10) +2;
   $arr = mysql_fetch_assoc($select);
   //Достаем id
   $id = $arr['id_user'];
   //Если юзера с таким мылом в бд нет выводим соответствующее сообщение
   if($arr['email'] != $email){return exit("Пользователь с таким e-mail не зарегистрирован");}
   //Если норм, меняем пароль данному юзеру на тот который сгенерировали выше
   $password = ($rand);
   $update = mysql_query("UPDATE users SET password = '$password' WHERE id_user = '$id'")or die(mysql_error());
   //Если все норм, готовим сообщение
   //$to = $email;
   $title = "Восcтановление пароля. Vegan.ru";
   $message = "Здравствуйте. Ваш новый пароль: $password. После авторизации рекомендуем сменить его. С уважением, администрация сайта vegan.ru. Vegan - сайт для предприимчивых людей!";
   $password = md5($rand);
   $update = mysql_query("UPDATE users SET password = '$password' WHERE id_user = '$id'")or die(mysql_error());
   //Опознаем пользователя
   if(mail($email, $message, "Content-type:text/plane; Charset=windows-1251")){
      echo $arr['name'].", новый пароль выслан на Ваш e-mail адрес. ";
      header('Refresh: 3; URL=http://vegan.hdd1.ru/index.php');
    }
      else {return exit('Ошибка при отправке сообщения');}
 }
 ?>
</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<h3 align="center">Vegan &copy; 2014</h3>
</body>
</html>
Сейчас код работает нормально, письмо приходит сразу же (как и положено), но текст идет в титуле письма.
Правильный синтаксис функции mail() в моем случае такой:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
$to = $email;
   $title = "Восcтановление пароля. Vegan.ru";
   $message = "Здравствуйте $name. Ваш новый пароль: $password. После авторизации рекомендуем сменить его. С уважением, администрация сайта vegan.ru. Vegan - сайт для предприимчивых людей!";
   $password = md5($rand);
   $update = mysql_query("UPDATE users SET password = '$password' WHERE id_user = '$id'")or die(mysql_error());
   //Опознаем пользователя
   if(mail($to, $title, $message, "Content-type:text/plane; Charset=windows-1251")){
      echo $arr['name'].", новый пароль выслан на Ваш e-mail адрес. ";
      header('Refresh: 3; URL=http://vegan.hdd1.ru/index.php');
    }
      else {return exit('Ошибка при отправке сообщения');}
 }
Но при правильном синтаксисе письмо иногда приходит, но с опозданием и попадает в папку "Спам" на почте, либо вовсе не приходит. Так же если письмо приходит, то в письме нет имени пользователя ($name).
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
13.11.2014, 00:43
Ответы с готовыми решениями:

Не отправляется письмо на почту
Здравствуйте столкнулся с такой проблемой как обратная связь на сайте. Проблема в том что письмо не приходит на почту. Вот код ...

Не отправляется письмо на почту через форму связи
Привет всем. Такая проблема: не приходит письмо на почту, подскажите что неправильно &lt;?php /* Задаем переменные */ $name =...

Не отправляется письмо
Всем привет. Недавно начал учить php и я не понимаю почему это сообщение не отравляется на почту. Проверял на gmail и yandex. Кто-то из...

2
177 / 125 / 28
Регистрация: 30.10.2013
Сообщений: 686
13.11.2014, 10:44
дебажили?
0
0 / 0 / 0
Регистрация: 19.09.2014
Сообщений: 46
13.11.2014, 10:45  [ТС]
нет, а что?))
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
13.11.2014, 10:45
Помогаю со студенческими работами здесь

Не отправляется письмо
День добрый. есть такой код: if (isset($_POST)) { mail(&quot;adr@inbox.ru&quot;, &quot;the subject&quot;, &quot;Example message&quot;,&quot;From:...

Почему письмо не отправляется
Скопипастил маленькую программку с инета &lt;?php $to = &quot;тут мой реальный адрес@mail.ru&quot;; // этот адрес взял с примера в инете,...

Не отправляется письмо PHP
Добрый день. Нашёл на стороннем форуме систему отправки письма при помощи PHP, но письмо почему-то не отправляется. Полагаю, что проблема в...

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

Письмо с сайта отправляется в спам
На сайте есть php-скрипт, который по запросу пользователя отправляет ему письмо. Так вот, это письмо автоматически попадает в спам. ...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru