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