1. Важное и срочное обновление IPB 3.4.5 - https://nulled.cc/threads/243375/

[Помощь] IPB 3.4.9 SMTP

Тема в разделе "IPB", создана пользователем Ardis, 20 июл 2017.

Модераторы: Maybe
  1. Ardis

    Ardis

    Регистр.:
    26 мар 2008
    Сообщения:
    211
    Симпатии:
    41
    В общем имеем:
    Centos 6.9, на нем стоит IPB 3.4.9
    тест скрипт:

    PHP:
    <?php

    $login 
    'test@domain.tld'// замените test@domain.tld на адрес электронной почты, с которого производится отправка. Поскольку логин совпадает с адресом отправителя - данная переменная используется и как логин, и как адрес отправителя. 

    $password 'password';  // Замените 'password' на пароль от почтового ящика, с которого производится отправка.
    $to 'to@domain.tld';  // замените to@domain.tld на адрес электронной почты получателя письма.
    $text="Привет, проверка связи по SMTP.";  // Содержимое отправляемого письма
    function get_data($smtp_conn)  // функция получения кода ответа сервера. 
    {
    $data="";
    while(
    $str fgets($smtp_conn,515)) 
    {
    $data .= $str;
    if(
    substr($str,3,1) == " ") { break; }
    }
    return 
    $data;
    }
    // формируем служебный заголовок письма.
    $header="Date: ".date("D, j M Y G:i:s")." +0700\r\n"
    $header.="From: =?UTF-8?Q?".str_replace("+","_",str_replace("%","=",urlencode('Тестовый скрипт')))."?= <$login>\r\n"
    $header.="X-Mailer: Test script hosting Ukraine.com.ua \r\n"
    $header.="Reply-To: =?UTF-8?Q?".str_replace("+","_",str_replace("%","=",urlencode('Тестовый скрипт')))."?= <$login>\r\n";
    $header.="X-Priority: 3 (Normal)\r\n";
    $header.="Message-ID: <12345654321.".date("YmjHis")."@ukraine.com.ua>\r\n";
    $header.="To: =?UTF-8?Q?".str_replace("+","_",str_replace("%","=",urlencode('Получателю тестового письма')))."?= <$to\r\n";
    $header.="Subject: =?UTF-8?Q?".str_replace("+","_",str_replace("%","=",urlencode('проверка')))."?=\r\n";
    $header.="MIME-Version: 1.0\r\n";
    $header.="Content-Type: text/plain; charset=UTF-8\r\n";
    $header.="Content-Transfer-Encoding: 8bit\r\n";
    $smtp_conn fsockopen("mail.ukraine.com.ua"25,$errno$errstr10); //соединяемся с почтовым сервером mail.ukraine.com.ua , порт 25 .
    if(!$smtp_conn) {print "соединение с серверов не прошло"fclose($smtp_conn); exit;}  
    $data get_data($smtp_conn);
    fputs($smtp_conn,"EHLO mail.ukraine.com.ua\r\n"); // начинаем приветствие.
    $code substr(get_data($smtp_conn),0,3); // проверяем, не возвратил ли сервер ошибку.
    if($code != 250) {print "ошибка приветсвия EHLO"fclose($smtp_conn); exit;}
    fputs($smtp_conn,"AUTH LOGIN\r\n"); // начинаем процедуру авторизации.
    $code substr(get_data($smtp_conn),0,3);
    if(
    $code != 334) {print "сервер не разрешил начать авторизацию"fclose($smtp_conn); exit;}

    fputs($smtp_conn,base64_encode("$login")."\r\n"); // отправляем серверу логин от почтового ящика (на хостинге "Украина" он совпадает с именем почтового ящика).
    $code substr(get_data($smtp_conn),0,3);
    if(
    $code != 334) {print "ошибка доступа к такому юзеру"fclose($smtp_conn); exit;}

    fputs($smtp_conn,base64_encode("$password")."\r\n");       // отправляем серверу пароль.
    $code substr(get_data($smtp_conn),0,3);                
    if(
    $code != 235) {print "неправильный пароль"fclose($smtp_conn); exit;}

    fputs($smtp_conn,"MAIL FROM:$login\r\n"); // отправляем серверу значение MAIL FROM.
    $code substr(get_data($smtp_conn),0,3);
    if(
    $code != 250) {print "сервер отказал в команде MAIL FROM"fclose($smtp_conn); exit;}

    fputs($smtp_conn,"RCPT TO:$to\r\n"); // отправляем серверу адрес получателя.
    $code substr(get_data($smtp_conn),0,3);
    if(
    $code != 250 AND $code != 251) {print "Сервер не принял команду RCPT TO"fclose($smtp_conn); exit;}

    fputs($smtp_conn,"DATA\r\n"); // отправляем команду DATA.
    $code substr(get_data($smtp_conn),0,3);
    if(
    $code != 354) {print "сервер не принял DATA"fclose($smtp_conn); exit;}

    fputs($smtp_conn,$header."\r\n".$text."\r\n.\r\n"); // отправляем тело письма.
    $code substr(get_data($smtp_conn),0,3);
    if(
    $code != 250) {print "ошибка отправки письма"fclose($smtp_conn); exit;}

    if(
    $code == 250) {print "Письмо отправлено успешно. Ответ сервера $code"  ;}

    fputs($smtp_conn,"QUIT\r\n");   // завершаем отправку командой QUIT.
    fclose($smtp_conn); // закрываем соединение.
    ?>
    Письмо отправлено успешно. Ответ сервера 250

    А вот с форума ни каким методом не получается отправить тест письмо. долго грузит и выдает Could not connect to the SMTP server



    Есть у кого мысли как исправить?