Введение

Клиент электронной почты

Система обработки сообщений MH — это бесплатный клиент электронной почты с открытым исходным кодом. Она отличается от большинства других систем чтения почты тем, что вместо единой программы состоит из нескольких отдельных программ, предназначенных для работы из командной строки, предоставляемой оболочкой в Unix-подобных операционных системах. Еще одно отличие заключается в том, что вместо хранения нескольких сообщений в одном файле каждое сообщение имеет свой отдельный файл в специальной директории. Благодаря такому подходу очень легко и удобно создавать скрипты для работы с почтовыми сообщениями, используя стандартные инструменты скриптинга оболочки. Развитие потомков MH продолжается под названиями nmh и mmh. GNU Mailutils также включает в себя реализацию MH.

Дизайн

Разработанный в соответствии с философией Unix, MH состоит из отдельных программ, таких как show для просмотра сообщения, scan для просмотра заголовков сообщений и rmm для удаления сообщений. С помощью программы pick можно выбирать сообщения, например, по отправителю, над которыми затем работают другие программы. Поскольку различные программы запускаются отдельно и в разное время, связь между ними должна быть организована особым образом. Информация о текущем наборе выбранных писем хранится в файлах (в данном случае – в файле последовательностей mh в структуре каталогов MH пользователя).

История

MH был предложен Р. Стоктоном Гейнсом и Норманом Шапиро и разработан Брюсом С. Борденом и другими сотрудниками RAND Corporation. Первоначальная версия MH была создана к 1979 году. В дальнейшем разработка перешла к Маршаллу Т. Роузу и Джону Л. Ромину, работавшим в Калифорнийском университете в Ирвине. Последний релиз MH – 6.8.4, являвшийся патчем поддержки для релиза 6.8.3, и он находится в общественном достоянии. nmh ("новый MH") – текущая активно поддерживаемая версия MH. Он был создан на основе версии MH 6.8.3 Ричардом Коулманом, работавшим в Технологическом институте Джорджии, и выпущен под лицензией BSD. В него включены "изменения LBL", внесенные в MH в конце 80-х годов Ваном Джейкобсоном, Майком Карелсом и Крейгом Лересом. Самый последний релиз – nmh 1.8, 18 февраля 2023 года. Является форком nmh, однако их пользовательские интерфейсы несовместимы.

Выступление

Производительность MH во многом зависит от файловой системы и других особенностей операционной системы, на которой она работает. Каждое чтение сообщения требует запуска отдельной программы, сканирования большого каталога и открытия файла, прежде чем данные станут доступны. С другой стороны, форматы почтовых ящиков, такие как mbox, использующие один файл, часто требуют вставки или удаления данных в середине файла при чтении или изменении сообщений, что может быть очень медленной операцией. В таких случаях MH будет работать значительно быстрее. Формат хранения maildir, получивший распространение благодаря qmail и Courier Mail Server, улучшает ряд функций, впервые реализованных в MH: отдельный файл для каждого сообщения, отдельный каталог для каждой почтовой "папки" и использование жестких ссылок и других продвинутых возможностей файловой системы для повышения производительности как по объему, так и по времени.

Интерфейс

MH изначально является системой, работающей из командной строки. Для графического интерфейса оригинальной программой была xmh, приложение для X Window System. После прекращения разработки xmh был создан аналогичный инструмент под названием exmh, написанный на Tcl/Tk, последний раз обновленный 7 января 2004 года. Exmh считается полностью функциональным, и с 2004 года разработка ограничивалась в основном исправлением ошибок. Интерфейс Emacs для MH также предоставляется проектом MH E. Помимо этих специализированных клиентов MH, поддержка почтовых ящиков MH включена в несколько других клиентов, таких как Claws Mail, Novell Evolution, Mutt и Sylpheed.