Белка по-русски
Что такое SquirrelMail?SquirrelMail или Белка – это один из самых удобных и мощных Open Source пакетов веб-почты, написанных на PHP. В нём реализована поддержка протоколов IMAP и SMTP и доступны многие модули, расширяющие его функциональность, например, ведение логов, фильтрация почты на сервере, фильтрация спама, календарь, шифрование почты с помощью GPG и прочее. SquirrelMail полностью русифицирован. В данной статье приводятся краткие рекомендации по настройке SquirrelMail для русскоязычных пользователей, особенно полезные тем, кто хочет обновить свою установку с версии 1.2.х или 1.4.1 и ниже до более свежей версии (1.4.4 на момент написания статьи). Начиная с версии 1.4.2 SquirrelMail поддерживает UTF-8 как кодировку для русского языка по умолчанию, а поскольку большинство русскоязычных пользователей пока ещё применяют восьмибитные кодировки KOI8-R или cp-1251, я расскажу, как это обновление сделать быстро и без потерь.Установка SquirrelMailПоскольку SquirrelMail – это почтовый клиент, для его работы требуются настроенные серверы IMAP и SMTP. Для работы с многоязычными файлами, а также для оптимизации сортировки и поиска сервер IMAP должен поддерживать Юникод (например, для Courier IMAP – это опция$ configure --enable-unicode ). Естественно, нужен также веб-сервер с PHP4 (на момент написания статьи с PHP5 версии ниже 5.0.3 могут возникать проблемы из-за изменений в работе с классами и объектами, а работа с 5.0.3 ещё недостаточно протестирована). Рекомендуется, чтобы в PHP были включены следующие опции (в виде встроенных расширений или динамически подгружаемых (=shared) библиотек):
а если собирать PHP в совсем минималистическом варианте, то так:
Тем самым будут включены поддержка сеансов и регулярных выражений. Поддержка gettext обеспечивает использование функций расширения gettext для русскоязычного интерфейса и ускоряет работу в разы. Функции mbstring нужны для работы с русскоязычными именами папок IMAP на сервере (которые согласно RFC-3501 должны быть закодированы в UTF-7, с небольшими отклонениями от собственно UTF-7). Функции iconv или recode используются для перекодировки текста в разрабатываемых cvs-версиях Белки, и их можно включить с прицелом на будущее. Никаких других особенностей при сборке PHP нет. Может потребоваться внести изменения в параметры php.ini – если вам приходит очень много почты и вся она хранится на сервере, или если нужно работать с большими (>2 МБ) письмами и вложениями, то необходимо увеличить размер памяти, разрешённый для скрипта в php.ini (memory_limit) – с 8 МБ по умолчанию до 16 МБ или более. Для отправки писем с большими вложениями следует также увеличить максимально разрешённый размер файла, загружаемого на сервер (upload_max_filesize). Дистрибутив SquirrelMail можно скачать по ссылке с сайта проекта. Можно взять последнюю стабильную версию (1.4.4, рекомендуется) в виде архива или более свежую версию стабильной ветки с сайта или непосредственно из хранилища cvs. Процедура установки из архива и из образа cvs ничем не отличается. Локали для SquirrelMail 1.4.4Начиная с версии 1.4.4 пакет локалей для SquirrelMail поставляется отдельно. Здесь подготовлены пакеты, включающие перевод интерфейса программы и нескольких её модулей, а также файлов справки в трёх кодировках: По сравнению с официальным пакетом на сайте SquirrelMail в пакете для utf-8 исправлена ошибка в заголовке файла abook_group.po (см. README.UTF8).Внимание! Если вы меняете кодировку Белки в уже существующей установке (например, с koi8-r на utf-8), не забудьте сконвертировать также адресные книги и параметры пользователей, если они туда что-то заносили по-русски. Проверьте файлы *.pref и *.abook в каталоге data или соответствующие таблицы базы данных. Первичная настройка SquirrelMailДопустим, что мы распаковали архивы или скопировали cvs-образ и локали в каталог sm-1.4.4ru. Заходим в него и начинаем работать. Наша задача – установить Белку и настроить русскоязычный интерфейс. Для этого запускаем в этом каталоге.$ ./configureЗапускается сценарий настройки на Perl, в котором нужно пройтись по пунктам и изменить в минимальном варианте язык по умолчанию (пункт 10-1 – задать ru_RU), кодировку по умолчанию (п. 10-2, какую именно – смотрим ниже, для начала поставим UTF-8), свой домен по умолчанию (п. 2-1, например, belkamail.ru – вроде бы домен пока свободен. Нужно также задать серверы IMAP и SMTP, если они живут не на той же машине. При настройке сервера IMAP (п. 2-A) рекомендуется указать его тип, если он известен, и обязательно включить сортировку писем сервером IMAP (п. 4-10 и 11). Если этого не сделать, сортировать письма придётся самой Белке, а это сильно тормозит работу при большом количестве писем. В качестве метода отправки (п. 2-3) задайте Sendmail вместо SMTP при работе на localhost. Работа по SMTP может быть на удивление медленной, но Белка тут не виновата, а виноваты вы сами, особенно если криво настроить сервер SMTP, чтобы он при подключении по TCP с локального хоста выполнял кучу проверок на вирусы, спам, чёрные списки и пр. Остальное можно не трогать. Расширенную функциональность можно получить, поставив дополнительные модули. По умолчанию параметры пользователей и их адресные книги будут храниться в отдельном каталоге, это подкаталог data в корне (п. 4-1). Рекомендуется также создать отдельный каталог для вложений (п. 4-2) – например, attach – со временем в нём будет накапливаться мусор в виде забытых вложений, и его можно будет очищать скриптом из crontab. Нужно сделать эти каталоги доступными для записи с правами веб-сервера, то есть чаще всего: # chown nobody.nobody data # chmod 700 data # mkdir attach # chown nobody.nobody attach # chmod 700 attachПри желании можно связать SquirrelMail с сервером базы данных (пункт 9), при этом параметры пользователей и их адресные книги будут храниться в базе. Например, для MySQL нужно прописать: 1. DSN for Address Book : mysql://squirreluser:pass@localhost/sqmail 2. Table for Address Book : address 3. DSN for Preferences : mysql://squirreluser:pass@localhost/sqmail 4. Table for Preferences : userprefs 5. Field for username : user 6. Field for prefs key : prefkey 7. Field for prefs value : prefvalСтруктура этих двух таблиц – address и userprefs – и команды для сервера базы данных, которые нужно выполнить, чтобы их создать, описаны в файле doc/db-backend.txt. Далее сохраняем конфигурационный файл – он хранится в config/config.php. В принципе, его можно править руками, но осторожно, чтобы не добавить лишних пробелов после последней закрывающей скобки. Всё – система готова к работе. Запускаем браузер по http или https и смотрим, работает ли почта. Доводка SquirrelMail и настройка русского языка
Настройка модуля шифрования GPG для SquirrelMailЭтот модуль позволяет работать с письмами, зашифрованными с помощью GPG, с использованием веб-интерфейса Белки. Модуль рекомендуется к использованию, поскольку написан он вполне грамотно, с заботой о неискушённом пользователе и позволяет осуществлять настройку шифрования через веб-интерфейс. Насколько я знаю, коммерческих провайдеров, предоставляющих такую возможность, не найти днём с огнём.Дистрибутив модуля можно скачать по ссылке с сайта автора модуля. Есть также анонимный cvs. Архив модуля нужно распаковать в каталог plugins, где находятся все остальные модули. После этого в каталоге plugins появится подкаталог gpg. Модуль нужно подключить в конфигурационном файле через скрипт configure или поправив файл вручную. После этого в главном окне Белки появится ссылка "Ключи шифрования.". Для тонкой настройки модуля можно руками поправить файл plugins/gpg/gpg_local_prefs.txt, а именно: прописать путь к gpg, если он отличается от стандартного; заменить параметры false на true, если вы хотите разрешить пользователям хранить закрытые ключи на сервере (allowprivatekeys=true), генерировать ключи непосредственно на сервере (allowkeygeneration=true), кэшировать пароль на время сеанса работы (allowpassphrasecaching=true) и пр. Модуль хорошо документирован, и почти всё будет понятно непосредственно из веб-интерфейса, если вы хоть раз имели дело с GPG/PGP. Некоторые действия в модуле, затрагивающие вопросы безопасности (например, смена пароля) требуют для своего выполнения защищённого (https) соединения. Модуль шифрования также переведён на русский, и файлы перевода модуля доступны в архиве. Вопросы и пожелания можно направлять в рассылки SquirrelMail или автору данного документа. Автор же в свою очередь высказывает пожелание как минимум видеть ссылку на данный документ в случае его копирования на других сайтах.
|