Menu ▾ ▴

#154 Сканер почты (MailConverter): не добавляется ящик

7.1.0-201803
open
nobody
None
2019-03-31
2019-03-31
Roman
No

Версия: 7.1.0-201803
Модуль: Сканер почты
Нахождение: Главная > Другие настройки > Сканер почты

Создание (Добавление) нового почтого ящика – Шаг 1 – «Детали»
URL: index.php?module=MailConverter&parent=Settings&view=Edit&mode=step1&create=new

При нажатии на кнопку «Следующий» происходит переход на страницу Шаг 2 – «Выбор папки»
Появляется сообщение

«Подключение к почтовому ящику не удалось. Проверьте сетевое подключение и повторите попытку.»

При этом, на странице Шаг1,
происходит первая проверка соединения,
и если не удается соединиться с почтовым сервером
то появляется всплывающее сообщение об этом.
Если доходит до шага 2, то проверка соединения прошла успешно.

Покопавшись основательно в коде, выявил:

ПЕРВОЕ:
Кликаем по кнопке «Следующий»
отсылается запрос на сервер с данными указанными в форме

файл /modules/Settings/MailConverter/handler/MailScannerInfo.php
function update($otherInstance) { …
у меня на строчке 357, выполняется SQL запрос INSERT
используя метод pquery класса PearDatabase (/include/database/PearDatabase.php)
следом после запроса
узнается id новой записи,
КОТОРОЕ ВСЕГДА = 0 (нулю)

$adb->pquery(«INSERT INTO vtiger_mailscanner(scannername,…
…
$this->scannerid = $adb->database->Insert_ID();

заглянув в PearDatabase.php
function pquery($sql, $params=array(), $dieOnError=false, $msg=») {…

видно, что после выполнения запроса, команды Execute,
вызывается logSqlTiming этого же класса,
в которой так же выполняются sql ЗАПРОСЫ!!!

$result = $this->database->Execute($sql…
…
$this->logSqlTiming($sql_start_time, …

Получается, что Insert_ID после pquery
возвращает id запроса выполняемого в logSqlTiming,
который постоянно равен НУЛЮ !!!

ID новой записи необходимо для выполнения шага 2.
На шаге 2, идет соединение с почтовым ящиком с полученным id=0
выводиться сообщение о невозможности соединиться с почтовым сервером

ВТОРОЕ:
Указанный, на шаге 1, пароль к электронному ящику,
шифруется и только потом записывается в базу
после шифрования
длина пароля увеличивается во много раз

я использую пароли длинной более 20 символов
шифрованный пароль получился длинной более 255 символов

поле в таблице для пароля VARCHAR (255)
то есть до 255 символов

мой шифрованный пароль обрезается до 255 символов,
и в дальнейшем при считывании оказывается не правильным…

Возможно, нужно
или> ввести ограничение на длину пароля (или хотя бы предупреждение выдавать)
или> увеличить поле в таблице, например VARCHAR(500)

С уважением, Роман!

Discussion