Добрый день.

Имеется почтовый ящик(IMAP) с огромным массивом писем и папок, большим количеством настроенных фильтров.
В отправленных стали не корректно открываться письма, т.е. видим один заголовок, а открывается совершенно другое письмо, такое не со всеми письмами, выборочно. Так же такое происходит иногда в полученных ранее письмах, еще бывает, что счётчик новых непрочитанных писем в некоторых папках не отображается, пока не зайдешь в эту папку. Проблема только при работе через клиент, длится уже более года, клиент тоже много раз уже обновился. Данная проблема воспроизводится и на других ПК, когда заходишь под этой же УЗ.  В браузере подобных проблем не наблюдается. Может кто сталкивался с подобным?

Письма на каком языке?


Я сталкивался с несколько похожим. Там письма были на английском, и из-за этого в некоторых из них тексты вступали в противоречие с форматом того файла, в котором клиент письма хранит. В результате сбивалась индексация файла, и начинало страдать открывание и этих писем, и лежащих в файле после них.

yup пишет

Письма на каком языке?


Я сталкивался с несколько похожим. Там письма были на английском, и из-за этого в некоторых из них тексты вступали в противоречие с форматом того файла, в котором клиент письма хранит. В результате сбивалась индексация файла, и начинало страдать открывание и этих писем, и лежащих в файле после них.

Добрый день.

Письма на разных языках в разных папках, в каких-то папках проблемы есть, в каких-то нет. Но там огромные массивы писем в целом, думаю все эти проблемы связаны с тем. что клиент просто не справляется с таким объёмом писем. так же у пользователя иногда пропадает из письма вставленная таблица при пересылке, т.е. таблицы нет у получателя письма. Так же иногда после отправки сообщений возникает уведомление, что письмо отправлено, но в папку "отправленные" оно не скопировано. Если на папке нажимать "Свойства", а затем "починить папку", то счётчик непрочитанных начинает отображаться, но через некоторое время снова приходится тоже самое делать.  Если есть ещё предположения, то буду рад информации.

Thunderbird может хранить письма почтового ящика в одном из двух форматов: "каждая папка в отдельном файле" или "каждое письмо в отдельном файле". Задаётся это в настройках почтового ящика при его создании. По умолчанию - файл на папку. А формат этого файла тупой до безобразия: файл текстовый и все письма лежат в нём подряд, без каких-либо специальных разделителей, одно письмо от другого отделяется лишь пустой строкой. То есть, файл получается устроенным так: заголовок первого письма, тело первого письма, пустая строка, заголовок второго письма, тело второго письма, пустая строка, заголовок третьего письма и т.д.


Рядом с этим файлом лежит ещё один - индексный. Вот он очень (просто нечеловечески) сложно устроен, но зато содержит указания, где именно в главном файле лежит то или иное письмо.


Иногда эти указатели сбиваются и начинают указывать не туда.


А процедура ремонта папки (т.е. создания нового индексного файла) тоже проста до безобразия - она использует только тот факт, что между письмами имеется пустая строка, а первая строка заголовка каждого письма начинается с From. Во время ремонта в файле ищутся такие места и все найденные считаются началом очередного письма.


Но ведь пустые строки в письмах встречаются сплошь и рядом. И строка текста, начинающаяся с From, вполне может встретиться (особенно в англоязычных письмах). А в результате после "ремонта" поломанным окажется то, что было исправным до него.


Я бы предложил попробовать другой формат почтового ящика и посмотреть, что из этого получится.


К сожалению, поменять формат у имеющегося ящика нельзя, он задаётся только при создании ящика. Но можно в программе тут же рядом создать новый ящик, а у имеющегося отключить все варианты автоматического соединения с сервером.

yup пишет

Я бы предложил попробовать другой формат почтового ящика и посмотреть, что из этого получится.
К сожалению, поменять формат у имеющегося ящика нельзя, он задаётся только при создании ящика. Но можно в программе тут же рядом создать новый ящик, а у имеющегося отключить все варианты автоматического соединения с сервером.

Смена ящика думаю не вариант, так как у человека там писем за 15+ лет работы, огромное количество папок и фильтров.

Alexey_1988 пишет

Смена ящика думаю не вариант, так как у человека там писем за 15+ лет работы

Так я же не почтовый адрес поменять предложил, а создать в программе ещё один ящик для того же адреса. А чтобы новый и старый одновременно за одними и теми же письмами не лазили и другу другу не мешали - отключить автоматическое забирание писем старым.


огромное количество папок и фильтров.

"По условиям задачи" почтовый сервер - IMAP. Значит, все созданные пользователем папки имеются на нём, и при создании нового ящика структура этих папок воспроизведётся автоматически.


Про перенос фильтров только ничего сказать не могу. У меня всегда почта хранилась в формате по умолчанию - "файл на папку". В этом случае фильтры хранятся в файле msgFilterRules.dat и переносятся простым копированием. А куда программа их засовывает при формате "файл на письмо" я не знаю. Но предполагаю, что туда же.


Впрочем, это же предложено только как эксперимент - посмотреть, что получится.
Да и пользоваться двумя ящиками (старым и новым) одновременно ничто не мешает. Когда фильтр старого ящика переместит письмо в другую папку, это тут же отобразится в новом ящике.

У меня всегда почта хранилась в формате по умолчанию - "файл на папку".

А где выставлять этот пункт "Файл на папку"? В приложении  выбираю подключение новой УЗ, там логин, пароль, доп. настройки, в которых я указываю адреса IMAP и SMTP серверов и порты, больше настроек там нет.

Alexey_1988 пишет

В приложении  выбираю подключение новой УЗ, там логин, пароль, доп. настройки, в которых я указываю адреса IMAP и SMTP серверов и порты, больше настроек там нет.

Да. И это меня всю дорогу удивляет - настройку, которую можно задать только один раз в жизни, невозможно задать во время вышеописанного процесса.


Чтобы до этого переключателя добраться, нужно сразу после создания УЗ (до первого соединения с сервером!) зайти в настройки этой УЗ, и там в разделе "Параметры сервера" внизу есть выбор "Тип хранилища сообщений".
(Название может быть чуть другим (у меня не Thunderbird, а Seamonkey), но в любом случае по тексту догадаться легко.)

Чтобы до этого переключателя добраться, нужно сразу после создания УЗ (до первого соединения с сервером!) зайти в настройки этой УЗ, и там в разделе "Параметры сервера" внизу есть выбор "Тип хранилища сообщений".
(Название может быть чуть другим (у меня не Thunderbird, а Seamonkey), но в любом случае по тексту догадаться легко.)

Проверил, у человека именно так и настроено "Каждая папка в отдельном файле". А как подключить эту же учетку человеку еще раз? мне тандербёрд говорит, что такой уже существует и не дает ничего делать.

Alexey_1988 пишет

А как подключить эту же учетку человеку еще раз? мне тандербёрд говорит, что такой уже существует и не дает ничего делать.

У меня в цепочке окошек, которая показывается в процессе создания новой учётки, есть одна, где нужно ввести имя почтового сервера и имя пользователя на нём.


Если я там введу те, которые уже используются в существующей учётке, то дальше меня не пускает.
Но если что-либо из этого ввести отличающимся, то учётка создаётся. А дальше можно зайти в настройки учёток, что-то изменить в старой, а в новой вписать правильно.


Или можно вместо имени сервера вписать его IP-адрес.


(Мне во время некоторых прошлых экспериментов было проще - я с одним и тем же ящиком работал одновременно двумя программами - Seamonkey и его клоном Iceape. У TB тоже клон есть - Icedove.)

yup пишет
Alexey_1988 пишет

А как подключить эту же учетку человеку еще раз? мне тандербёрд говорит, что такой уже существует и не дает ничего делать.

У меня в цепочке окошек, которая показывается в процессе создания новой учётки, есть одна, где нужно ввести имя почтового сервера и имя пользователя на нём.


Если я там введу те, которые уже используются в существующей учётке, то дальше меня не пускает.
Но если что-либо из этого ввести отличающимся, то учётка создаётся. А дальше можно зайти в настройки учёток, что-то изменить в старой, а в новой вписать правильно.


Или можно вместо имени сервера вписать его IP-адрес.


(Мне во время некоторых прошлых экспериментов было проще - я с одним и тем же ящиком работал одновременно двумя программами - Seamonkey и его клоном Iceape. У TB тоже клон есть - Icedove.)

Понял, спасибо, буду пробовать.