За последние 24 часа нас посетили 22660 программистов и 1012 роботов. Сейчас ищут 716 программистов ...

Ошибка при отправки почты

Тема в разделе "Работа с почтой", создана пользователем tretstoun, 20 май 2017.

Метки:
  1. tretstoun

    tretstoun Новичок

    С нами с:
    3 окт 2016
    Сообщения:
    58
    Симпатии:
    3
    Здравствуйте,

    написал на php скрипт в котором есть функция отправки письма. Задействую библиотеку phpMailer. После переноса на хостинг письма не отправляются. На локальном веб-сервере всё работает правильно. В чём может быть ошибка?

    PHP:
    1. <?php
    2. // Файл с настройками (config.php)
    3.  
    4. // Настройки Email
    5. $site = array("from_name" => "Администратор", // from (от) имя
    6. "from_email" => "abc@mail.ru", // from (от) email адрес
    7. // На всякий случай нужно указать настройки
    8. // для дополнительного (внешнего) SMTP сервера.
    9. "smtp_mode" => "enabled", // enabled or disabled (включен или выключен)
    10. "smtp_host" => "smtp.mail.ru",
    11. "smtp_port" => 465,
    12. "smtp_username" => "abcd@mail.ru",
    13. "smtp_password" => "12345");
    14.  
    15. $smtp = array(
    16.     "host" => "smtp.mail.ru",                  //smtp сервер
    17.     "debug" => 0,                              //отображение информации дебаггера (0 - нет вообще)
    18.     "auth" => true,                            //сервер требует авторизации
    19.     "port" => 465,                             //порт (по-умолчанию - 25)
    20.     "username" => "abcd@mail.ru",     //имя пользователя на сервере
    21.     "password" => "12345",                 //пароль
    22.     "addreply" => abcd@mail.ru",     //ваш е-mail
    23.    "replyto"  => "abcd@mail.ru",    //e-mail ответа
    24.    "from_name" => "Администратор"
    25. );
    26. ?>
    27.  
    28. function smtpmail($to, $subject, $content, $attach=false)
    29.     {
    30. require_once('config.php');                                                      
    31. require_once('PHPMailer/class.phpmailer.php');
    32.  
    33. $mail = new PHPMailer(true);
    34. $mail->IsSMTP();
    35.  
    36. try {
    37.   $mail->Host       = $smtp['host'];
    38.   $mail->SMTPDebug  = $smtp['debug'];
    39.   $mail->SMTPAuth   = $smtp['auth'];
    40.   $mail->Port       = $smtp['port'];
    41.   $mail->Username   = $smtp['username'];
    42.   $mail->Password   = $smtp['password'];
    43.   $mail->SMTPSecure = 'ssl';
    44.   $mail->CharSet = 'utf-8';
    45.   $mail->AddAddress($to);                            
    46.   $mail->SetFrom($smtp['addreply'], $smtp['from_name']);
    47.   $mail->AddReplyTo($smtp['addreply'], $smtp['from_name']);
    48.   $mail->Subject = htmlspecialchars($subject);
    49.   $mail->MsgHTML($content);
    50.   $mail->Send();
    51. } catch (phpmailerException $e) {
    52.   $error = $e->errorMessage();
    53.   include 'error.html.php';
    54. } catch (Exception $e) {
    55.   $error = $e->getMessage();
    56.   include 'error.html.php';
    57.   exit();
    58. }
    59. }
    60.  
    61. smtpmail("abcd@gmail.com", "Новый комментарий", "Получен новый комментарий: <br> <br>" . $message);
    Ошибок никаких не появляется - просто пустой экран.
     
  2. denis01

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

    С нами с:
    9 дек 2014
    Сообщения:
    12.230
    Симпатии:
    1.715
    Адрес:
    Молдова, г.Кишинёв
    что возвращает вызов $mail->send() ?
     
  3. tretstoun

    tretstoun Новичок

    С нами с:
    3 окт 2016
    Сообщения:
    58
    Симпатии:
    3
    А как это можно узнать?

    Я попробовал записать результат в переменную и напечатать на экране, но появляется белый экран, видимо ещё до вызова функции где-то блокируется скрипт.
     
  4. denis01

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

    С нами с:
    9 дек 2014
    Сообщения:
    12.230
    Симпатии:
    1.715
    Адрес:
    Молдова, г.Кишинёв
    tretstoun нравится это.
  5. tretstoun

    tretstoun Новичок

    С нами с:
    3 окт 2016
    Сообщения:
    58
    Симпатии:
    3
    Появилось:

    отладка:bool(true) . Ошибка была в том, что компьютер искал подключаемый класс в другой папке. Непонятно почему, видимо где-то есть ещё одно подключение. Сейчас всё работает, спасибо.

    За адреса спасибо, почитаю как отлаживать php скрипты.
     
    denis01 нравится это.