Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
29 мар 2024, 11:09

Сохранение почтовых вложений средством 1с

Автор mashencev_anton, 28 дек 2015, 17:30

0 Пользователей и 1 гость просматривают эту тему.

mashencev_anton

Здравствуйте. нужно написать обработку которая будет собирать и сохранять на комп вложения с почты. Немного разобрался как это сделать, но появился вопрос: как обрабатывать только не прочитанные и с вложениями сообщения. вот что я сейчас имею:
&НаСервере
Процедура ПолучитьНаСервере()
    Профиль=Новый ИнтернетПочтовыйПрофиль;
    Профиль.АдресСервераIMAP = Объект.IMAPСервер;
    Профиль.ПользовательIMAP=Объект.Логин;
    Профиль.ПарольIMAP=Объект.Пароль;   
    Профиль.АдресСервераSMTP = Объект.АдресSMTPСервера;
    Профиль.Таймаут = Объект.ВремяОжиданияСервера;
    Профиль.Пароль           = Объект.Пароль;
    Профиль.Пользователь     = Объект.Логин;
    Профиль.ПортIMAP         = Объект.ПортPOP3;
    Профиль.ПортSMTP         = Объект.ПортSMTP;
    Профиль.ИспользоватьSSLSMTP=Истина;
    Профиль.ИспользоватьSSLIMAP=Истина;
   
   
   
    ИнтернетПочта = Новый ИнтернетПочта;
   
    Попытка
        ИнтернетПочта.Подключиться(Профиль,ПротоколИнтернетПочты.IMAP);
    Исключение
        Сообщить(ОписаниеОшибки());
        Сообщить("Произошли ошибки при проверке настроек учетной записи.
        |Описание ошибки приведено в окне сообщения.");
        Возврат;
    КонецПопытки;
   
    //Выбираем все  письма в массив
    МассивСообщений = Новый Массив;
    МассивСообщений = ИнтернетПочта.Выбрать(Истина);             
   
    //Разбираем каждое письмо, и выполняем необходимые действия
    Для Каждого Письмо Из МассивСообщений Цикл
       
        //Получение вложений в писье
        Вложения = Письмо.Вложения;
        Тема      =  Письмо.Тема;
        Тексты      =  Письмо.Тексты;
       
        Попытка
            Для каждого Вложение Из Письмо.Вложения
                Цикл
                Вложение.Данные.Записать("C:\Users\......\Desktop\ДляФайлов\"+Вложение.ИмяФайла+".xls");
                Сообщить("Вложения успешно сохранены...");
            КонецЦикла;
        Исключение
            Сообщить("Ошибка сохранения вложений!");
        КонецПопытки;
       
    КонецЦикла;                   
   
    ИнтернетПочта.Отключиться();
КонецПроцедуры


при таком раскладе соответственно обрабатываются все сообщения и ранее просмотренные тоже. может есть какое-то свойство у самого письма??

Rasty

ИнтернетПочта (InternetMail)
Выбрать (Get)
Синтаксис:

Выбрать(<УдалятьСообщения>, <МассивЗаголовковСообщенийИлиИдентификаторов>, <ОтмечатьКакПрочтенные>)
Параметры:

<УдалятьСообщения> (необязательный)

Тип: Булево.
Истина - удалять выбранные сообщения с сервера.
Значение по умолчанию: Истина.
<МассивЗаголовковСообщенийИлиИдентификаторов> (необязательный)

Тип: Массив.
Массив, содержащий либо заголовки сообщений, либо серверные идентификаторы сообщений, которые необходимо получить.
Для IMAP соединения массив может содержать порядковые номера сообщений в текущем почтовом ящике (см. ТекущийПочтовыйЯщик).
Значение по умолчанию: Пустой массив.
<ОтмечатьКакПрочтенные> (необязательный)

Тип: Булево.
Отмечать письма на сервере как прочтенные.
Актуален только для IMAP, для протокола POP3 единственное допустимое значение - Истина.

В режиме совместимости Версия8_3_5 значения по умолчанию следующие:
если задан второй параметр (МассивЗаголовковСообщенийИлиИдентификаторов), то - Истина,
в противном случае - Ложь.

Значение по умолчанию: Истина.
Возвращаемое значение:

Тип: Массив.
Массив объектов типа ИнтернетПочтовоеСообщение.
Если параметр МассивЗаголовковСообщенийИлиИдентификаторов содержит пустой массив или не был указан, то возвращаются все сообщения с сервера в полном объеме.
Описание:

Используется для получения сообщений с сервера.

Доступность:

Тонкий клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение(клиент), мобильное приложение(сервер).
Добавлено: 28 дек 2015, 18:06


А дальше перебирайте сообщения
Помогли - Скажи спасибо! Решил сам - поделись решением!
:)

TerverVl

Идентификатор (UID)
Использование:

Чтение и запись.
Описание:

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

ИЛИ используй свойство ИдентификаторСообщения
Но придётся идентификаторы всех обработанных писем хранить в регистре сведений.

TrigubovichL

ЦитироватьМассивСообщений = ИнтернетПочта.Выбрать(Истина);

При таком раскладе выбранные письма удаляются.
Так что не стоит беспокоиться о повторной их обработке.

А если без удаления "Выбрать", можно по заданной дате получения (или за заданный период) обрабатывать, а остальные пропускать.

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск