8.х Забеги с бубном вокруг почты. Как грамотно сделать?

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем andrenko, 10 сен 2010.

  1. TopicStarter Overlay
    andrenko
    Offline

    andrenko Опытный в 1С

    Регистрация:
    20 ноя 2008
    Сообщения:
    310
    Симпатии:
    0
    Баллы:
    26
    Имеется такоя вот задача...
    К нам поступает около 200-300 писем, содержащих приатачченные файлы (собственного говоря только эти файлы и интересуют). Необходимо эти письма вместе с аттачами получить, сохранить, затем обработать и удалить.

    Что уже имеется:
    - почтовый ящик скажем abcde@mail.ru
    - ИнтернетПочтовыйПрофиль
    - справочник письма, подчиненный ему аттачи (с реквизитом хранилище).

    вопросы:
    - как грамотно забрать почту и как аттачи загнать в хранилище.
    - при программном удалении аттачей, кооректно ли удаляются из хранилища размещенные там файлы?
  2. vlad123
    Offline

    vlad123

    Регистрация:
    10 сен 2010
    Сообщения:
    6
    Симпатии:
    0
    Баллы:
    1
    можно посмотреть как это сделано в типовой
    в ЗУП 2.5.26.3 справочник письма - Документ.ЭлектронноеПисьмо,
    аттачи - справочник.ВложенияЭлекторонныхПисем, с реквизитом хранилище
    работа с письмами идет через обработку ЭлектроннаяПочта,
    вызывается процедура общего модуля
    УправлениеЭлектроннойПочтой.ПолучениеОтправкаПисем(...
    в которой и происходит запись в документы ЭлектронноеПисьмо и справочник ВложенияЭлектронныхПисем
  3. TopicStarter Overlay
    andrenko
    Offline

    andrenko Опытный в 1С

    Регистрация:
    20 ноя 2008
    Сообщения:
    310
    Симпатии:
    0
    Баллы:
    26
    нет у меня типовой:(

    в общем почту я научился забирать:)

    а как аттачи сохранить? Еще интересует адрес отправителя, его имя, и время отправки.
  4. vlad123
    Offline

    vlad123

    Регистрация:
    10 сен 2010
    Сообщения:
    6
    Симпатии:
    0
    Баллы:
    1
    упрощенно так

    Код:
    Почта = Новый ИнтернетПочта;
    Профиль = Новый ИнтернетПочтовыйПрофиль;
    Профиль.АдресСервераPOP3 = "pop.mail.ru";
    Профиль.Пользователь = "******";
    Профиль.Пароль = "******";
    Почта.Подключиться(Профиль);
    МассивПисем = Почта.Выбрать(Ложь);
    Для Каждого ИнтернетПисьмо из МассивПисем Цикл
    Сообщить("Получено письмо с заголовоком: "+ИнтернетПисьмо.Тема);
    Письмо = Справочники.ЭлектронноеПисьмо.СоздатьЭлемент();
    Письмо.ИдентификаторПисьма = ИнтернетПисьмо.ИдентификаторСообщения;;
    Письмо.ДатаОтправления	= ИнтернетПисьмо.ДатаОтправления;
    Если ТипЗнч(ИнтернетПисьмо.Отправитель) = Тип("Строка") Тогда
    Письмо.ОтправительАдресЭлектроннойПочты = ИнтернетПисьмо.Отправитель;
    Иначе
    Письмо.ОтправительАдресЭлектроннойПочты = ИнтернетПисьмо.Отправитель.Адрес;
    КонецЕсли;
    Письмо.ОтправительИмя = ИнтернетПисьмо.ИмяОтправителя;
    
    Если ИнтернетПисьмо.Вложения.Количество() > 0 Тогда
    Письмо.Записать();
    Для каждого Вложение Из ИнтернетПисьмо.Вложения Цикл
    Если Вложение.Данные = Неопределено Тогда
    Продолжить;
    КонецЕсли;
    НовоеВложение = Справочники.Аттачи.СоздатьЭлемент();
    НовоеВложение.ИДФайлаПочтовогоПисьма = Вложение.Идентификатор;
    Если ТипЗнч(Вложение.Данные) = Тип("ИнтернетПочтовоеСообщение") Тогда
    НовоеВложение.ИмяФайла = ?(ПустаяСтрока(Вложение.Имя), (ИнтернетПисьмо.ИдентификаторСообщения), Вложение.Имя) + ".msg";
    Иначе
    НовоеВложение.ИмяФайла = Вложение.Имя;
    КонецЕсли;
    НовоеВложение.Владелец    = Письмо.Ссылка;
    НовоеВложение.Хранилище = Новый ХранилищеЗначения(Вложение.Данные, Новый СжатиеДанных());
    НовоеВложение.Записать();
    КонецЦикла;
    КонецЕсли;
    КонецЦикла;
    
    
    
  5. TopicStarter Overlay
    andrenko
    Offline

    andrenko Опытный в 1С

    Регистрация:
    20 ноя 2008
    Сообщения:
    310
    Симпатии:
    0
    Баллы:
    26
    Спасибо!

Поделиться этой страницей