На самом деле, может оказаться, все глобальнее, чем сканер почты…

Версия
7.1.0-201803

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

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

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

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

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

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

файл /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)

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