Стд::ЭлектроннаяПочта::КаталогПочтыImap
Каталог почты в соединении Imap.
метод ОтветитьНаПисьмоОтКоллеги()
пер Адрес = новый АдресПочты("bro@example.ru", "bro")
знч Сервер = "imap.yandex.ru"
знч Порт = 993
знч Аутентификация = новый АутентификацияПочтыПоПаролю("Почта", "Пароль")
пер Параметры = новый ПараметрыПодключенияImap(Сервер, Порт, Аутентификация)
исп Соединение = новый СоединениеImap(Параметры)
пер Входящие = Соединение.ПолучитьКаталог(ВидКаталогаПочты.Входящие)
Входящие.Открыть(РежимОткрытияКаталогаImap.ЧтениеИЗапись)
пер ЗагаловкиНепрочитанных = Входящие.ПолучитьЗаголовкиНепрочитанныхПисем()
пер ИскомоеПисьмо: ПисьмоВСоединенииImap? = Неопределено
для З из ЗагаловкиНепрочитанных
если ИскомоеПисьмо != Неопределено
прервать
;
если З.Заголовки.Отправитель! == Адрес и З.Заголовки.ПолучателиКопии.Пусто()
пер Найденное = Входящие.НайтиПисьмоПоUid(З.Uid)
если не Найденное.Флаги.Содержит(ФлагПисьма.Помеченное)
ИскомоеПисьмо = Найденное
;
;
;
пер Ответ = ОтветНаПисьмо(ИскомоеПисьмо.Письмо)
ОтправитьОтветПоSmtp(Ответ)
Входящие.УстановитьФлагиПоUid([ИскомоеПисьмо.Uid], [ФлагПисьма.Прочитанное])
;
метод ОтветНаПисьмо(Письмо: Письмо): Письмо
если Письмо.ПолучитьТекст().Размер() != 1
выбросить новый ИсключениеНедопустимыйАргумент("Нужно написать такую обработку")
;
если ВидТекстаПисьма.ПоТипуСодержимого(Письмо.ПолучитьТекст()[0].ВидТекста) != ВидТекстаПисьма.ПростойТекст
выбросить новый ИсключениеНедопустимыйАргумент("Нужно написать такую обработку")
;
пер Текст = Письмо.ПолучитьТекст()[0].Текст
пер ОбразецНовойСтроки = новый Образец("\n")
пер Цитата = Текст.Заменить(ОбразецНовойСтроки, "\n>")
пер ИтоговыйТекст = "Ответ: \n" + Цитата
пер ТемаОтвета = "Re: "
если Письмо.Тема != Неопределено
ТемаОтвета += Письмо.Тема
;
пер Ответ = новый Письмо("me@example.ru", Письмо.Отправитель, ТемаОтвета)
Ответ.УстановитьТекстКакСтроку(ИтоговыйТекст, ВидТекстаПисьма.ПростойТекст)
возврат Ответ
;
метод ОтправитьОтветПоSmtp(Письмо: Письмо)
пер ПараметрыОтправки = новый ПараметрыПодключенияSmtp("smtp.yandex.ru", 465,
новый АутентификацияПочтыПоПаролю("Почта", "Пароль"))
КлиентSmtp.Отправить(ПараметрыОтправки, Письмо)
;
Сравнение
Ссылочное
Иерархия типа
Базовые типы: Закрываемое, Объект
Свойства
Имя
ТолькоЧтение
Имя каталога.
Путь
ТолькоЧтение
Полный путь каталога.
Разделитель
ТолькоЧтение
Разделитель каталогов на текущем сервере.
РодительскийКаталог
ТолькоЧтение
Родительский каталог. Если каталог является каталогом по умолчанию, то возвращается Неопределено.
Методы
ВСтроку
Полный путь до каталога.
Переопределение
Объект::ВСтроку
ДобавитьПисьма
Добавляет письма в каталог почты.
Исключения
null - если каталог не существует
ИсключениеПочты - при других ошибках
Закрыть
Закрыть данный каталог.
Переопределение
Закрываемое::Закрыть
КоличествоНепрочитанныхПисем
КоличествоНепрочитанныхПисем(): Число
Получить количество непрочитанных писем в каталоге. Нельзя вызывать на закрытом каталоге.
Выполняет команду STATUS.
Исключения
null - если каталог не существует
ИсключениеНедопустимоеСостояние - если текущий каталог не открыт
ИсключениеПочты - при других ошибках
КоличествоНовыхПисем
КоличествоНовыхПисем(): Число
Получить количество новых писем в каталоге. Нельзя вызывать на закрытом каталоге. Для IMAP количество писем, которые пришли после того, как данные каталог был открыт.
Выполняет команду NOOP.
Исключения
null - если каталог не существует
ИсключениеНедопустимоеСостояние - если текущий каталог не открыт
ИсключениеПочты - при других ошибках
КоличествоПисем
Получить итоговое количество писем в каталоге. Нельзя вызывать на закрытом каталоге. Результат от вызова к вызову отличается, если между вызовами пришли новые письма.
Выполняет команду NOOP.
Исключения
null - если каталог не существует
ИсключениеНедопустимоеСостояние - если каталог не открыт
ИсключениеПочты - при ошибках работы
МожетСодержатьКаталоги
МожетСодержатьКаталоги(): Булево
Возвращает признак того, что каталог может содержать другие каталоги.
МожетСодержатьПисьма
МожетСодержатьПисьма(): Булево
Возвращает признак того, что каталог может содержать письма.
НайтиЗаголовкиПисемПоUid
Получить письма из текущего каталога по Уид-ам. Уид уникален только внутри каталога. Каталог должен быть открыт. Выполняет команду UID FETCH.
Исключения
null - если каталог не существует
ИсключениеНедопустимоеСостояние - если текущий каталог не открыт
ИсключениеПочты - при других ошибках
НайтиЗаголовкиПисьмаПоUid
Получить письмо из текущего каталога по Уид. Уид уникален только внутри каталога. Каталог должен быть открыт. Выполняет команду UID FETCH.
Исключения
null - если каталог не существует
ИсключениеНедопустимоеСостояние - если текущий каталог не открыт
ИсключениеПочты - при других ошибках
НайтиПисьмаПоUid
Получить письма из текущего каталога по Уид-ам. Уид уникален только внутри каталога. Каталог должен быть открыт. Выполняет команду UID FETCH.
Исключения
null - если каталог не существует
ИсключениеНедопустимоеСостояние - если текущий каталог не открыт
ИсключениеПочты - при других ошибках
НайтиПисьмоПоUid
Получить письмо по Uid в каталоге. Нельзя вызывать на закрытом каталоге.
Исключения
null - если каталог не существует
ИсключениеНедопустимоеСостояние - если текущий каталог не открыт
ИсключениеПочты - при других ошибках
Открыт
Признак открытости каталога.
Открыть
Открыть данный каталог с заданным режимом. Для удобства возвращается сам объект.
ОтметитьНаУдалениеПоUid