Terug naar blog

Webmailclient installeren met Roundcube op Ubuntu 20.04: Een handleiding

Webmailclient installeren met Roundcube op Ubuntu 20.04: Een handleiding

Roundcube is een open-source IMAP browsergebaseerde e-mailclient. Het is populair geworden vanwege de ondersteuning van ACL's en het gebruik van AJAX (Asynchronous JavaScript and XML) technologie. Het heeft uitstekende functies en end-to-end functionaliteiten zoals e-mailbeheer, MIME ondersteuning en mapmanipulatie, om er maar een paar te noemen. Daarnaast biedt Roundcube naadloos zoeken naar berichten, spellingcontrole, agenda's en contactbeheer. Bovenal heeft het een robuuste plugin-repository en extra aanpassingsopties in vergelijking met andere populaire browsergebaseerde clients.

Roundcube is een MUA. In tegenstelling tot een MTA, heb je een service nodig die je e-mail beheert, bij voorkeur via je eigen mailserver. Bekijk onze Mail Server Configuratie handleiding om de mailserver van je keuze toe te voegen.

Wanneer je een e-mail verzendt, draagt de MUA deze over aan de MTA-server via SMTP. Na een paar sprongen ontvangt de ontvangende MTA de e-mail en draagt deze over aan hun MDA via IMAP. Ten slotte bekijkt de ontvanger de e-mail met behulp van de MUA.

Laten we deze termen begrijpen:

  • MUA: Een mail user agent is een interface die gebruikersinteractie mogelijk maakt om e-mails te bekijken en te verzenden.
  • MTA: Een mail transfer agent draagt e-mail over van de verzender naar de ontvanger.
  • SMTP: Een Simple Mail Transfer Protocol is een protocol dat de MUA gebruikt om e-mails naar de MTA te sturen.
  • MDA: Alle e-mails die vanaf de MTA worden verzonden, worden ontvangen en opgeslagen bij de mail delivery agent.
  • IMAP: Internet Message Access Protocol is een protocol dat MDA's gebruiken om e-mail af te leveren bij de MUA.

In deze handleiding zullen we je door de stappen leiden voor het installeren van een webmailclient met Roundcube op Ubuntu 20.04.

Laten we beginnen!

Vereisten

Om deze handleiding te volgen, heb je het volgende nodig:

Stap 1: Installeer extensies en afhankelijkheden

Voordat we beginnen, updaten we de repositories om softwareconflicten te voorkomen:

Vervolgens installeren we de Roundcube-afhankelijkheden en configureren we PHP. Gebruik de volgende opdracht om PHP-extensies en -bibliotheken te installeren:

Standaard zijn een paar PHP-bibliotheken uitgeschakeld. We moeten die bibliotheken inschakelen door naar het php.ini-bestand van de server te navigeren, gelegen op /etc/php/7.0/apache2/php.ini. Open het php.ini bestand met de nano-teksteditor:

In tegenstelling tot de meest gebruikte commentaaropties die beginnen met een hashtag ( #), gebruiken we een puntkomma ( ;) om regels in en uit te commentariëren. Voeg een puntkomma aan het begin toe om een regel te commentariëren. Verwijder op dezelfde manier een puntkomma om een regel uit te commentariëren.

Laten we kijken naar de sectie met gecommentarieerde regels die beginnen met extension=. Verwijder de puntkomma's om de extensies php_mbstring.dll en php_xmlrpc.dll te decommentariëren:

Voeg daarnaast de extension=dom.so toe onderaan het extensieblok:

  • Bestanden aanpassen:
    • Wijzig de date.timezone:

Ga naar de instellingenoptie, navigeer naar date.timezone, en verwijder het commentaarteken. Voeg vervolgens uw tijdzone toe met behulp van aanhalingstekens. Bekijk PHP’s tijdzonepagina om te zien hoe de geformatteerde tijdzone eruitziet in het php.ini bestand. Als u bijvoorbeeld uit Europa komt, ziet uw bestand er als volgt uit:

    • Wijzig het upload_max_filesize bestand:

Navigeer vervolgens naar de upload_max_filesize instelling. Standaard ziet u dat de maximale limiet is ingesteld op 2MB. Afhankelijk van uw behoeften kunt u de maximale bestandsgrootte naar wens verhogen. De meeste e-mailservers beperken de totale grootte van bijlagen echter tot 10MB. In deze handleiding houden we de maximale grootte op 13MB, zodat meerdere gebruikers tegelijkertijd bijlagen kunnen toevoegen:

    • Wijzig het post_max_size bestand:

Navigeer nu naar het zoeken naar post_max_size. In tegenstelling tot de upload_max_filesize instelling die van toepassing is op bijlagen, wordt post_max_size toegepast op de grootte van de hele e-mail (inclusief bijlagen). Laten we onze post_max_size instellen op een hogere waarde om deadlocks te voorkomen:

    • Stel de func_overload waarde in:

Zoek ten slotte naar mbstring.func_overload = 0 en verwijder het commentaarteken. Zorg er ook voor dat de waarde is ingesteld op null, zodat deze multibyte-tekenreeksfuncties ondersteunt:

Sla alle wijzigingen op en sluit vervolgens het bestand. Onze server is nu geconfigureerd met de LAMP-stack, de afhankelijkheden van Roundcube en de vereiste PHP-configuratie. In de volgende stap gaan we de Roundcube-software downloaden, installeren en configureren.

Stap 2: Roundcube downloaden

Ga naar de Roundcube downloadpagina, kies de sectie Stabiele versie en zoek naar het Volledige pakket. Klik vervolgens met de rechtermuisknop op de knop Downloaden en selecteer Linkadres kopiëren. Gebruik het adres met wget om het Roundcube-tarball op de server te downloaden:

Daarna moet u het Roundcube-archief uitpakken:

De gebruikte argumenten kunnen verwarrend klinken, vooral als u hier helemaal nieuw in bent. Hier is een uitleg van wat elke vlag betekent:

  • x: Staat voor uitpakken.
  • v: Staat voor uitgebreid.
    • Informeert tar om het pad en de namen van de uitgepakte bestanden af te drukken.
  • z: Informeert tar om de tar -wrapper te verwijderen en het archief te decompresseren met gzip.
    • De gecomprimeerde gzip-bestandsextensie heeft .gz aan het einde.
  • f: Staat voor bestand.

Laat de afsluitende / in de directory weg, omdat we de hele directory verplaatsen en hernoemen, en niet alleen de inhoud ervan. Laten we nu de uitgepakte directory verplaatsen naar /var/www en deze hernoemen naar roundcube:

Stel machtigingen in voor Apache om de configuratie- en logbestanden te maken en te bewerken. Wijzig vervolgens de eigenaar en groep naar www-data. Zorg er ook voor dat de lees- en schrijfrechten voor de eigenaar en groep zijn toegestaan:

Hoewel we de code van Roundcube hebben gedownload en de benodigde machtigingen hebben ingesteld, is onze installatie nog onvolledig. Het verbinden van Roundcube met onze database via de GUI van Roundcube moet nog gebeuren. Voordat we verder gaan, moeten we Apache en de configuratie ervan bijwerken om de basislocatie van Roundcube door te geven.

Stap 3: Apache installatie en configuratie

In deze stap bewerken we het virtual host-bestand om Apache te configureren. Met behulp van Apache virtual hosting, hosten we meerdere sites op één server. Zelfs als Apache een enkele site host, is het minder rommelig en eenvoudiger om een virtual host-configuratiebestand te gebruiken in vergelijking met het bewerken van de Apache-configuratie. Overweeg om een extra beveiligingslaag toe te voegen door securing Apache with Let’s Encrypt.

Elk .conf-bestand in de /etc/apache2/sites-available/ vertegenwoordigt een andere site. Laten we hier een virtual host-bestand maken voor Roundcube en Apache opdracht geven om dit beschikbaar te maken voor de browser.

Kopieer eerst het standaard configuratiebestand om dit als uitgangspunt te gebruiken voor het nieuwe bestand:

Open het bestand met de nano teksteditor:

Er zijn verschillende wijzigingen die we moeten aanbrengen. Laten we ze allemaal doorlopen en vervolgens het volledige bestand aanbieden om te kopiëren en te plakken.

Wijzig eerst de volgende richtlijnen in de bestaande VirtualBlock host:

  • ServerName: Informeert Apache om het domein te kiezen.
    • Als u één server gebruikt, dan is deze ServerName uw server-IP-adres of domeinnaam.
  • DocumentRoot: Wanneer het verkeer binnenkomt, bepaalt dit waar het naartoe moet worden gestuurd.
    • In onze handleiding sturen we verkeer naar Roundcube op /var/www/roundcube.
  • ServerAdmin: Als er een probleem optreedt met Apache, specificeert de ServerAdmin een contact-e-mailadres.
  • ErrorLog en CustomLog: Definieert waar succesvolle verbindingslogboeken en foutenlogboeken voor deze site moeten worden opgeslagen.
    • Gebruik specifieke namen om foutenlogboeken te definiëren, zodat eventuele problemen die specifiek zijn voor de site moeiteloos worden gedetecteerd.

Vervolgens voegt u een nieuw Directory-blok toe dat Apache informeert wat er met de Roundcube-map moet gebeuren. De Directory bestaat uit twee woorden, waarbij het eerste woord op elke regel de configuratienaam is, gevolgd door de daadwerkelijke configuratieopties.

  • Options -Indexes: Informeert Apache om een waarschuwing weer te geven als het een ontbrekend index.html- of index.php-bestand vindt. Standaard wordt de inhoud van de map weergegeven.
  • AllowOverride All: Informeert Apache dat als er een lokaal .htaccess-bestand wordt gedetecteerd, dit de globale instellingen moet overschrijven.
  • Order allow,deny: Instrueert Apache om de toegang van de client tot de site te controleren en de niet-overeenkomende te weigeren.
  • allow from all: Definieert het type toegestane clients.

Zonda u deze wijzigingen hebt aangebracht, ziet het bestand er als volgt uit:

Sla alle wijzigingen op en sluit het bestand. Laten we nu Apache vragen om te stoppen met het hosten van de standaardsite:

Daarna instrueren we Apache om in plaats daarvan de Roundcube-site te gaan hosten. Neem bij het inschakelen van de site niet de .conf  op omdat de a2ensite de bestandsnaam zonder extensie vereist:

Zet vervolgens AAN de mod_rewrite Apache-module:

Start ten slotte Apache opnieuw op om de toegankelijkheid van de Roundcube-installatie in te schakelen:

In de laatste stap moeten we de database configureren, zodat Roundcube de app-specifieke gegevens kan opslaan en beheren.

Stap 4: MySQL-installatie en -configuratie

Probeer toegang te krijgen tot uw server met behulp van het IP-adres of de domeinnaam. U ziet een configuratiefout op de pagina verschijnen. Hier controleert Roundcube op een bestand dat is gegenereerd tijdens de configuratie, maar onze configuratie is onvolledig. Voordat we onze configuratie instellen, gaan we onze database gereedmaken.

  1. Verbinding maken met MySQL: Laten we verbinding maken met de interactieve MySQL-shell met behulp van de gebruikersnaam en het wachtwoord:
    Zodra u de bovenstaande opdracht uitvoert, wordt u gevraagd uzelf te authenticeren met het root-wachtwoord dat u hebt aangemaakt tijdens de installatie van MySQL.
  2. Database en gebruiker aanmaken: Nu u succesvol bent ingelogd, gaan we een database en een databasegebruiker aanmaken. Daarna verlenen we de gebruiker machtigingen om opdrachten uit te voeren op onze nieuwe database.
  3. De database aanmaken: Gebruik de volgende opdracht om een database aan te maken met de naam roundcubemail. Geef vervolgens database-opties op, zoals de te gebruiken tekenset utf8:
    MySQL biedt robuuste beveiliging en geavanceerde veiligheid. Het definieert een gebruiker op naam en de bron van de verbinding. De bovenstaande opdracht maakt een gebruiker aan met de naam roundcube en definieert dat de gebruiker verbinding maakt vanaf localhost.
  4. De database hernoemen: Laten we de gebruiker hernoemen en ons wachtwoord wijzigen:
  5. Machtigingen instellen: Geef roundcube-gebruikers alle machtigingen op de roundcubemail database en tabellen:
    Sla uw wijzigingen op en sluit de interactieve MySQL-shell af:

Onze volgende stap is het opzetten van de databasestructuur die Roundcube helpt alle informatie op te slaan. Roundcube wordt geleverd met een databasebestand dat de gegevens automatisch instelt, wat handmatig veel moeite zou kosten om te configureren.

Met behulp van de volgende opdracht zal MySQL onze nieuw aangemaakte gebruiker gebruiken om een bestand in te lezen /var/www/roundcube/SQL/mysql.initial.sql. Bovendien zal het de configuratie toepassen op de database roundcubemail:

Nu wordt u gevraagd om het wachtwoord van de roundcube-gebruiker in te voeren. Onze database-installatie bereidt het gebruik van Roundcube voor en stelt ons in staat om de juiste machtigingen te verifiëren. Als alle stappen met succes zijn uitgevoerd, is er geen feedback en keert u terug naar uw opdrachtprompt. In de volgende stap vertellen we Roundcube onze e-mailinstellingen en voltooien we de installatie.

Stap 5: Roundcube-installatie en -configuraties

Als u nu probeert toegang te krijgen tot uw Roundcube-installatie, krijgt u een foutpagina. Ga naar http://your_server_ip_or_domain/installer om de installatie te voltooien.

Als de installatie correct is uitgevoerd, ziet u een groene OK rechts van elk regelitem. Het kan echter zijn dat u de groene OK niet ziet in de optionele LDAP-instellingen in MySQL. Als u het bericht ziet NIET BESCHIKBAAR naast een andere regel ziet, moet u deze niet-beschikbare afhankelijkheden installeren. Als u het downloaden van een van de afhankelijkheden hebt gemist, kunt u naar de URL navigeren en deze meteen downloaden.

Zodra de installatie is voltooid, scrolt u naar beneden en klikt u op de VOLGENDE-knop. Laten we het genereren van het Roundcube-configuratiebestand doorlopen. Bekijk de delen van het formulier die we moeten aanpassen.

  • Algemene configuratie

Er zijn een paar aanpassingen en enkele algemene instellingen die we zullen wijzigen in de sectie Algemene configuratie:

  • ip_check: Het is een beveiligingsconfiguratieoptie en verifieert het IP-adres van de client bij sessie-autorisatie.
  • product_name: Wijzig de productnaam naar wens. Deze naam vervangt "Roundcube" in de tekst.
  • support_url: Ondersteuning in de Roundcube-installatie. Als u geen speciale helpdesksite hebt, gebruik dan bij voorkeur een e-mailadres zoals walker:paul@demo.com.
  • skin_logo: Vervang het Roundcube-logo door skin_logo. Om HTTPS in te schakelen, kiest u een HTTPS-afbeeldings-URL (178px bij 47px).

Laat de overige instellingen op hun standaardwaarden staan.

  1. Logging & Debugging: Laten we voor de standaardopties gaan.
  2. De database instellen: In plaats van uw e-mail expliciet te gebruiken, gebruikt Roundcube MySQL om de informatie op te slaan voor het uitvoeren van de webclient. Hier moeten we Roundcube instrueren om verbinding te maken met de database die we hebben ingesteld in Stap 4. Gebruik de databasegegevens die we eerder hebben aangemaakt:
    • Database: MySQL
    • Server: localhost
    • Naam van database: roundcubemail
    • Gebruiker: roundcube
    • Wachtwoord: demo12345@
      • Gebruik het wachtwoord dat u hebt gedefinieerd en dat we hebben ingesteld in Stap 4.
    • Db_prefix: Dit is optioneel, tenzij u een gedeelde database met andere apps gebruikt.
  3. IMAP aanpassen: Laten we de IMAP- en SMTP-instellingen voor uw e-mailserver instellen. Omdat deze handleiding zich richt op het gebruik van Gmail als voorbeeld, gebruiken we de Gmail-instellingen in onze IMAP-instellingen. Als u echter kiest voor andere serviceproviders zoals Yahoo of Outlook, moet u hun respectievelijke instellingen gebruiken. Veel e-mailproviders ondersteunen verbindingen met of zonder versleuteling. Maak er een gewoonte van om de SSL IMAP/SMTP-URL's en -poorten te gebruiken om onbeveiligde verbindingen te vermijden.
    • default_host: ssl://imap.gmail.com
    • default_port: 993
    • auto_create_user: Ja
      • Als dit niet is aangevinkt, zal Roundcube geen gebruiker aanmaken in zijn eigen database en kunt u niet inloggen.
    • *_mbox-velden: Behoud de standaardwaarden.
      • U kunt dit later aanpassen in de Roundcube-gebruikersinterface.
  4. SMTP aanpassen: De SMTP-server is een integraal onderdeel van het e-mailsysteem dat wordt gebruikt om e-mails te verzenden. Net als bij de IMAP-serversectie gebruiken we de SSL-URL en -poort. Als u geen ervaring hebt met het gebruik van SMTP-servers, volg dan SMTP-best practices om meer te leren over dit soort servers. Hier gebruiken we Gmail als ons voorbeeld:
    • smtp_server-veld: ssl://smtp.gmail.com
    • smtp_port-veld: 465
    • SMTP en IMAP zijn twee verschillende diensten, daarom hebben ze beide een gebruikersnaam en wachtwoord nodig. Roundcube stelt ons echter in staat om de IMAP-inloggegevens te gebruiken, dus het is niet nodig om deze opnieuw aan te maken. Laat de velden onder smtp_user/smtp_pass leeg en vink het vakje aan naast Gebruik de huidige IMAP-gebruikersnaam en -wachtwoord voor SMTP-authenticatie.
    • smtp_log: Ja
  5. Weergave-instellingen & gebruikersvoorkeuren aanpassen: Laten we voor de standaard weergave-instellingen en gebruikersvoorkeuren gaan. Als u ervoor kiest om uw Roundcube-installatie aan te passen, klik dan op de RFC1766-link op de configuratiepagina en werk het language-veld handmatig bij.
  6. Plug-ins: Roundcube biedt ondersteuning voor plug-ins die extra beveiliging toevoegen. Plug-ins zijn optioneel, maar u kunt ze gebruiken om uw werk gemakkelijker te maken. Laten we eens kijken naar de lijst met de meest gebruikte plug-ins:
    • archive: Deze plug-in biedt een Archief-knop die vergelijkbaar is met hoe Gmail werkt.
    • emoticons: Dit maakt het gebruik van emoticons in e-mails mogelijk.
    • enigma: Dit maakt het eenvoudig om GPG-e-mailversleuteling te gebruiken.
    • filesystem_attachments: Hiermee kunnen bijlagen tijdelijk op de Roundcube-server worden opgeslagen bij het opslaan van een concept-e-mail.
    • hide_blockquote: Deze plugin verbergt het geciteerde gedeelte van beantwoorde e-mails om de gebruikersinterface overzichtelijk te houden.
    • identity_select: Hiermee kan de gebruiker meerdere e-mailadressen selecteren tijdens het opstellen van een e-mail.
    • markasjunk: Met deze plugin kan een e-mail als spam worden gemarkeerd en naar de map Ongewenst worden verplaatst.
    • newmail_notifier: Waarschuwt u voor nieuwe e-mails via het notificatiesysteem van de browser.

Klik op de UPDATE CONFIG-knop om uw instellingen op te slaan. In de laatste stap testen we de Roundcube-configuratie om te controleren of alles goed werkt.

Stap 6: De Roundcube-installatie testen

Zodra u de configuratie bijwerkt, wordt de pagina vernieuwd en verschijnt er bovenaan de pagina een geel informatievak met de melding dat Het configuratiebestand is succesvol opgeslagen in de RCMAIL_CONFIG_DIR map van uw Roundcube-installatie.

Klik vervolgens op de CONTINUE-knop om uw configuratie te testen. Net als op de pagina voor de afhankelijkheidscontrole ziet u een groene OK-markering op elke regel, mits er geen fouten zijn. Als u fouten ziet, ga dan terug en controleer uw invoer nogmaals.

Voer uw IMAP- en SMTP-gebruikersnaam en -wachtwoord in de Test SMTP config en Test IMAP config secties in om de rest van de configuratie te testen. Klik op dezelfde manier op Send test email en Check login. Als u alle stappen correct hebt gevolgd, wordt de pagina vernieuwd en ziet u de groene OK onder de geteste sectie.

Opmerking: Als u Gmail gebruikt met tweestapsverificatie ingeschakeld, overweeg dan om een app-specifiek wachtwoord te genereren, omdat Roundcube niet weet hoe het om uw tweestapsverificatietoken moet vragen. Volg dezelfde procedure voor het genereren van wachtwoorden wanneer u andere e-mailserveralternatieven zoals Yahoo of Outlook gebruikt.

Zodra u hebt gecontroleerd of zowel de SMTP- als de IMAP-verbinding goed werken, is de volgende stap het verwijderen van de installer-map met behulp van SSH. Het verwijderen van de installer-map is een veilige manier om te voorkomen dat anderen een nieuwe configuratie genereren en de juiste instellingen overschrijven:

Ten slotte kunt u naar de Roundcube-instantie gaan met behulp van het IP-adres van uw server en uw e-mail verifiëren.

Conclusie

In deze handleiding hebben we geleerd hoe u een webmailclient installeert met behulp van Roundcube op Ubuntu 20.04. Naast de hierboven besproken stappen zijn er andere beveiligingsopties zoals HTTPS-ondersteuning en GPG-versleuteling die u moet overwegen toe te voegen. Neem de verantwoordelijkheid om uw servers te beveiligen met robuuste beveiligingsmaatregelen.

Daarnaast zijn er nog veel andere leermaterialen over Redis en PHP die u kunt raadplegen op onze blogs:

Veel computerplezier!

author

Pranay Kapgate

Auteur · CloudSigma

Preslav Dobrev is een creatief ontwerper bij CloudSigma, met de nadruk op een consistente bedrijfsidentiteit door middel van traditionele en innovatieve marketingkanalen. Hij is bedreven in het samenvoegen van artistieke visie met strategische marketing om impactvolle merkverhalen te creëren.

Reacties

Nog geen reacties. Wees de eerste.