Полноценный виртуальный почтовый сервер/Веб-доступ

From Gentoo Wiki
Jump to:navigation Jump to:search
This page is a translated version of the page Complete Virtual Mail Server/Web Access and the translation is 88% complete.
Other languages:

Введение

Одна из часто используемых функций E-mail, это доступ к почте через веб-интерфейс. Одни пользователи используют такой доступ всегда, другие только в качестве резервного доступа или когда их собственная система недоступна. Существует несколько вариантов, наиболее распространены mail-client/squirrelmail и mail-client/roundcube. Squirrelmail можно использовать, если есть проблемы с шириной канала, в противном случае рекомендуется использовать roundcube. На нем и сосредоточимся в этой статье.

Установка roundcube

Roundcube может сохранять свою конфигурацию в базу данных. Так же можно сохранять локальную адресную книгу, идентификаторы (identities) и так далее.

Here there are several options available. Use a local, per vhost based SQLite storage pool, use a postgres/mysql database per vhost or have all vhosts share the same database. There can be advantages for any of the above options. If webmail, for various domains, is on the same host as the imap server, then using one database for all domains is fine and can be an advantage. It could be desired that each domain, each vhost gets its own webmail interface (different skin and plugins) where all users could still log in. Meaning in the event of one of the vhosts webmail being broken, they can still access their e-mail normally using a different vhost. Whether the users settings 'live' in all vhosts or not, is based on the imap server. Roundcube bases its user id on the mail_host e.g. the imap server and thus when using localhost the user 'profile' is identical everywhere.

USE flags for mail-client/roundcube A browser-based multilingual IMAP client with an application-like user interface

change-password Allow users to change passwords through Roundcube
enigma Add dependencies to support server-side GnuPG signing and/or encryption through the enigma plugin
exif Add support for reading EXIF headers from JPEG and TIFF images
fileinfo Use the dev-lang/php fileinfo extension to guess the mime_type of attachments
ldap Add dependencies to support connecting to an LDAP address book server
mysql Add mySQL Database support
postgres Add support for the postgresql database
spell Add dictionary support
sqlite Add support for sqlite - embedded sql database
ssl Add support for SSL/TLS connections (Secure Socket Layer / Transport Layer Security)
vhosts Add support for installing web-based applications into a virtual-hosting environment
zip Enable support for ZIP archives

Заметка
Если sqlite не использовался, то только один необходим postgres или mysql.

После выбора подходящих USE-флагов необходимо установить roundcube:

root #emerge --ask mail-client/roundcube

Эта команда устанавливает roundcube на хост, но не в vhost.

root #webapp-config -I -h webmail.example.com -d roundcube roundcube 1.0.5
Заметка
Попробуйте использовать следующий синтаксис, если появляются ошибки:
root #webapp-config -h webmail.example.com -d roundcube -I roundcube 1.0.6

Использование Postgres

Если не требуются особые настройки по безопасности, то требуется только один пользователь базы данных для доступа ко всем базам данным, которые использует roundcube.

root #createuser -U postgres -D -P -R -S roundcube
Enter password for new role: $password
Enter it again: $password

Roundcube will also need a database. Different names will have to be chosen when using different databases per domain:

root #createdb -U postgres roundcubemail -O roundcube
Заметка
Having roundcube in a separate directory is incredibly useful. Installing (and testing) a second webmail client, for example, or migrating to a new one, can be so much easier having it on the same host. However, the standard URL, webmail.example.com won't open up roundcube anymore. To fix this, create the following file as index.php in the root of htdocs directory.
ФАЙЛ index.php
'"`UNIQ--pre-00000005-QINU`"'

Настройка Roundcube

Настройка roundcube происходит очень легко. Просто перейдите на страницу http://webmail.example.com/roundcube/installer/ и следуйте инструкциям на экране, которые появляются, отвечая на вопросы.

Ниже предоставлены старые инструкции, когда файл config.inc.php создается вручную. Тем не менее все еще необходимо воспользоваться кнопкой в установщике, чтобы создать базу данных.

Настройка Roundcube (вручную)

Настроить roundcube довольно таки просто. Отредактируйте два файла в /var/www/webmail.example.com/htdocs/roundcube/config/.

Для доступа к базе данных необходимо изменить только следующую строку. Выбранное ранее имя пользователя roundcube. Замените pass в этой строке на выбранный ранее пароль:

ФАЙЛ /var/www/webmail.example.com/htdocs/roundcube/config/db.inc.phpДоступ к базе данных
$rcmail_config['db_dsnw'] = 'pgsql://roundcube:pass@localhost/roundcubemail';

Далее перечислены основные изменения необходимые для нормальной работы roundcube. Другие настройки сделайте по своему вкусу.

ФАЙЛ /var/www/webmail.example.com/htdocs/roundcube/config/main.inc.phpНастройка roundcube
-$rcmail_config['default_host'] = '';
+$rcmail_config['default_host'] = 'localhost';
 
-$rcmail_config['smtp_server'] = '';
+$rcmail_config['smtp_server'] = 'localhost';
 
 // SMTP username (if required) if you use %u as the username Roundcube
 // will use the current username for login
+$rcmail_config['smtp_user'] = '';
-$rcmail_config['smtp_user'] = '%u';
 
 // SMTP password (if required) if you use %p as the password Roundcube
 // will use the current user's password for login
-$rcmail_config['smtp_pass'] = '';
+$rcmail_config['smtp_pass'] = '%p';
 
 // this key is used to encrypt the users imap password which is stored
 // in the session record (and the client cookie if remember password is enabled).
 // please provide a string of exactly 24 chars.
-$rcmail_config['des_key'] = 'rcmail-!24ByteDESkey*Str';
+$rcmail_config['des_key'] = '$supersecret24bytestring';

Начиная с Roundcube версии 0.6, ему необходимо указывать полноценные имена папок по умолчанию, в которых хранятся письма, такие как Trash, Drafts и так далее:

ФАЙЛ /var/www/webmail.example.com/htdocs/roundcube/config/main.inc.phpSetup fully qualified folder names
// NOTE: Use folder names with namespace prefix (INBOX. on Courier-IMAP)
-$rcmail_config['drafts_mbox'] = 'Drafts';
+$rcmail_config['drafts_mbox'] = 'INBOX.Drafts';
 
// NOTE: Use folder names with namespace prefix (INBOX. on Courier-IMAP)
-$rcmail_config['junk_mbox'] = 'Junk';
+$rcmail_config['junk_mbox'] = 'INBOX.Junk';
 
// NOTE: Use folder names with namespace prefix (INBOX. on Courier-IMAP)
-$rcmail_config['sent_mbox'] = 'Sent';
+$rcmail_config['sent_mbox'] = 'INBOX.Sent';
 
// NOTE: Use folder names with namespace prefix (INBOX. on Courier-IMAP)
-$rcmail_config['trash_mbox'] = 'Trash';
+$rcmail_config['trash_mbox'] = 'INBOX.Trash';
 
// NOTE: Use folder names with namespace prefix (INBOX. on Courier-IMAP)
-$rcmail_config['default_imap_folders'] = array('INBOX', 'Drafts', 'Sent', 'Junk', 'Trash');
+$rcmail_config['default_imap_folders'] = array('INBOX', 'INBOX.Drafts', 'INBOX.Sent', 'INBOX.Junk', 'INBOX.Trash');

Тестирование roundcube

Зайдите в веб-почту http://webmail.example.com/ и проверьте, что тестовый почтовый ящик отображается. Также проверьте, что отправка писем работает нормально.