За последние 24 часа нас посетили 18146 программистов и 1699 роботов. Сейчас ищут 1503 программиста ...

Не приходит письмо на почтовый ящик

Тема в разделе "Работа с почтой", создана пользователем S.I.G, 20 апр 2016.

  1. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    ну можно. Удобно, да. Просто от инъекций всё равно надо защищаться вручную.

    PHP:
    1.   $id = DB::insertID("
    2.        INSERT INTO `lots`
    3.        SET
    4.           `dkp` = '" . (int)$member->cid . "',
    5.           `dkp_member` = '" . (int)$member->id . "',
    6.           `dkp_lot_number` = NULL,
    7.           `name`='" . DB::escape($_POST['name']) . "',
    8.           `icon`='" . DB::escape($_POST['icon']) . "',
    9.           `description`='" . DB::escape($_POST['description']) . "',
    10.           `notprolong`=".(int)$notprolong.",
    11.           `created`=NOW(),
    12.           `type` = '" . DB::escape($_POST['type']) . "'
    13.          
    14.        ");
    --- Добавлено ---
    PHP:
    1.       $list = DB::assoc_id('SELECT * FROM `table`');
    2.       foreach ($list as $k => $v) {
    3.         что-то делаем;
    4.       }
     
  2. S.I.G

    S.I.G Новичок

    С нами с:
    19 апр 2016
    Сообщения:
    86
    Симпатии:
    0
    Мощно однако. Осталось это понять:)
    Пробую разобраться с сессией, а потом пытаться понять почему со вставками с phpmailer не работает основной код:/
     
  3. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    @S.I.G где ошибка, показывай
     
  4. S.I.G

    S.I.G Новичок

    С нами с:
    19 апр 2016
    Сообщения:
    86
    Симпатии:
    0
    А я не знаю где, на сессию не обращай внимания, я пытался просто убрать скрипты, и вопрос по той теме, а какая разница в скобках?
    https://php.ru/forum/threads/sessija-i-prisvaivanie-ej-skripta.58126/#post-467069

    Код (Text):
    1.  
    2.  
    3. <?php
    4. require 'SiteController/AccountController/PHPMailerAutoload.php';
    5. $mail = new PHPMailer(true);
    6. $mail->setFrom('admin@etrp.ru', 'Administrator');
    7. $mail->addReplyTo('linker5211@gmail.com', 'Administrator');
    8. class recovery extends str {
    9.     protected function obr() {
    10.         $mail = mysql_real_escape_string($_POST['email']);
    11.         if(!empty($mail))
    12.         {
    13.             $query = "SELECT `Mail` FROM `accounts` WHERE `Mail`='{$mail}' LIMIT 1";
    14.             $sql = mysql_query($query) or die(mysql_error());
    15.             if(mysql_num_rows($sql)==1)
    16.             {
    17.                
    18.                 $simvols = array ("0","1","2","3","4","5","6","7","8","9",
    19.                                  "A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z");
    20.                 for ($key = 0; $key < 6; $key++)
    21.                 {
    22.                     shuffle ($simvols);
    23.                     $string = $string.$simvols[1];
    24.                 }
    25.                 $check = MD5($string);
    26.                 $newkey = mb_strtoupper($check);
    27.                 $query = "UPDATE `accounts` SET `Key`= '$newkey' WHERE `Mail`='{$mail}' ";
    28.                 $sql = mysql_query($query) or die(mysql_error());
    29.                
    30.                 $query = "SELECT `Mail` FROM `accounts` WHERE `Mail` ='{$mail}' LIMIT 1";
    31.                 $sql = mysql_query($query) or die(mysql_error());
    32.  
    33.                 $row = mysql_fetch_assoc($sql);
    34.                 $mail = $row['Mail'];
    35.                
    36.                 $mail->addAddress($mail);
    37.                 $mail->Subject = 'Запрос на восстановление пороля', 'Вы сделали запрос на восстановление пароля, ваш новый пароль: $string\n\nПожалуйста не отвечайте на данное письмо!';
    38.                 $mail->send();
    39.                 } catch (phpmailerException $e) {
    40.                 echo $e->errorMessage();
    41.                 } catch (Exception $e) {
    42.                 echo $e->getMessage();
    43.                 }
    44.                 $_SESSION['CheckRec'] = "Templates/FankyoCMS/vendor/recovery/success";
    45.             } else {
    46.                 $_SESSION['CheckRec'] = "Templates/FankyoCMS/vendor/recovery/failed";
    47.             }
    48.         }
    49.     }
    50.     public function get_content() {
    51.         include "SiteController/AccountController/recovery.php";  
    52.     }
    53. }
    54. ?>
    Вот где ошибка?
     
  5. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    PHP:
    1. $mail->send();
    в примере и документации была проверка, отправлена письмо или возникла проблема, добавь её.
    и по пробуй отправить через SMTP, например yandex или mail.ru, так как проблема может быть в хостинге.
     
  6. S.I.G

    S.I.G Новичок

    С нами с:
    19 апр 2016
    Сообщения:
    86
    Симпатии:
    0
    Вставил проверку, пишет, что что-то не так. А вот что это хороший вопрос.
     
  7. mr.akv

    mr.akv Активный пользователь

    С нами с:
    31 мар 2015
    Сообщения:
    1.604
    Симпатии:
    206
    Что пишет то?
     
  8. S.I.G

    S.I.G Новичок

    С нами с:
    19 апр 2016
    Сообщения:
    86
    Симпатии:
    0
    Ну вот код, пишет, что что-то не так, просто документацию по проверке я не нашел. Кажется я скоро достану тут всех, хех, на форуме стоит функция php(mail) и работает нормально, отправляет письма, вставляю тот же емейл адрес, но все равно жалуется. Порой мне достаточно одного верного варианта, чтобы потом не допускать ошибок..
    Код (Text):
    1.  
    2. <?php
    3. class recovery extends str {
    4.     protected function obr() {
    5.         $checkRec = [
    6.   'success'=>'Templates/FankyoCMS/scripts/success.js',
    7.   'fail'=> 'Templates/FankyoCMS/scripts/failed.js',
    8. ];
    9.                 $mail = mysql_real_escape_string($_POST['email']);
    10.         if(!empty($mail))
    11.         {
    12.             $query = "SELECT `Mail` FROM `accounts` WHERE `Mail`='{$mail}' LIMIT 1";
    13.             $sql = mysql_query($query) or die(mysql_error());
    14.             if(mysql_num_rows($sql)==1)
    15.             {
    16.                 $simvols = array ("0","1","2","3","4","5","6","7","8","9",
    17.                                  "A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z");
    18.                 for ($key = 0; $key < 6; $key++)
    19.                 {
    20.                     shuffle ($simvols);
    21.                     $string = $string.$simvols[1];
    22.                 }
    23.                 $check = MD5($string);
    24.                 $newkey = mb_strtoupper($check);
    25.                 $query = "UPDATE `accounts` SET `Key`= '$newkey' WHERE `Mail`='{$mail}' ";
    26.                 $sql = mysql_query($query) or die(mysql_error());
    27.                
    28.                 $query = "SELECT `Mail` FROM `accounts` WHERE `Mail` ='{$mail}' LIMIT 1";
    29.                 $sql = mysql_query($query) or die(mysql_error());
    30.  
    31.                 $row = mysql_fetch_assoc($sql);
    32.                 $mail = $row['Mail'];
    33.                 $result = mail('admin@eternity-life.ru', $mail, 'message');
    34.  
    35. if($result)
    36. {
    37.     echo 'все путем';
    38. }
    39. else
    40. {
    41.     echo 'что-то не так';
    42. }
    43.                
    44.             mail($mail, "Запрос на восстановление пороля", "Вы сделали запрос на восстановление пароля, ваш новый пароль: $string\n\nПожалуйста не отвечайте на данное письмо!");
    45.         $checkRec[ $_SESSION['success'] ];
    46.         } else {
    47.         $checkRec[ $_SESSION['failed'] ];
    48.             }
    49.         }
    50.     }
    51.     public function get_content() {
    52.         include "SiteController/AccountController/recovery.php";  
    53.     }
    54. }
    55. ?>
     
  9. mr.akv

    mr.akv Активный пользователь

    С нами с:
    31 мар 2015
    Сообщения:
    1.604
    Симпатии:
    206
    Так а что именно пишет то? Какая ошибка?
     
  10. S.I.G

    S.I.G Новичок

    С нами с:
    19 апр 2016
    Сообщения:
    86
    Симпатии:
    0
    Вот вся банальная проверка, потому что я не нашел мануал по проверке..
    Код (Text):
    1.  
    2.             $result = mail('admin@eternity-life.ru', $mail, 'message');
    3.  
    4. if($result)
    5. {
    6.     echo 'все путем';
    7. }
    8. else
    9. {
    10.     echo 'что-то не так';
    11. }
    12.          
     
  11. mr.akv

    mr.akv Активный пользователь

    С нами с:
    31 мар 2015
    Сообщения:
    1.604
    Симпатии:
    206
    Чет пришли к тому, с чего начинали. Ты отказался от phpMailer?
     
  12. S.I.G

    S.I.G Новичок

    С нами с:
    19 апр 2016
    Сообщения:
    86
    Симпатии:
    0
    А с ним страница даже не работает.

    Вот код с ним, на что сказали, что нужно проверить функцию mail->send(); на отправку, я проверил, что то где то не так, где я понять не могу..
     
  13. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    в коде не вижу проверки, как я советовал через SMTP тоже не вижу, в тех поддержку ты не написал, по отладку не читал,
    похоже больше нечем тебе помочь.
     
  14. S.I.G

    S.I.G Новичок

    С нами с:
    19 апр 2016
    Сообщения:
    86
    Симпатии:
    0
    С SMTP сейчас попробую конечно, а вот в тех поддержку писал, на что получил ответ "это делается в вашем скрипте".
     
  15. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    пробуй, ну и отвечать мог бы на все вопросы.

    смени хостинг, создай простой скрипт только с отправкой почты, впиши туда данные и запусти, посмотри что выйдет.
     
  16. DenMagor

    DenMagor Активный пользователь

    С нами с:
    26 июл 2015
    Сообщения:
    5
    Симпатии:
    0
    У меня функция mail тоже не отправляла письма, только по SMTP заработало.