Иконка ресурса

Fruit-Farm Отправка оповещений и рассылка через сервер SMTP для скриптов Фруктовых Ферм 1.0

Нет прав для скачивания

pligin

Команда форума
Администратор
Пользователь admin разместил новый ресурс:

Отправка оповещений и рассылка через сервер SMTP для скриптов Фруктовых Ферм - Отправка оповещений и рассылка через сервер SMTP для скриптов Фруктовых Ферм

Отправка оповещений и рассылка через сервер SMTP для скриптов Фруктовых Ферм.
Модуль полностью заменяет отправку писем через mail() в скриптах Фруктовых Ферм.
Прост в установке:
- загрузить содержание архива на хост;
- добавить в файл /classes/_class.config.php данные из инструкции;
- изменить вызов функции отправки в файлах, в которых происходит отправка сообщений
Узнать больше об этом ресурсе...
 

Nikit_OS

Участник

pligin

Команда форума
Администратор
используется почта Яндекс
ничего сам не менял?
нужно только в /classes/_class.config.php добавить
PHP:
public $SMTP_HOST = 'ssl://smtp.yandex.ru'; // SMTP сервер. Например ssl://smtp.yandex.ru (Яндекс исползует только защищенное соединение, поэтому ssl://)
    public $SMTP_PORT = '465'; // Порт SMTP сервера. Для яндекса 465
    public $SMTP_USER = 'noreply@youdomain.com'; // Имя пользователя для авторизации. Обычно это адрес Вашего почтового ящика
    public $SMTP_PASS = 'PASSWORD'; // Пароль Вашего почтового ящика
    public $SMTP_FROM = 'noreply@youdomain.com'; // Информация для заголовка письма "От кого".
    public $SMTP_PROJECT = 'PSWeb.ru'; Название проекта. Например PSWeb.ru
    public $SMTP_CHARSET = 'utf-8'; // Кодировка, в которой отправляются письма. Желательно не менять
    public $SMTP_COUNT = '5'; // Количество писем, которое отправляется скриптом за один заход (ограничение Яндекса 3000 сообщений в сутки с одного ящика)
проверь данные

Кстати откуда пытаешься пользоваться яндексом? Какой хостинг или сервер? Подключена ли ПДД Яндекса?
 

voodooas

Участник
Приветствую, подскажи что не так, подключен модуль отправки писем, через СМТП
Все работает, но если включен лог ошибок, то при каждой отправке ругается на выделенную строку:

Deprecated: Non-static method template::mail() should not be called statically, assuming $this from incompatible context in

function __construct($config){
$this->config = $config;
$this->EMAIL_SUPPORT = $this->config->EMAIL_SUPPORT;
$this->URL_PROJECT = $this->config->URL_PROJECT;
$this->TITLE_PROJECT = $this->config->TITLE_PROJECT;
$this->FB_PROJECT = $this->config->FB_PROJECT;
$this->TWITTER_PROJECT = $this->config->TWITTER_PROJECT;
$this->VK_PROJECT = $this->config->VK_PROJECT;
$this->YT_PROJECT = $this->config->YT_PROJECT;
$this->SMTP_HOST = $this->config->SMTP_HOST;
$this->SMTP_PORT = $this->config->SMTP_PORT;
$this->SMTP_USER = $this->config->SMTP_USER;
$this->SMTP_PASS = $this->config->SMTP_PASS;
$this->SMTP_FROM = $this->config->SMTP_FROM;
$this->TEMPLATE = template::mail();
$this->EMOJI = $this->config->EMOJI;
$this->Hosts = str_replace("www.","",$_SERVER['HTTP_HOST']);
}

Как исправить?
 

pligin

Команда форума
Администратор
Приветствую, подскажи что не так, подключен модуль отправки писем, через СМТП
Все работает, но если включен лог ошибок, то при каждой отправке ругается на выделенную строку:

Deprecated: Non-static method template::mail() should not be called statically, assuming $this from incompatible context in

function __construct($config){
$this->config = $config;
$this->EMAIL_SUPPORT = $this->config->EMAIL_SUPPORT;
$this->URL_PROJECT = $this->config->URL_PROJECT;
$this->TITLE_PROJECT = $this->config->TITLE_PROJECT;
$this->FB_PROJECT = $this->config->FB_PROJECT;
$this->TWITTER_PROJECT = $this->config->TWITTER_PROJECT;
$this->VK_PROJECT = $this->config->VK_PROJECT;
$this->YT_PROJECT = $this->config->YT_PROJECT;
$this->SMTP_HOST = $this->config->SMTP_HOST;
$this->SMTP_PORT = $this->config->SMTP_PORT;
$this->SMTP_USER = $this->config->SMTP_USER;
$this->SMTP_PASS = $this->config->SMTP_PASS;
$this->SMTP_FROM = $this->config->SMTP_FROM;
$this->TEMPLATE = template::mail();
$this->EMOJI = $this->config->EMOJI;
$this->Hosts = str_replace("www.","",$_SERVER['HTTP_HOST']);
}

Как исправить?
Метод mail не является статическим.
Нужно изменить на public static mail
 

pligin

Команда форума
Администратор
Приветствую, подскажи что не так, подключен модуль отправки писем, через СМТП
Все работает, но если включен лог ошибок, то при каждой отправке ругается на выделенную строку:

Deprecated: Non-static method template::mail() should not be called statically, assuming $this from incompatible context in

function __construct($config){
$this->config = $config;
$this->EMAIL_SUPPORT = $this->config->EMAIL_SUPPORT;
$this->URL_PROJECT = $this->config->URL_PROJECT;
$this->TITLE_PROJECT = $this->config->TITLE_PROJECT;
$this->FB_PROJECT = $this->config->FB_PROJECT;
$this->TWITTER_PROJECT = $this->config->TWITTER_PROJECT;
$this->VK_PROJECT = $this->config->VK_PROJECT;
$this->YT_PROJECT = $this->config->YT_PROJECT;
$this->SMTP_HOST = $this->config->SMTP_HOST;
$this->SMTP_PORT = $this->config->SMTP_PORT;
$this->SMTP_USER = $this->config->SMTP_USER;
$this->SMTP_PASS = $this->config->SMTP_PASS;
$this->SMTP_FROM = $this->config->SMTP_FROM;
$this->TEMPLATE = template::mail();
$this->EMOJI = $this->config->EMOJI;
$this->Hosts = str_replace("www.","",$_SERVER['HTTP_HOST']);
}

Как исправить?
В каком это скрипте и откуда он взят?
 

voodooas

Участник
Нашел в файле class.template
Заменил
public function mail(){
на
public static function mail(){
Помогло. Спасибо
 

voodooas

Участник
Продолжение по СМТП
Есть два сайта, размещены на одном сервере (домены укажу для примера)
1. тестовый test1.ru (без ССЛ), на котором подключена почта support@test1.ru
отправка работает как на 465 так и на 587 порту.
Решил подключить СМПТ на другой рабочий сайт test2.ru который уже с ССЛ - admin@test2.ru
Скопировал фалы _class.smtp.php и _class.template.php внес данные в конфиг.
Но всевозможные танцы с бубном не дают положительного эффекта.
Пробовал указывать в конфиге первого сайта test1.ru почту и пароль от admin@test2.ru
Также пробовал обе почты подключать на втором сайте test2.ru
В конфиге указывал
HOST mail.test2.ru / smtp.test2.ru / test2.ru / прямой адрес сервера (все это как с ssl:// и без него)
PORT 587 и 465

При запуске - ошибка Socket is not created

Что может быть не так? Может влиять ССЛ?
Может где-то должно еще быть что-то прописано.
Почему почта со второго не подключается к первому (находятся на одном сервере).
В общем буду благодарен за любую наводку на решение проблемы...
 

pligin

Команда форума
Администратор
Продолжение по СМТП
Есть два сайта, размещены на одном сервере (домены укажу для примера)
1. тестовый test1.ru (без ССЛ), на котором подключена почта support@test1.ru
отправка работает как на 465 так и на 587 порту.
Решил подключить СМПТ на другой рабочий сайт test2.ru который уже с ССЛ - admin@test2.ru
Скопировал фалы _class.smtp.php и _class.template.php внес данные в конфиг.
Но всевозможные танцы с бубном не дают положительного эффекта.
Пробовал указывать в конфиге первого сайта test1.ru почту и пароль от admin@test2.ru
Также пробовал обе почты подключать на втором сайте test2.ru
В конфиге указывал
HOST mail.test2.ru / smtp.test2.ru / test2.ru / прямой адрес сервера (все это как с ssl:// и без него)
PORT 587 и 465

При запуске - ошибка Socket is not created

Что может быть не так? Может влиять ССЛ?
Может где-то должно еще быть что-то прописано.
Почему почта со второго не подключается к первому (находятся на одном сервере).
В общем буду благодарен за любую наводку на решение проблемы...
попробуй это
PHP:
$sock = fsockopen($this->config->SMTP_HOST, $this->config->SMTP_PORT, $errno, $errstr, 30);
        $str = fgets($sock, 512);

        if (!$sock) {
            printf("Socket is not created\n");
            exit(1);
        }
заменить на это
PHP:
$streamContext = stream_context_create([
            'ssl' => [
              'verify_peer'      => false,
              'verify_peer_name' => false
            ]
        ]);

        $sock = stream_socket_client($this->SMTP_HOST.':'.$this->SMTP_PORT,
            $errno,
            $errstr,
            30,
            STREAM_CLIENT_CONNECT,
            $streamContext);
            
        if (!$sock) {
            printf("Socket is not created\n");
            exit(1);
        }
 

voodooas

Участник
Где-то моя криворукость была виной, зацепил где-то код, и в СМПТ не передавались данные из конфиг файла.
Хотя и было прописано так $sender = new smtp($config);
Целый день продолбался.
После позаменял заново файлы СМТП, ТЕМПЛЕС, кусок кода в КОНФИГе заново прописал параметры почты.
Вуаля, заработало.. на обеих доменах.
 
Верх