Roundcube je open-source e-mailový klient pro prohlížeče založený na protokolu IMAP. Získal si popularitu díky podpoře ACL a využívání AJAX (Asynchronous JavaScript and XML) technologie. Nabízí vynikající funkce a komplexní možnosti, jako je správa e-mailů, MIME podpora a manipulace se složkami, abychom jmenovali alespoň některé. Kromě toho Roundcube nabízí bezproblémové vyhledávání zpráv, kontrolu pravopisu, kalendáře a správu kontaktů. Především má robustní repozitář doplňků a další možnosti přizpůsobení ve srovnání s jinými populárními klienty pro prohlížeče.
Roundcube je MUA. Na rozdíl od MTA budete potřebovat službu, která spravuje vaše e-maily, nejlépe pomocí vašeho poštovního serveru. Podívejte se na náš návod na konfiguraci poštovního serveru, abyste přidali poštovní server podle svého výběru.
Když odešlete e-mail, MUA jej přenese na svůj server MTA pomocí protokolu SMTP. Po několika skocích přijímající MTA e-mail obdrží a přenese jej do svého MDA pomocí protokolu IMAP. Nakonec si příjemce e-mail zobrazí pomocí MUA.
Pojďme si tyto pojmy vysvětlit:
- MUA: Mail user agent je rozhraní, které umožňuje interakci uživatele pro prohlížení a odesílání e-mailů.
- MTA: Mail transfer agent přenáší e-maily od odesílatele k příjemci.
- SMTP: Simple Mail Transfer Protocol je protokol, který MUA používá k odesílání e-mailů do MTA.
- MDA: Všechny e-maily odeslané z MTA jsou přijaty a uloženy u doručovacího agenta pošty (mail delivery agent).
- IMAP: Internet Message Access Protocol je protokol, který MDAs používají k doručování pošty do MUA.
V tomto návodu vás provedeme kroky instalace webmailového klienta s Roundcube na Ubuntu 20.04.
Začněme!
Požadavky
Chcete-li postupovat podle tohoto návodu, budete potřebovat následující:
- Nejnovější verzi nainstalovaného Ubuntu na vašem systému.
- Systémoví uživatelé musí mít oprávnění sudo a firewall.
- Kromě toho můžete využít iptables ke konfiguraci firewallů na vašem systému.
- LAMP stack.
- Nastavte jej podle návodu Jak nastavit LAMP Stack
- E-mailový server založený na protokolu IMAP.
Krok 1: Instalace rozšíření a závislostí
Než začateme, aktualizujme repozitáře, abychom předešli konfliktům softwaru:
|
1 |
sudo apt update |
Dále nainstalujeme závislosti Roundcube a nakonfigurujeme PHP. K instalaci PHP rozšíření a knihoven použijte následující příkaz:
|
1 |
sudo apt-get install php-xml php-mbstring php-intl php-zip php-pear zip unzip git composer |
Ve výchozím nastavení je několik PHP knihoven zakázáno. Tyto knihovny musíme povolit přechodem do souboru php.ini serveru, který se nachází v /etc/php/7.0/apache2/php.ini. Otevřete soubor php.ini pomocí textového editoru nano:
|
1 |
sudo nano /etc/php/7.0/apache2/php.ini |
Na rozdíl od většiny běžně používaných možností komentování začínajících hashtagem ( #), používáme k zakomentování a odkomentování řádků středník ( ;) Chcete-li řádek zakomentovat, přidejte na začátek středník. Podobně středník odstraňte, chcete-li řádek odkomentovat.
Podívejme se na sekci obsahující zakomentované řádky začínající na extension=. Odstraňte středníky pro odkomentování rozšíření php_mbstring.dll a php_xmlrpc.dll :
|
1 2 3 4 5 6 7 8 9 10 11 12 |
. . . ;extension=php_interbase.dll ;extension=php_ldap.dll extension=php_mbstring.dll ;extension=php_exif.dll ; Musí být po mbstring, protože na něm závisíit ;extension=php_mysqli.dll . . . ;extension=php_sqlite3.dll ;extension=php_tidy.dll extension=php_xmlrpc.dll ;extension=php_xsl.dll . . . |
Kromě toho přidejte extension=dom.so na konec bloku rozšíření:
|
1 2 3 4 5 |
. . . extension=php_xmlrpc.dll ;rozšíření=php_xsl.dll rozšíření=dom.so . . . |
- Upravit soubory:
- Změňte date.timezone:
Přejděte do nastavení, přejděte na date.timezone, a odkomentujte jej. Dále přidejte své časové pásmo pomocí uvozovek. Podívejte se na stránku s časovými pásmy PHP abyste viděli, jak formátované časové pásmo vypadá v souboru php.ini . Pokud jste například z Evropy, váš soubor bude vypadat takto:
|
1 2 3 4 5 6 |
. . . [Datum] ; Definuje the výchozí časové pásmo používané by the datovými funkcemi ; http://php.net/date.timezone date.timezone = "Europe/Moscow" . . . |
-
- Upravte upload_max_filesize soubor:
Poté přejděte na nastavení upload_max_filesize . Ve výchozím nastavení uvidíte maximální limit nastavený na 2 MB. Podle svých potřeb můžete maximální velikost souboru libovolně zvýšit. Většina e-mailových serverů však omezuje celkovou velikost příloh do 10 MB. V této příručce ponecháme maximální velikost 13 MB, aby mohlo přílohy přidávat více uživatelů současně:
|
1 2 3 4 5 |
. . . ; Maximální povolená velikost pro nahrávané soubory. ; http://php.net/upload-max-filesize upload_max_filesize = 13M . . . |
-
- Upravte post_max_size soubor:
Nyní vyhledejte post_max_size. Na rozdíl od nastavení upload_max_filesize , které se vztahuje na přílohy, se post_max_size vztahuje na velikost celého e-mailu (včetně příloh). Nastavme naši hodnotu post_max_size na vyšší hodnotu, abychom předešli zablokování:
|
1 2 3 4 5 6 7 |
. . . ; Maximální velikost of POST dat kterou PHP will přijme. ; Jeho hodnota může být 0 pro zakázání the limitu. Je is ignorována pokud čtení dat POST ; je zakázáno pomocí enable_post_data_reading. ; http://php.net/post-max-size post_max_size = 20M . . . |
-
- Nastavte hodnotu func_overload :
Nakonec vyhledejte mbstring.func_overload = 0 a odkomentujte jej. Také se ujistěte, že je jeho hodnota nastavena na null, aby podporoval vícebajtové řetězcové funkce:
|
1 2 3 4 |
. . . . . . mbstring.func_overload = 0 . . . |
Uložte všechny změny a poté soubor zavřete. Náš server je nastaven s LAMP stackem, závislostmi Roundcube a požadovanou konfigurací PHP. V dalším kroku stáhneme software Roundcube, nainstalujeme jej a nakonfigurujeme.
Krok 2: Stažení Roundcube
Přejděte na stránku pro stažení Roundcube, vyberte sekci Stabilní verze a vyhledejte Kompletní balíček. Poté klikněte pravým tlačítkem myši na tlačítko Stáhnout a vyberte Kopírovat adresu odkazu. Pomocí této adresy s příkazem wget stáhněte archiv Roundcube (tarball) na server:
|
1 |
wget https://github.com/roundcube/roundcubemail/releases/download/1.5.2/roundcubemail-1.5.2-complete.tar.gz |
Poté budete muset archiv Roundcube dekomprimovat:
|
1 |
wget tar -xvzf roundcubemail-1.5.2-complete.tar.gz |
Použité argumenty mohou znít matoucí, zvláště pokud jste úplný nováček. Zde je vysvětlení, co jednotlivé příznaky znamenají:
- x: Znamená rozbalit (extract).
-
v: Znamená podrobný výpis (verbose).
- Informuje tar, aby vypsal cestu a názvy rozbalených souborů.
-
z: Informuje tar, aby odstranil obal
tar a dekomprimoval archiv pomocí gzip.
- Komprimovaný soubor gzip bude mít na konci příponu .gz .
- f: Znamená soubor (file).
Vynechejte koncové / v adresáři, protože přesouváme a přejmenováváme celý adresář, nikoli pouze jeho obsah. Nyní přesuňme dekomprimovaný adresář do /var/www a přejmenujme jej na roundcube:
|
1 |
sudo mv roundcubemail-1.5.2 /var/www/roundcube |
Nastavte oprávnění pro Apache pro vytváření a úpravu konfiguračních souborů a souborů protokolů. Poté změňte vlastníka a skupinu na www-data. Také se ujistěte, že jste povolili oprávnění ke čtení a zápisu pro vlastníka a skupinu:
|
1 |
sudo chown -R www-data:www-data /var/www/roundcube/ |
|
1 |
sudo chmod 775 /var/www/roundcube/temp/ /var/www/roundcube/logs/ |
Ačkoli jsme stáhli kód Roundcube a nastavili potřebná oprávnění, naše instalace je stále neúplná. Připojení Roundcube k naší databázi prostřednictvím grafického rozhraní Roundcube nás teprve čeká. Než budeme pokračovat dále, musíme aktualizovat Apache a jeho konfiguraci, abychom ho informovali o základním umístění Roundcube.
Krok 3: Nastavení a konfigurace Apache
V tomto kroku upravíme soubor virtuálního hostitele pro konfiguraci Apache. Pomocí virtuálního hostování Apache, budeme hostovat více webů na jednom serveru. I když Apache hostuje pouze jeden web, je méně nepřehledné a jednodušší použít konfigurační soubor virtuálního hostitele ve srovnání s úpravou hlavní konfigurace Apache. Chcete-li přidat další vrstvu zabezpečení, zvažte zabezpečení Apache pomocí Let’s Encrypt.
Každý .conf soubor v /etc/apache2/sites-available/ představuje jiný web. Vytvořme zde soubor virtuálního hostitele pro Roundcube a informujme Apache, aby jej zpřístupnil pro prohlížeč.
Nejprve zkopírujte výchozí konfigurační soubor, abyste jej mohli použít jako výchozí bod pro nový soubor:
|
1 |
sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/roundcube.conf |
Otevřete soubor pomocí nano textového editoru:
|
1 |
sudo nano /etc/apache2/sites-available/roundcube.conf |
Je zde několik změn, které budeme muset upravit. Pojďme si projít každou z nich a poté poskytneme celý soubor ke zkopírování a vložení.
Nejprve změňte následující direktivy ve stávajícím VirtualBlock hostiteli:
-
ServerName: Informuje Apache, aby vybral doménu.
- Pokud používáte jeden server, pak tento ServerName bude IP adresa nebo název domény vašeho serveru.
-
DocumentRoot: Když přichází provoz, směruje ho, kam ho poslat.
- V našem návodu budeme posílat provoz do Roundcube na /var/www/roundcube.
- ServerAdmin: Pokud nastane problém s Apache, ServerAdmin určuje kontaktní e-mailovou adresu.
-
ErrorLog a CustomLog: Definuje, kam ukládat protokoly o úspěšných připojeních a chybové protokoly pro tento web.
- Používejte specifické názvy pro definování chybových protokolů, aby bylo možné případné problémy specifické pro daný web snadno detekovat.
Poté přidáte nový Directory blok, který informuje Apache, co má dělat s adresářem Roundcube. Blok Directory se skládá ze dvou slov, kde první slovo na každém řádku je název konfigurace následovaný samotnými možnostmi konfigurace.
- Options -Indexes: Informuje Apache, aby zobrazil varování, pokud zjistí, že chybí soubor index.html nebo index.php . Ve výchozím nastavení zobrazuje obsah adresáře.
- AllowOverride All: Informuje Apache, že pokud je detekován lokální soubor .htaccess , musí přepsat globální nastavení.
- Order allow,deny: Instruuje Apache, aby porovnal přístup klienta k webu a odmítl ty, které neodpovídají.
- allow from all: Definuje typ povolených klientů.
Jakmile provedete tyto změny, uvidíte soubor takto:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 |
<VirtualHost *:80> ServerName your_server_ip_or_domain DocumentRoot /var/www/roundcube ServerAdmin paul@demo.com ErrorLog ${APACHE_LOG_DIR}/roundcube-error.log CustomLog ${APACHE_LOG_DIR}/roundcube-access.log combined <Directory /var/www/roundcube> Options -Indexes AllowOverride All Order allow,deny allow from all </Directory> </VirtualHost> |
Uložte všechny změny a zavřete soubor. Nyní požádáme Apache, aby přestal hostovat výchozí web:
|
1 |
sudo a2dissite 000-default |
Poté dáme Apache pokyn, aby místo toho začal hostovat web Roundcube. Při povolování webu nezahrnujte .conf protože a2ensite vyžaduje název souboru bez přípony:
|
1 |
sudo a2ensite roundcube |
Dále zapněte the mod_rewrite modul Apache:
|
1 |
sudo a2enmod rewrite |
Nakonec restartujte Apache, abyste povolili přístup k instalaci Roundcube:
|
1 |
sudo apache2ctl restart |
V posledním kroku musíme nakonfigurovat databázi, aby Roundcube mohl ukládat a spravovat svá data specifická pro aplikaci.
Krok 4: Nastavení a konfigurace MySQL
Zkuste přistoupit k serveru pomocí IP adresy nebo názvu domény. Na stránce se zobrazí chyba konfigurace. Zde Roundcube kontroluje soubor vygenerovaný během nastavení konfigurace, ale naše nastavení konfigurace je neúplné. Než nastavíme naši konfiguraci, připravme si databázi.
- Připojení k MySQL: Připojme se k interaktivnímu shellu MySQL pomocí uživatelského jména a hesla:
Jakmile zadáte výše uvedený příkaz, budete požádáni o ověření pomocí hesla root, které jste vytvořili při instalaci MySQL.1mysql -u root -p - Vytvoření databáze a uživatele: Nyní, když jste úspěšně přihlášeni, vytvořme databázi a uživatele databáze. Poté povolíme uživatelská oprávnění ke spouštění příkazů v naší nové databázi.
- Vytvoření databáze: Pomocí následujícího příkazu vytvořte databázi s názvem
roundcubemail. Dále zadejte možnosti databáze, jako je znaková sada, kterou chcete použít
utf8:
MySQL nabízí robustní zabezpečení a pokročilou bezpečnost. Definuje uživatele podle jména a zdroje připojení. Výše uvedený příkaz vytvoří uživatele s názvem roundcube a definuje uživatele pro připojení z localhost.1mysql> CREATE DATABASE roundcubemail /*!40101 CHARACTER SET utf8 COLLATE utf8_general_ci */; - Přejmenování databáze: Přejmenujme uživatele a upravme naše heslo:
1mysql> CREATE USER 'roundcube'@'localhost' IDENTIFIED BY 'password'; - Nastavení oprávnění: Povolte uživateli roundcube všechna oprávnění k
roundcubemail databázi a tabulkám:
Uložte změny a ukončete interaktivní shell MySQL:1mysql> GRANT ALL PRIVILEGES ON roundcubemail.* to 'roundcube'@'localhost';
12mysql> FLUSH PRIVILEGES;mysql> EXIT;
Naším dalším krokem je nastavení struktury databáze, která pomáhá Roundcube ukládat všechny informace. Roundcube je dodáván s databázovým souborem, který nastavuje data automaticky, což by jinak vyžadovalo namáhavé úsilí při ruční konfiguraci.
Pomocí následujícího příkazu MySQL použije našeho nově vytvořeného uživatele ke čtení souboru /var/www/roundcube/SQL/mysql.initial.sql. Také použije konfiguraci na databázi roundcubemail:
|
1 |
mysql -u roundcube -p roundcubemail < /var/www/roundcube/SQL/mysql.initial.sql |
Nyní budete požádáni o zadání hesla uživatele roundcube. Naše nastavení databáze připraví Roundcube k použití a umožní nám ověřit správná oprávnění. Pokud byly všechny kroky úspěšně provedeny, nezobrazí se žádná odezva a vrátíte se na příkazový řádek. V dalším kroku sdělíme Roundcube naše nastavení e-mailu a dokončíme instalaci.
Krok 5: Nastavení a konfigurace Roundcube
Pokud se nyní pokusíte o přístup k instalaci Roundcube, zobrazí se chybová stránka. Navštivte http://your_server_ip_or_domain/installer pro dokončení instalace.
Pokud je nastavení provedeno správně, uvidíte zelené OK napravo od každé položky řádku. V nepovinných nastaveních LDAP v MySQL však zelené OK možná neuvidíte. Pokud uvidíte zprávu NEDOSTUPNÉ vedle jakéhokoli jiného řádku, musíte tyto nedostupné závislosti nainstalovat. Pokud jste zapomněli stáhnout některou ze závislostí, můžete přejít na URL adresu a ihned ji stáhnout.
Jakmile je nastavení hotovo, přejděte dolů a klikněte na tlačítko DALŠÍ. Pojďme si projít generování konfiguračního souboru Roundcube. Podívejte se na části formuláře, které musíme upravit.
- Obecná konfigurace
V sekci Obecná konfigurace upravíme několik přizpůsobení a některá obecná nastavení:
- ip_check: Jedná se o možnost konfigurace zabezpečení a ověřuje IP adresu klienta při autorizaci relace.
- product_name: Přejmenujte název produktu podle libosti. Tento název mapuje „Roundcube“ v textu a je nahrazen tímto názvem.
- support_url: Podpora v instalaci Roundcube. Pokud nemáte vyhrazený web technické podpory, raději použijte e-mailovou adresu jako walker:paul@demo.com.
- skin_logo: Nahraďte logo Roundcube za skin_logo. Chcete-li povolit HTTPS, zvolte obrázek s URL adresou HTTPS (178px na 47px).
Ostatní nastavení ponechte na výchozích hodnotách.
- Protokolování & ladění: Pojďme s výchozími možnostmi.
- Nastavení databáze: Místo explicitního používání vaší pošty používá Roundcube k ukládání informací pro běh webového klienta MySQL. Zde musíme Roundcube informovat, aby přistupoval k databázi, kterou jsme nastavili v Kroku 4. Použijte přihlašovací údaje k databázi, které jsme vytvořili dříve:
- Databáze: MySQL
- Server: localhost
- Název databáze: roundcubemail
- Uživatel: roundcube
- Heslo:
demo12345@
- Použijte heslo, které jste definovali a které jsme nastavili v Kroku 4.
- Db_prefix: Toto je volitelné, pokud nepoužíváte sdílenou databázi s jinými aplikacemi.
- Úprava IMAP: Nastavme nastavení IMAP a SMTP pro váš e-mailový server. Vzhledem k tomu, že se tento návod zaměřuje na Gmail jako příklad, použijeme v našem nastavení IMAP nastavení Gmailu. Pokud se však rozhodnete pro jiné poskytovatele služeb, jako je Yahoo nebo Outlook, musíte použít jejich příslušná nastavení. Mnoho poskytovatelů e-mailu podporuje připojení s šifrováním nebo bez něj. Standardně používejte SSL IMAP/SMTP URL adresy a porty, abyste se vyhnuli používání nezabezpečených připojení.
- default_host: ssl://imap.gmail.com
- default_port: 993
- auto_create_user:
Ano ☑
- Pokud toto políčko není zaškrtnuto, Roundcube nevytvoří uživatele ve své vlastní databázi a zabrání vám v přihlášení.
- Pole *_mbox: Ponechte výchozí hodnoty.
- Toto můžete později aktualizovat v uživatelském rozhraní Roundcube.
- Úprava SMTP: SMTP server je nedílnou součástí e-mailu, která se používá k odesílání e-mailů. Podobně jako v sekci IMAP serveru použijeme SSL URL adresu a port. Pokud nemáte zkušenosti s používáním SMTP serverů, postupujte podle osvědčených postupů pro SMTP, abyste se o těchto typech serverů dozvěděli více. Zde jako příklad používáme Gmail:
- pole smtp_server: ssl://smtp.gmail.com
- pole smtp_port: 465
- SMTP a IMAP jsou dvě různé služby, proto obě vyžadují uživatelské jméno a heslo. Roundcube nám však umožňuje použít přihlašovací údaje IMAP, takže je není nutné znovu vytvářet. Ponechte pole pod smtp_user/smtp_pass prázdná a zaškrtněte políčko vedle Použít aktuální uživatelské jméno a heslo IMAP pro ověření SMTP.
- smtp_log: Ano ☑
- Úprava nastavení zobrazení & uživatelských předvoleb: Pojďme s výchozím nastavením zobrazení a uživatelskými předvolbami. Pokud se rozhodnete přizpůsobit instalaci Roundcube, klikněte na odkaz RFC1766 na stránce konfigurace a ručně aktualizujte pole language ručně.
- Pluginy: Roundcube nabízí podporu pluginů, která zvyšuje bezpečnost. Pluginy jsou volitelné, nicméně je můžete využít k usnadnění práce. Podívejme se na seznam nejpoužívanějších pluginů:
- archive: Tento plugin poskytuje tlačítko Archivovat, které funguje podobně jako v Gmailu.
- emoticons: Toto umožňuje používání emotikonů v e-mailech.
- enigma: Usnadňuje používání šifrování e-mailů pomocí GPG.
- filesystem_attachments: Umožňuje dočasně ukládat přílohy na server Roundcube při ukládání konceptu e-mailu.
- hide_blockquote: Tento plugin skrývá citovanou část e-mailů s odpovědí, aby udržel uživatelské rozhraní čisté.
- identity_select: Umožňuje uživateli vybrat více e-mailových adres při psaní e-mailu.
- markasjunk: Tento plugin umožňuje označit e-mail jako spam a přesunout jej do složky Spam.
- newmail_notifier: Upozorňuje na nové e-maily pomocí systému oznámení prohlížeče.
Kliknutím na tlačítko UPDATE CONFIG uložíte nastavení. V posledním kroku otestujeme konfiguraci Roundcube, abychom se ujistili, že vše funguje správně.
Krok 6: Otestování nastavení Roundcube
Jakmile aktualizujete konfiguraci, stránka se obnoví a v horní části stránky se zobrazí žluté informační pole s textem, že Konfigurační soubor byl úspěšně uložen do RCMAIL_CONFIG_DIR adresáře vaší instalace Roundcube.
Poté klikněte na tlačítko CONTINUE pro otestování vaší konfigurace. Podobně jako na stránce kontroly závislostí uvidíte na každém řádku zelenou značku OK, pokud se nevyskytnou žádné chyby. Pokud uvidíte nějaké chyby, vraťte se zpět a zkontrolujte své zadání.
Zadejte své uživatelské jméno a heslo pro IMAP a SMTP do sekcí Test SMTP config a Test IMAP config pro otestování zbytku konfigurace. Podobně klikněte na Send test email a Check login. Pokud jste správně postupovali podle všech kroků, stránka se obnoví a uvidíte zelené OK pod testovanou sekcí.
Jakmile ověříte, že připojení SMTP i IMAP fungují v pořádku, dalším krokem je odstranění instalačního adresáře pomocí SSH. Odstranění instalačního adresáře je bezpečný způsob, jak zabránit ostatním v generování nové konfigurace a přepsání správného nastavení:
|
1 |
sudo rm -rf /var/www/roundcube/installer/ |
Nakonec můžete přejít na instanci Roundcube pomocí IP adresy vašeho serveru a ověřit svůj e-mail.
Závěr
V tomto návodu jsme se naučili nainstalovat webového e-mailového klienta pomocí Roundcube na Ubuntu 20.04. Kromě výše popsaných kroků existují další možnosti zabezpečení, jako je podpora HTTPS a šifrování GPG, o jejichž přidání byste měli uvažovat. Berte to jako odpovědnost za ochranu svých serverů pomocí robustních bezpečnostních opatření.
Kromě toho existuje mnoho dalších výukových materiálů o Redis a PHP, ke kterým máte přístup z našich blogů:
- Jak nainstalovat a zabezpečit Redis na Ubuntu 18.04
- Instalace phpBB na Ubuntu 20.04
- Instalace a zabezpečení phpMyAdmin na Ubuntu 18.04
- Nasazení PHP aplikace na Kubernetes cluster s Ubuntu 18.04
Příjemnou práci s počítačem!
Komentáře
Zatím žádné komentáře. Buďte první.