КаталогПочтыImap
Стд::ЭлектроннаяПочта::КаталогПочты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.Отправить(ПараметрыОтправки, Письмо)
;
Сравнение
Ссылочное
Иерархия типа
Базовые типы: Закрываемое, Объект
Свойства
Имя
ТолькоЧтение
Имя: СтрокаИмя каталога.
Путь
ТолькоЧтение
Путь: СтрокаПолный путь каталога.
Разделитель
ТолькоЧтение
Разделитель: СтрокаРазделитель каталогов на текущем сервере.
РодительскийКаталог
ТолькоЧтение
РодительскийКаталог: КаталогПочтыImap?Родительский каталог. Если каталог является каталогом по умолчанию, то возвращается Неопределено.
Методы
ВСтроку
ВСтроку(): СтрокаПереопределение
Объект::ВСтроку
ДобавитьПисьма
ДобавитьПисьма(Письма: ЧитаемыйМассив<Письмо>)Исключения
null - если каталог не существует ИсключениеПочты - при других ошибках
Закрыть
Закрыть()Переопределение
Закрываемое::Закрыть
КоличествоНепрочитанныхПисем
КоличествоНепрочитанныхПисем(): ЧислоИсключения
null - если каталог не существует ИсключениеНедопустимоеСостояние - если текущий каталог не открыт ИсключениеПочты - при других ошибках
КоличествоНовыхПисем
КоличествоНовыхПисем(): ЧислоИсключения
null - если каталог не существует ИсключениеНедопустимоеСостояние - если текущий каталог не открыт ИсключениеПочты - при других ошибках
КоличествоПисем
КоличествоПисем(): ЧислоИсключения
null - если каталог не существует ИсключениеНедопустимоеСостояние - если каталог не открыт ИсключениеПочты - при ошибках работы
МожетСодержатьКаталоги
МожетСодержатьКаталоги(): БулевоМожетСодержатьПисьма
МожетСодержатьПисьма(): БулевоНайтиЗаголовкиПисемПоUid
НайтиЗаголовкиПисемПоUid(Uids: ЧитаемыйМассив<Число>): ЧитаемыйМассив<ЗаголовкиПисьмаВСоединенииImap?>Исключения
null - если каталог не существует ИсключениеНедопустимоеСостояние - если текущий каталог не открыт ИсключениеПочты - при других ошибках
НайтиЗаголовкиПисьмаПоUid
НайтиЗаголовкиПисьмаПоUid(Uid: Число): ЗаголовкиПисьмаВСоединенииImap?Исключения
null - если каталог не существует ИсключениеНедопустимоеСостояние - если текущий каталог не открыт ИсключениеПочты - при других ошибках
НайтиПисьмаПоUid
НайтиПисьмаПоUid(Uids: ЧитаемыйМассив<Число>): ЧитаемыйМассив<ПисьмоВСоединенииImap?>Исключения
null - если каталог не существует ИсключениеНедопустимоеСостояние - если текущий каталог не открыт ИсключениеПочты - при других ошибках
НайтиПисьмоПоUid
НайтиПисьмоПоUid(Uid: Число): ПисьмоВСоединенииImap?Исключения
null - если каталог не существует ИсключениеНедопустимоеСостояние - если текущий каталог не открыт ИсключениеПочты - при других ошибках
Открыт
Открыт(): БулевоОткрыть
Открыть(РежимОткрытия: РежимОткрытияКаталогаImap = РежимОткрытияКаталогаImap.Чтение): КаталогПочтыImap