Разберем распространенную и неприятную ситуацию: при настройке почтовой учетной записи в 1С платформа скачивает весь архив писем во внутреннюю базу и автоматически удаляет их с почтового сервера. Выясним причину такого поведения системы и рассмотрим по шагам, как полностью восстановить почтовый архив с сохранением оригинальных дат и отправителей.
Проанализируем, почему 1С удаляет входящую почту. Причиной становится использование протокола POP3 в настройках почтового ящика без установленного флага сохранения копий на сервере. По умолчанию протокол POP3 скачивает электронные письма в базу данных 1С и отправляет серверу команду на их удаление. В отличие от него, протокол IMAP выполняет двухстороннюю синхронизацию и не удаляет письма без прямого указания пользователя.
Рассмотрим вариант переотправки писем через SMTP средствами 1С (создавая документ ЭлектронноеПисьмоИсходящее). Такой подход имеет два ключевых ограничения:
Посмотрим, как выгрузить входящую почту обратно на диск. В конфигурациях на базе 1С:Библиотеки Стандартных Подсистем (например, 1С:Управление торговлей 11) входящие сообщения хранятся в документах ЭлектронноеПисьмоВходящее.
Для каждого документа мы можем сформировать объект ИнтернетПочтовоеСообщение и получить его исходный двоичный код формата MIME/EML с помощью метода ПолучитьИсходныеДанные().
Рассмотрим пример кода обработки в 1С для выгрузки писем в файлы EML:
Выборка = Документы.ЭлектронноеПисьмоВходящее.Выбрать();
Пока Выборка.Следующий() Цикл
ОбъектПисьмо = Выборка.ПолучитьОбъект();
// Формируем интернет-почтовое сообщение из документа 1С
ПочтовоеСообщение = РаботаСПочтойВызовСервера.СоздатьИнтернетПочтовоеСообщениеИзДокумента(ОбъектПисьмо);
// Получаем сырые двоичные данные письма в формате EML
ДвоичныеДанные = ПочтовоеСообщение.ПолучитьИсходныеДанные();
// Сохраняем файл на диск
ИмяФайла = "C:\EmailExport\letter_" + Формат(ОбъектПисьмо.Дата, "ДФ=yyyyMMdd_HHmmss") + ".eml";
ДвоичныеДанные.Записать(ИмяФайла);
КонецЦикла;
Обратите внимание: перед запуском любых групповых обработок обязательно создайте резервную копию базы данных 1С.
Разберем по шагам процесс загрузки файлов .eml обратно на почтовый сервер с сохранением всех заголовков, вложений и исходных дат:
.eml из папки на диске в нужную папку почтового ящика в почтовом клиенте.Проанализируем настройки почты в 1С. Чтобы предотвратить повторение этой ситуации, перейдем в раздел НСИ и администрирование > Органайзер > Почта и выполним настройки: