> **Источник:** https://python-all.ru/2.7/library/mhlib.html
>
> «Документация Python на русском» – неофициальный перевод официальной документации Python: версии от 2.6 до 3.16, полнотекстовый поиск, английский оригинал рядом с переводом. Эта Markdown-версия страницы предназначена для работы с LLM: вставьте её в ChatGPT, Claude или Cursor.

---

# 18.5. [`mhlib`](https://python-all.ru/2.7/library/mhlib.html#module-mhlib) – Доступ к почтовым ящикам MH

Устарело с версии 2.6: Модуль [`mhlib`](https://python-all.ru/2.7/library/mhlib.html#module-mhlib) удалён в Python 3. Вместо него используйте [`mailbox`](https://python-all.ru/2.7/library/mailbox.html#module-mailbox).

Модуль [`mhlib`](https://python-all.ru/2.7/library/mhlib.html#module-mhlib) предоставляет интерфейс Python для работы с папками MH и их содержимым.

Модуль содержит три основных класса: [`MH`](https://python-all.ru/2.7/library/mhlib.html#mhlib.MH), представляющий определённую коллекцию папок; [`Folder`](https://python-all.ru/2.7/library/mhlib.html#mhlib.Folder), представляющий отдельную папку; и [`Message`](https://python-all.ru/2.7/library/mhlib.html#mhlib.Message), представляющий отдельное сообщение.

#### `class mhlib.MH([path[, profile]])`

[`MH`](https://python-all.ru/2.7/library/mhlib.html#mhlib.MH) представляет коллекцию папок MH.

#### `class mhlib.Folder(mh, name)`

Класс [`Folder`](https://python-all.ru/2.7/library/mhlib.html#mhlib.Folder) представляет отдельную папку и её сообщения.

#### `class mhlib.Message(folder, number[, name])`

Объекты [`Message`](https://python-all.ru/2.7/library/mhlib.html#mhlib.Message) представляют отдельные сообщения в папке. Класс Message наследуется от [`mimetools.Message`](https://python-all.ru/2.7/library/mimetools.html#mimetools.Message).

## 18.5.1. Объекты MH

Экземпляры [`MH`](https://python-all.ru/2.7/library/mhlib.html#mhlib.MH) имеют следующие методы:

#### `MH.error(format[, ...])`

Выводит сообщение об ошибке – можно переопределить.

#### `MH.getprofile(key)`

Возвращает запись профиля (`None`, если не задана).

#### `MH.getpath()`

Возвращает путь к почтовому ящику.

#### `MH.getcontext()`

Возвращает имя текущей папки.

#### `MH.setcontext(name)`

Устанавливает имя текущей папки.

#### `MH.listfolders()`

Возвращает список папок верхнего уровня.

#### `MH.listallfolders()`

Возвращает список всех папок.

#### `MH.listsubfolders(name)`

Возвращает список прямых подпапок указанной папки.

#### `MH.listallsubfolders(name)`

Возвращает список всех подпапок указанной папки.

#### `MH.makefolder(name)`

Создаёт новую папку.

#### `MH.deletefolder(name)`

Удаляет папку – не должно быть подпапок.

#### `MH.openfolder(name)`

Возвращает новый открытый объект папки.

## 18.5.2. Объекты папок

Экземпляры [`Folder`](https://python-all.ru/2.7/library/mhlib.html#mhlib.Folder) представляют открытые папки и имеют следующие методы:

#### `Folder.error(format[, ...])`

Выводит сообщение об ошибке – можно переопределить.

#### `Folder.getfullname()`

Возвращает полный путь к папке.

#### `Folder.getsequencesfilename()`

Возвращает полный путь к файлу последовательностей папки.

#### `Folder.getmessagefilename(n)`

Возвращает полный путь к сообщению *n* из папки.

#### `Folder.listmessages()`

Возвращает список сообщений в папке (в виде чисел).

#### `Folder.getcurrent()`

Возвращает номер текущего сообщения.

#### `Folder.setcurrent(n)`

Устанавливает номер текущего сообщения в *n*.

#### `Folder.parsesequence(seq)`

Разбирает синтаксис msgs в список сообщений.

#### `Folder.getlast()`

Возвращает последнее сообщение или `0`, если в папке нет сообщений.

#### `Folder.setlast(n)`

Устанавливает последнее сообщение (только для внутреннего использования).

#### `Folder.getsequences()`

Возвращает словарь последовательностей в папке. Имена последовательностей используются в качестве ключей, а значения представляют собой списки номеров сообщений в этих последовательностях.

#### `Folder.putsequences(dict)`

Возвращает словарь последовательностей в папке: список.

#### `Folder.removemessages(list)`

Удаляет сообщения, указанные в списке, из папки.

#### `Folder.refilemessages(list, tofolder)`

Перемещает сообщения из списка в другую папку.

#### `Folder.movemessage(n, tofolder, ton)`

Перемещает одно сообщение в заданный пункт назначения в другой папке.

#### `Folder.copymessage(n, tofolder, ton)`

Копирует одно сообщение в заданный пункт назначения в другой папке.

## 18.5.3. Объекты сообщений

Класс [`Message`](https://python-all.ru/2.7/library/mhlib.html#mhlib.Message) добавляет один метод к методам [`mimetools.Message`](https://python-all.ru/2.7/library/mimetools.html#mimetools.Message):

#### `Message.openmessage(n)`

Возвращает новый открытый объект сообщения (занимает файловый дескриптор).
