Roundcube + hMailServer или своя почта в маленькой организации

image
Не каждая организация может позволить себе покупку дорогостоящего почтового сервера как Microsoft Exchange Server, да и в силу своей «наворочености», не каждой организации он нужен. Некоторое время назад передо мной встала задача запустить почту внутри организации для обмена документами между отделами. Сразу оговорюсь, что организация, в которой я работаю небольшая, имеет 1 сервер и около 50 клиентских машин. Опыта работы с почтовыми серверами – нет. После недолгих поисков по просторам сети было решено использовать связку RoundCube + hMailServer. В этой статье не будут рассмотрены и описаны все сильные и слабые стороны такой связки, а просто описано как все это заставить работать, но скажу что основные достоинства этого решения – бесплатность и простота в настройке.

Немного теории


С чем имеем дело…
Почтовый сервер – в системе пересылки электронной почты так обычно называют агент пересылки сообщений. Это компьютерная программа, которая передаёт сообщения от одного компьютера к другому. Обычно почтовый сервер работает «за кулисами», а пользователи имеют дело с другой программой — клиентом электронной почты.
hMailServer — бесплатный почтовый сервер под платформу Windows. Работает как служба Windows и включает в себя инструменты администрирования и резервного копирования. Поддерживает почтовые протоколы IMAP, POP3 и SMTP. Для хранения настроек и индексов использует базы данных типа MySQL, MS SQL или PostgreSQL, сами же почтовые сообщения хранятся на жестком диске в формате MIME.
RoundCube Webmail — это клиент для работы с электронной почтой с веб-интерфейсом, написанный на PHP с использованием CSS и XHTML и технологии AJAX. RoundCube Webmail устанавливается практически на любой сервер с поддержкой PHP и MySQL и предоставляет возможность работы с почтовыми ящиками по протоколам IMAP и SMTP. Имеет множество расширений.
Для начала работы необходимо скачать следующие компоненты:
1) hMailServer
2) RoundCube Webmail
3) Веб-сервер VertrigoServ (можно использовать и любой другой)
И так, скачав все необходимое или удостоверившись, что оно есть в наличии, можно смело переходить к началу установки.

Практика


Этап нулевой: Задать сетевой карте статический IP адрес. В данной статье будет использован IP 192.168.0.45.

Этап первый: Установка VertrigoServ.
Не думаю, что стоит детально расписывать установку этого веб-сервера, т.к. ничего замысловатого в этом процессе нет.

Этап второй: Установка hMailServer.
Полностью процесс установки описывать не буду, рассмотрим только основные моменты. На этапе «Select Components» выбираем «Full Installation», далее на этапе «Database type» выбираем «Use external database engine (MSSQL, MySQL or PostgreSQL) и еще пару раз нажав «Далее» начнется установка. Ближе к завершению установки, запуститься приложение hMailServer Database Setup, в котором необходимо указать тип базы данных и прописать реквизиты для подключения.

image

Рассмотрим настройку подключения пошагово:
    Step 1 of 7 – просто жмем «Next»
    Step 2 of 7 – выбираем «Create a new hMailServer database»
    Step 3 of 7 – выбираем «MySQL» и для того, чтобы на 6 шаге не возникло проблем, копируем файл libmysql.dll находящийся в папке с установленным VertrigoServ в папку \hMailServer\Bin\
    Step 4 of 7 – вводим следующие данные:
Database server address – 127.0.0.1 (или localhost)
Port – 3306
Database name – hmail (как пример)
Username – root
Password – vertrigo
    Step 5 of 7 – пропускаем
    Step 6 of 7 – просто жмем «Next» (при условии, что данные на 4 шаге введены верно, создается база данных)
    Step 7 of 7 – «Close»
Заключительный этап установки hMailServer — это «Specify main password», на котором задается «главный» пароль для доступа к программе. После того как пароль задан, установка считается завершенной.

Теперь займемся русификацией программы, если считаете, что Ваших познаний в английском языке достаточно для работы с программой, то смело пропускайте данный пункт. Для русификации необходимо временно остановить службу hMailServer, для этого идем в «Пуск – Панель управления – Администрирование – Службы». В списке находим hMailServer, вызываем правой кнопкой мыши выпадающее меню, в котором выбираем команду «Стоп».

image

Все, служба остановлена. Теперь скачиваем файл с русификацией и помещаем его в папку \hMailServer\Languages\. Остается только вписать имя файла локализации в файл конфигурации hMailServer, для этого открываем файл \hMailServer\Bin\hMailServer.ini и дописываем «ValidLanguages=english,swedish,russian». Сохраняем и закрываем файл. Запускаем службу hMailServer (вызываем правой кнопкой мыши выпадающее меню, в котором выбираем команду «Пуск»).

Этап третий: Начальное конфигурирование hMailServer.
Запускаем утилиту hMailServer Administrator. Появляется окно «Connect», в котором, выделив единственную запись, жмем на кнопку «Connect»

image

Программа просит ввести пароль, который был задан на заключительном этапе установке hMailServer. Введя пароль, попадаем в главное окно административной части hMail. В меню «File – Select language…» выбираем «russian» и жмем «ОК», программа автоматически перезапустится, после чего «заговорит» по русски.
Настройка интуитивно понятна, для начала необходимо нажать на кнопку «Добавить домен», в качестве имени домена, выберем «test.loc» и нажмем кнопку «Сохранить» (более детальная настройка почтового домена в этой статье рассматриваться не будет).

image

Создаем учетную запись, для этого переходим в левой части программы в папку «Учетные записи», а в правой части программы жмем кнопку «Добавить…». Вводим любое имя пользователя (например test), указываем пароль и жмем кнопку «Сохранить» (более детальная настройка пользователей в этой статье рассматриваться не будет). И так, на нашем почтовом сервере появляется первый пользователь test@test.loc.

image

Собственно на этом предварительную настройку hMailServer можно считать законченной, переходим дальше.

Этап четвертый: Установка RoundCube.
Для начала необходимо содержимое архива roundcubemail перенести в папку \VertrigoServ\www\ (предварительно можно удалить всю «начинку»). Теперь в веб-приложении phpMyAdmin создаем MySQL базу данных для RoundCubeMail, для этого открываем браузер и в адресной строке вводим «127.0.0.1/phpmyadmin» в качестве логина вводим: root, пароль: vertrigo (стандартные реквизиты для VertrigoServ). В поле «Новая база данных» вводим название, например «roundcube» и нажимаем кнопку «Создать».

image

База данных создана, переходим непосредственно к установке скрипта RoundCubeMail. В адресной строке браузера вводим «127.0.0.1/installer/index.php» и жмем «Enter». Попав на страницу «Roundcube Webmail Installer» жмем кнопку «Start installation». Установка проходит в три этапа.
1. Check environment. Происходит проверка, удовлетворяет ли ваша система требованиям скрипта. Жмем кнопку «Next», если она недоступна, внимательно читаем информацию на странице и исправляем недочеты.

image

2. Create config. Рассмотрим пункты, которые следует задать/изменить.
Блок General configuration:
product_name – Имя почтового сервера

Блок Database setup:
Database type – MySQL
Database server – localhost
Database name – roundcube
Database user name – root
Database password – vertrigo


Блок IMAP Settings:
default_host – 192.168.0.45
username_domain – test.loc


Блок SMTP Settings:
smtp_server – localhost

Блок Display settings & user prefs:
language – ru_RU

После того как внесли все необходимые изменения жмем на кнопку «Create config» нас перенаправляет на страницу на которой предлагается скачать созданные конфигурационные файлы.

image

Скачиваем сгенерированные конфигурационные файлы и копируем их в папку \VertrigoServ\www\config\. Возвращаемся в браузер и жмем кнопку «Continue».
3. Test config. Это заключительный этап установки, на нем можно проверить правильность конфигурации. Для этого служба hMailServer должна быть запущена.
В блоке «Test SMTP config», в полях «Sender» и «Recipient» введем адрес нашего единственного пользователя test@test.loc, жмем на кнопку «Send test mail», если появляется сообщение «SMTP send: OK» – значит эта часть настроена верно, в противном случае перепроверьте в конфигурационном файле main.inc.php параметр $rcmail_config['smtp_server'] = 'localhost';.
Теперь проверяем, работает ли IMAP, в блоке «Test IMAP config» в качестве сервера выбираем 192.168.0.45, Username: test@test.loc, Password: пароль который ввели при создании пользователя. Жмем на кнопку «Check login» если в результате получаем сообщение «IMAP connect: OK» значит все сконфигурировано верно, иначе перепроверьте в конфигурационном файле main.inc.php параметр $rcmail_config['default_host'] = '192.168.0.45';.
Убедившись, что все работает, идем в директорию \VertrigoServ\www\ и удаляем папку «Installer».
На этом установка RoundCube Webmail завершена.

Этап пятый: Авторизация в Roundcube.
Этот этап является заключительным, здесь мы авторизуемся под реквизитами пользователя, которого создали на третьем этапе test@test.loc. Для начала откроем браузер и введем в адресной строке 192.168.0.45, нажав «Enter» попадаем на страницу авторизации Roundcube. В поле «Имя пользователя» вводим test@test.loc или просто test. Пароль вводим который ввели при создании пользователя. Жмем на кнопку «Войти» и оказываемся внутри вашего первого почтового ящика!

image

Вот собственно и все. В данной статье рассмотрены основные настройки связки RoundCube + hMailServer. Спасибо что дочитали до конца!
Поделиться публикацией

Комментарии 56

    +3
    А как понять когда выгоднее(нужнее, необходимее) свой почтовый сервер, нежели внешний от яндекса там или гугла?
      +1
      Взять калькулятор и посчитать — готовы ли вы отдавать по 50 баксов за пользователя вашей системы?

      В гугле, например, если у вас меньше 50 пользователей всё вообще бесплатно. Интерфейс гмыла куда удобнее раундкьюба, это не говоря уже о такой вещи как наличие чата, гуглдоксов и тому подобного.

      Думаю, можно смело сказать — ежели у вас меньше 50 человек в конторе, и нет никаких сверхсекретных документов — то тогда точно уж гугл.
        +2
        Ой, только что выяснилось, что теперь там десять ящиков. Но для малого бизнеса всё равно хватает.
          0
          Если зарегистрировались в Google давно — то у вас всё ещё 50 пользователей бесплатно. А вот для новых — да, уже 10. Кушать хоцца, наверное. Или халявщиков набежало…
          +1
          В Яндексе например бесплатно.
            +3
            После яндекс.админки я хочу убивать. всех. без разбора.
              0
              Там сделано всё просто, для домохозяек. Для маленькой организации, как правило, этого достаточно.
                0
                Где там галочка для пользователей «После входа сменить пароль»?
                  0
                  А зачем им это? Всё равно 123123, ну или 123456.
                    +1
                    Я не буду знать, что это 123123 и моя совесть будет чиста )))
          +1
          Если много документов пересылаются по электронной почте, то для ускорения работы почты лучше чтобы почтовый сервер стоял внутри локальной сети.
          Если же основная задача почты общение с клиентами, то лучше сервера гугла, яндекса или другие.
            +1
            Спорный вопрос, быстрый интернет для организаций все еще не такой уж дешевый, а гонять тонны спама через свой сервер скорее всего придется.
            0
            Бывает у начальства параноя по поводу безопасности его переписки с любовницей :)
              0
              А ещё бывает соглашение с клиентами, запрещающее размещать их данные на сторонних площадках :(
            +7
            да, почему бы просто не использовать гугл-меил для организаций?
              +1
              Гугл порезал бесплатные плюшки, теперь можно только 10 почтовых ящиков.
              Яндекс повеселее (до 1000 ящиков) но админка их ужасна и логика захода для админа через жопу.
                0
                Я когда у себя hmailserver использовал, то в качестве вебморды SquirrelMail ставил.
                Но потом надоели постоянные жалобы что наши письма попадают в спам (из-за нашего провайдера, все их IP-зона была в блеклисте у mail.ru)б так что перешел на Gmail, благо получилось выбить «For Education» аккаунт, там ограничение около 100 на кол-во адресов.
                  +1
                  Ну по поводу админки да — фейл, уже через пол часа накалякал простой скрипт из примера для API и уже через него создавал новых пользователей и переносил их почту с других ящиков +)
                +1
                эту схему можно использовать в обычной «локалке» организации, без участия глобальной сети, особенно удобно если все отделы организации находятся в одном здании и завязаны на один общий сервер (как в моем случае)
                  +1
                  Мне моя параноя подсказывает, что такие службы как почта и веб надо запускать от имени отдельного, сильно ограниченного пользователя. Да, немного дольше настраивать, зато меньше шанс, что поломают весь сервер воспользовавшись ошибками в софте.
                    0
                    Возможно, что кроме почты на сервере ничего и нет (это вполне может быть виртуалка под ESXi/XenServer).
                      +1
                      А по большому счету без разницы где оно располагается: на виртуальном сервере или на физическом.
                      Например, обрушили вебинтерфейс и через эксплойт смогли запустить на сервере что-то типа радмин. И все машина наша. Заметьте, службы то запускаются от имени системы, т.е. можно делать с сервером вообще все, что угодно.

                      Из-за работы Roundcube по IMAP на сервере хранится вся переписка фирмы. Конкуренты будут не проч иметь ее копию. Лучше всего, если в режиме онлайн.

                      Ботнет на этой машине для рассылки спама тоже будет чувствовать себя неплохо. Потому как 25й порт с этой машины уж точно будет открыт.

                      Придумывать остальные применения захваченной машины оставлю на откуп злоумышленникам.
                        0
                        На первый взгляд страшно. Но если разобраться, на той же ХР есть несколько способов «приглядывать» за запускаемыми процессами. Например, ключ реестра RestrictRun. Это существенно затруднит запуск любых неразрешенных приложений, даже от имени системы.
                        Запретить запуск всех лишних служб мастдая. Меньше сервисов — меньше дыр.
                        Грамотно настроить фаервол. Ничего лишнего, кроме почты сервер принимать и отправлять не должен.
                        Одна роль — одна ОС. Технология виртуальных машин на это кагбе прозрачно намекает. На этой виртуалке должна быть почта и только почта, остальное — от лукавого, для остального — свои виртуалки.
                          0
                          Непонятно только зачем запускать службы, которые потенциально небезопасны, с привилегированными правами, а потом доблестно пытаться уменьшить эффект от их разрушительного воздействия.
                          Виртуализация в данном рассматриваемом случае ограничивает разрушительную область сервером, что уже неплохо. Но почему бы не улучшить эти показатели осложнив захват самого сервера?

                          Правильный подход «Одна роль — одна ОС» однако денег стоит. Как минимум, надо приобретать лицензии на еще одну ОС. На железе, к счастью, в данном случае экономим. Ибо речь в статье идет про систему с малым количеством клиентов. PS. Использование POSIX решений в контексте данной статьи не рассматриваем. Иначе бы статья была совсем про другое :)

                          К защите надо подходить комплексно. Будь моя воля и достаточное количество финансов, здесь бы надо было реализовывать DMZ, поднимать систему предотвращения вторжений, и т.д. и т.п.
                          Но, как говорил мой профессор пиля распределяя очередной грант — «Жить надо по средствам».

                          Это к тому, что надо все-таки находить компромисс между паранойей и затраченными на нее ресурсами (денежными и людскими)
                            –1
                            Ну винда она такая винда, службы запускаются в не зависимости от их востребованности, поэтому настройка сводится по большей части к отключению лишнего.
                            Совершенно верно, жить надо по средствам, иначе просто не получится)) Но если быть точнее, говоря как надо делать, безопасность должна быть не дороже, чем наихудший из рисков. И исходя из этого, лучше потратить до 10000р на винду, или даже до 30000р. на недорогую серверную винду, чем понести гораздо бОльшие убытки за какой-нибудь спам-трафик или раскрытие коммерческих тайн. Так что в бюджет небольшой фирмочки можно неплохо поместиться.
                            0
                            Да по большому счету надо попросить один раз кого-нибудь настроить Ubuntu, поставить в угол и забыть.

                            Куда проще, чем сражаться с XP.
                              0
                              ну начнем с того, что в качестве серверной оси брать «ХР»ень более чем кощунственно, да потом даже на Ubuntu есть свои подводные камни (а порой скалы).
                              з.ы. Предлагаю не начинать «холивар» насчет лучшей серверной оси
                      +1
                      Скажите это у Вас на XP?
                        0
                        да, это виртуальная машина с Windows XP (запустил, чтобы сделать скриншоты процесса установки), по факту все крутится на Windows Server 2008 R2
                          –3
                          Лицензионный? или так же бесплатный?
                            0
                            лицензионный
                        0
                        вопрос такой:

                        умеет ли hMailServer работать без внешних баз данных? (без MySQL, MS SQL)
                        просто на вид это легкая програмка по сравнению с тем-же эксченжем, нету желания\возможности ставить полновесную СУБД только для почты, тем более что как я понял, письма в базе она не хранит.
                          0
                          Умеет.
                            0
                            Совсем без СУБД не умеет. Если нет внешней СУБД, то используется mssql compact. Вот что написано на сайте разработчиков.

                            Database support
                            hMailServer supports Microsoft SQL Server, PostgreSQL and MySQL. The hMailServer installation includes a minimal, built-in database server called Microsoft SQL Server Compact. During the installation you can choose whether you want to use the built-in database or a already existing database server.
                              0
                              да дело вот в чем:
                              я хочу почту в минимальной конфигурации на windows.
                              в win2003 сервере был в smtp в базовой комплектации IIS и замечательный компонент POP3 сервер, что закрывало практически все потребности маленькой почты.

                              в 2008server POP3 компонент удалили, хотя SMTP в IIS7 остался, и не понятно как сделать простую почтовую службу без внешних модулей… сам микрософт рекомендует ставить Exchange, что есть дорого и глупо для малых нужд.
                              вот я и ищу решение попроще. ставить тотже MySql для почты мне кажется глупым, может быть кто-то посоветует ещё варианты?
                                +1
                                Если не нужен доступ по веб, то пойдет любой сервер. Выбирайте http://en.wikipedia.org/wiki/Comparison_of_mail_servers.
                                Из бесплатных хорошо подойдет тот же hMail. Используйте встроенную базу и всех делов. Мне еще нравится xmail.
                            +2
                            Почему ни Linux+Postfix+Dovecot+Apache+RoundCube?
                              0
                              Дык человек написал что опыта работы с почтовыми серверами нет. Да и сервер всего один на Windows.
                                0
                                Вот у меня как раз такая связка на домашнем сервере крутится (Atom 510, 2gb, CentOS 5.7, mysql, apache). И есть проблема, заключающаяся в нереальной тормознутости roundcube, когда, например, сообщение открывается секунд 10. Гуглил на эту тему, но безрезультатно. Может кто сталкивался и решил?
                                  –1
                                  Не знаю, какова скорость работы Roundcube по IMAP (может это здесь вообще ни причем), но тормознутость при открытии сообщений точно есть. Мне даже кажется, конф. компьютера здесь не играет роли.

                                  До этого сидел на Afterlogic webmail, там такого не было, но и функционала, конечно, такого не было как у roundcube, потому и перешел.
                                    0
                                    Roundcube это скрипт который просто забирает данные и выводит в человекопонятной форме конечному юзеру. У меня все работает уже в течении полу года, никаких проблем с «тормознутостью» не наблюдалось, м.б. ваша проблема кроется в настройке mysql или apache?
                                      –1
                                      Тогда, думаю, все должно было «задумываться» — и Afterlogic Webmail и SquirrelMail…
                                      Кстати, а Roundcube умеет работать без MySQL, лишь с файлами?
                                    +1
                                    на Linux поднимал такую связку: DBmail + Postfix + sasl + spamassassin + clamav + DBMA + Roundcube webmail
                                    0
                                    Чем Roundcube отличается, например, от Squirrelmail'а?
                                    По поводу hmailserver и баз данных. Раньше hmailserver работал с собственным MySQL, теперь поставляется c MS SQL Compact.
                                      +3
                                      Если заказчику показываешь вебдоступ к его новой почте через Squirrelmail, он шарахается от ужаса. Оно страшно как вебсайты 96 года. RoundCubе в разы приятнее и с кодировкой не глючил в моем случае.
                                        +1
                                        Тем что Squirrelmail ужасен.
                                          0
                                          SquirrelMail не просто ужасен — он чудовищен :)
                                          У моего хостера еще и папки сам создает при логине в вебморду (не знаю, хостер настроил или у SquirrelMail такая любовь к самостоятельности)

                                          p.s. про схожесть с сайтами 96-го — точнее не скажешь.
                                          0
                                          Несколько лет используем MailEnable.
                                          Standard Edition — вполне себе Free, не требует внешних баз данных, достаточно просто настраивается и стабильно работает. Попробуйте, может понравится.
                                            0
                                            Поддержу. Добавлю лишь что в бесплатной версии нет поддержки IMAP, что есть большой минус
                                            +1
                                            За roundcube "+" двумя руками — вот его здоровенный Plugin Repository — из самых нужных использую два плагина: Скачка всех аттачей единым архивом и Импорт-экспорт писем через .EML-файлы
                                              0
                                              Попробуйте всё таки разобраться с postfix+dovecot+mysql. Первый раз — по howto, второй — по man'ам, а дальше уже самостоятельно сможете, и не только почту.
                                                0
                                                Подскажите, а с помощью указанной связки можно «зеркалировать» внешний (например, яндекс) IMAP сервер? Поясню:
                                                интернет в офисе дохленький, поэтому работа даже через thunderbird медленная.
                                                Можно ли сделать так, чтобы пользователь БЫСТРО (100МБит/с) отправил письмо на внутренний сервер и пошел заниматься делами дальше. Внутренний сервер потихоньку отправил бы письмо выше.
                                                Но так, чтобы в поле письма «от кого» было pupkin@yandex.ru, а письмо «осело» в исходящих на внешнем сервере.
                                                  0
                                                  Это называется релей. Любой почтовый сервер можно настроить на релей почты. Но с этим режимом надо быть акуратно. Чуть неправильно настроишь, и твой сервер становится открытым релеем, быстренько попадает в списки открытых релеев и через него начинает течь тонны тушенки спама.
                                                    0
                                                    еще реально сделать обратную операцию т.е. с внешних ящиков письма собираются на ваш сервер, а там уже по заранее заданным правилам раскидываются сотрудникам и им не приходится заходить на тот же gmail чтобы посмотреть свою почту, экономия трафика налицо
                                                  0
                                                  У кого браузер не запрашивает сохранять ли данные логина в Roundcube — в файле
                                                  skins/default/templates/login.html
                                                  в строчку <roundcube:object name=«loginform» form=«form» /> добавьте autocomplete=«on»
                                                  чтобы получилось:

                                                  <roundcube:object name="loginform" form="form" autocomplete="on" />
                                                    0
                                                    Картинки отвалились. Поправьте, пожалуйста

                                                    Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                                                    Самое читаемое