Описание
Почтовый аккаунт для получения входящих писем с типом POP3. При большом количестве писем на ящике (более 2000) наблюдается длительное получение писем.
Обходное решение
В качестве решения возможно настроить автоматическое удаление писем после прочтения или выполнять периодическую очистку ящика.
Выполняя удаление писем на ящике стоит учитывать, что это может привести к сбросу нумерации писем на экземпляре (нумерация новых писем на ящике с единицы).
Как следствие может начаться пересечение писем по номерам Mail ID с ранее забранными записями писем в sys_email.
В новые письма не будут создаваться в sys_email т.к. не они не будут уникальными (уникальность проверяется по sys_email.email_account.sys_id и sys_email.mail_id).
Если нумерация писем на ящике началась с единицы - необходимо очистить поле Mail ID для записей sys_email на экземпляре при помощи скрипта:
const email = new SimpleRecord('sys_email');
email.addQuery('direction', 'incoming');
email.addQuery('mail_id', 'isnotempty');
email.query();
ss.info(email.getRowCount());
email.setMultipleValue('mail_id', null);
email.updateMultiple();
Если удаление писем со сбросом нумерации будет выполняться периодически - необходимо создать скрипт по расписанию Schedule Script [sys_schedule_script],
запускаемый с той же периодичностью, для очищения Mail ID первых 5000 писем:
(function executeScheduleScript() {
const email = new SimpleRecord('sys_email');
email.addQuery('direction', 'incoming');
email.addQuery('mail_id', 'isnotempty');
email.orderBy('mail_id');
email.setLimit(5000);
email.query();
ss.info(email.getRowCount());
email.setMultipleValue('mail_id', null);
email.updateMultiple();
})()