Hoe je je eigen e-mailserver installeert
Een mailserver is een systeem dat zorgt voor de correcte aflevering van e-mails tussen verzender en ontvanger. Wanneer je bijvoorbeeld een e-mail verstuurt via Gmail, gebruik je de mailserver van Google.
Een mailclient is het programma dat je gebruikt om e-mails te lezen, verzenden en opslaan. Voorbeelden hiervan zijn Microsoft Outlook, Thunderbird en andere clients.
Protocollen voor het ontvangen en verzenden van e-mail Link kopiëren
SMTP (Simple Mail Transfer Protocol) Link kopiëren
De uitgaande mailserver gebruikt het SMTP-protocol (Simple Mail Transfer Protocol).
Het heeft twee hoofdrollen:
-
Controleren van de verzendconfiguratie van de afzender en toestaan dat het bericht wordt verzonden.
-
Het bericht afleveren en de reactiecode verwerken.
SMTP gebruikt de poorten 25 (onversleuteld) en 465 (versleuteld).
POP3 (Post Office Protocol) Link kopiëren
POP3 is een protocol voor het ontvangen van e-mails. Het stelt de mailclient in staat om verbinding te maken met de server en berichten lokaal te downloaden, zodat ze offline beschikbaar zijn. Standaard worden berichten na het downloaden van de server verwijderd (hoewel je ervoor kunt kiezen een kopie te bewaren).
POP3 gebruikt de poorten 110 (onversleuteld) en 995 (SSL/TLS-versleuteld).
IMAP (Internet Message Access Protocol) Link kopiëren
Net als POP3 wordt IMAP gebruikt om e-mails te ontvangen, maar het laat je berichten rechtstreeks op de server beheren, zonder ze te downloaden. Dat is handig als je e-mail vanaf meerdere apparaten wilt bekijken.
Waarom een eigen mailserver opzetten? Link kopiëren
De meest voorkomende reden is:
“Om mijn eigen domeinnaam te gebruiken voor mijn e-mailadres.”
Dat is waar, maar niet het hele verhaal. Je kunt je domein gebruiken zonder een eigen mailserver te beheren. Veel providers laten je jouw domein koppelen aan hun mailservers. Het voordeel: ze hebben al een geconfigureerde SMTP-server, inclusief spamfilters en versleuteling. Je hoeft alleen de NS-records (Name Server-records) goed in te stellen — veel eenvoudiger dan zelf alles bouwen.
Nadelen van externe diensten:
-
Minder controle: je hebt geen volledige invloed op het gedrag van het mailsysteem.
-
Verzendlimieten: elke provider heeft limieten op hoeveel berichten je per uur of dag kunt versturen. Dit kan lastig zijn voor zakelijk gebruik of nieuwsbrieven.
Als je een eigen mailserver bouwt, moet je zelf zorgen voor:
-
Mailboxquota en verzendlimieten
-
Back-ups om dataverlies te voorkomen
-
Bescherming tegen spam-blacklists
-
Toegangsrechten voor meerdere gebruikers
Een eigen mailserver geeft meer controle, maar vereist meer technische kennis en verantwoordelijkheid.
Een mailserver instellen Link kopiëren
In deze handleiding laten we zien hoe je een eigen mailserver opzet met een Hostman-cloudserver en Ubuntu 20.04 als besturingssysteem.
De server zal ondersteuning bieden voor versleuteling, antispambeveiliging en een webgebaseerd beheerpaneel voor accountbeheer.
De server voorbereiden Link kopiëren
Schakel over naar superuser-modus:
sudo suWerk de pakketten bij:
apt update && apt upgradeControleer of de hostnaam overeenkomt met je domein:
hostnameZo niet:
hostnamectl set-hostname mail.hostname.comInstalleer chrony voor tijdsynchronisatie en stel de tijdzone in:
apt install chrony
timedatectl set-timezone Europe/Athens
Bekijk beschikbare tijdzones:
timedatectl list-timezonesSchakel chrony in:
systemctl enable chronyBenodigde poorten openen Link kopiëren
Gebruik iptables om de volgende poorten open te zetten:
-
25, 465 — SMTP (verzenden)
-
110, 995 — POP3 (ontvangen)
-
143, 993 — IMAP (ontvangen)
- 80, 443 — HTTP/HTTPS (webbeheer)
iptables -I INPUT 1 -p tcp --match multiport --dports 25,110,143,465,587,993,995,80,443 -j ACCEPTMaak de regels persistent:
netfilter-persistent saveInstallatie en configuratie van Postfix Link kopiëren
Postfix is een open-source Mail Transfer Agent (MTA) met een modulaire architectuur.
Installeer Postfix en de MySQL-module:
apt install postfix postfix-mysqlTijdens de installatie:
-
Kies Internet Site
-
Voer je FQDN (volledig gekwalificeerde domeinnaam) in
Maak een gebruiker en groep aan voor het beheren van mail:
addgroup -gid 1080 vmailadduser --home /home/mail -gid 1080 -uid 1080 vmailControleer de rechten:
ll /homePostfix configureren Link kopiëren
Open het hoofdbestand:
nano /etc/postfix/main.cfVoeg toe of wijzig:
# Domains we accept mail for
mydestination = localhost.$mydomain, localhost, localhost.localdomain
# Postfix protocol
inet_protocols = ipv4
# Path to the public certificate
smtpd_tls_cert_file = /etc/ssl/mail/public.pem
# Path to the private certificate
smtpd_tls_key_file = /etc/ssl/mail/private.key
Then, add additional options required for Postfix to function correctly:
# Mail storage location
virtual_mailbox_base = /home/mail
# Path to alias maps
virtual_alias_maps = proxy:mysql:/etc/postfix/mysql_virtual_alias_maps.cf
# Domain storage format
virtual_mailbox_domains = proxy:mysql:/etc/postfix/mysql_virtual_domains_maps.cf
# Mailbox storage format
virtual_mailbox_maps = proxy:mysql:/etc/postfix/mysql_virtual_mailbox_maps.cf
# Minimum virtual user ID
virtual_minimum_uid = 1080
# UID for the main user handling mail
virtual_uid_maps = static:1080
# GID for the group handling mail
virtual_gid_maps = static:1080
# Register Dovecot as the mail delivery agent
virtual_transport = dovecot
# Enable secure authentication
smtpd_sasl_auth_enable = yes
smtpd_sasl_exceptions_networks = $mynetworks
smtpd_sasl_security_options = noanonymous
broken_sasl_auth_clients = yes
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
# Enable TLS encryption for outgoing SMTP connections
smtp_use_tls = yes
# Enable TLS support for incoming connections
smtpd_use_tls = yes
smtpd_tls_auth_only = yes
smtpd_helo_required = yes
MySQL mapping-bestanden Link kopiëren
Alias:
nano /etc/postfix/mysql_virtual_alias_maps.cfVoeg de volgende inhoud toe:
user = postfix
password = postfixPa$$w0rd
hosts = localhost
dbname = postfix
query = SELECT goto FROM alias WHERE address='%s' AND active = '1'
Domeinen:
nano /etc/postfix/mysql_virtual_domains_maps.cfMailboxen:
user = postfix
password = postfixPa$$w0rd
hosts = localhost
dbname = postfix
query = SELECT domain FROM domain WHERE domain='%u'
nano /etc/postfix/mysql_virtual_mailbox_maps.cfToevoegen:
user = postfix
password = postfixPa$$w0rd
hosts = localhost
dbname = postfix
query = SELECT CONCAT(domain,'/',maildir) FROM mailbox WHERE username='%s' AND active = '1'
master.cf aanpassen
nano /etc/postfix/master.cfVoeg toe:
submission inet n - n - - smtpd
-o smtpd_tls_security_level=may
-o smtpd_sasl_auth_enable=yes
-o smtpd_sasl_type=dovecot
-o smtpd_sasl_path=/var/spool/postfix/private/auth
-o smtpd_sasl_security_options=noanonymous
-o smtpd_sasl_local_domain=$myhostname
smtps inet n - n - - smtpd
-o syslog_name=postfix/smtps
-o smtpd_tls_wrappermode=yes
-o smtpd_sasl_auth_enable=yes
-o smtpd_client_restrictions=permit_sasl_authenticated,reject
dovecot unix - n n - - pipe
flags=DRhu user=vmail:vmail argv=/usr/lib/dovecot/deliver -d ${recipient}
Beveiligingscertificaten genereren Link kopiëren
Maak de map aan:
mkdir -p /etc/ssl/mailGenereer certificaten:
openssl req -new -x509 -days 1000 -nodes -out /etc/ssl/mail/public.pem -keyout /etc/ssl/mail/private.key -subj "/C=CY/ST=Limassol/L=Limassol/O=Global Security/OU=IT Department/CN=mail.devnullhost.com"Start Postfix:
systemctl enable postfix && systemctl restart postfixInstallatie en configuratie van Dovecot Link kopiëren
Dovecot is een open-source IMAP/POP3-server.
Installeer het samen met de MySQL-module:
apt install dovecot-imapd dovecot-pop3d dovecot-mysqlOpen:
nano /etc/dovecot/conf.d/10-mail.confSpecificeer in het bestand de directorystructuur voor het opslaan van e-mail. We gebruiken een hiërarchie van domein → gebruiker:
mail_location = maildir:/home/mail/%d/%u/Configureer in hetzelfde bestand de authenticatiemethode:
service auth {
unix_listener /var/spool/postfix/private/auth {
mode = 0666
user = postfix
group = postfix
}
unix_listener auth-userdb {
mode = 0600
user = vmail
group = vmail
}
}
service stats {
unix_listener stats-reader {
user = vmail
group = vmail
mode = 0660
}
unix_listener stats-writer {
user = vmail
group = vmail
mode = 0660
}
}
Bewerk het Dovecot-authenticatieconfiguratiebestand:
nano /etc/dovecot/conf.d/10-auth.confSSL-instellingen:
nano /etc/dovecot/conf.d/10-ssl.confVoeg het volgende toe aan dit bestand:
ssl = required
ssl_cert = </etc/ssl/mail/public.pem
ssl_key = </etc/ssl/mail/private.key
Automatische mailbox-aanmaak:
nano /etc/dovecot/conf.d/15-lda.confVoeg de volgende regel toe:
lda_mailbox_autocreate = yesMySQL-verbinding:
nano /etc/dovecot/dovecot-sql.conf.extVoeg de volgende regels toe om MySQL te configureren:
driver = mysql
connect = host=localhost dbname=postfix user=postfix password=postfixPa$$w0rd
default_pass_scheme = MD5-CRYPT
password_query = SELECT password FROM mailbox WHERE username = '%u'
user_query = SELECT maildir, 1080 AS uid, 1080 AS gid FROM mailbox WHERE username = '%u'
user_query = SELECT CONCAT('/home/mail/',LCASE(`domain`),'/',LCASE(`maildir`)), 1080 AS uid, 1080 AS gid FROM mailbox WHERE username = '%u'
Open het hoofdconfiguratiebestand van Dovecot om de serverinterface in te stellen:
nano /etc/dovecot/dovecot.confVoeg in dit bestand de volgende regel toe om op alle beschikbare netwerkinterfaces te luisteren:
listen = *Activeer Dovecot:
systemctl enable dovecot && systemctl restart dovecotInstallatie en configuratie van PostfixAdmin Link kopiëren
Vereisten: webserver, PHP en MySQL.
Installeer de benodigde PHP-extensies:
apt install php-mysql php-mbstring php-imapPostfixAdmin downloaden:
wget https://sourceforge.net/projects/postfixadmin/files/latest/download -O postfixadmin.tar.gzMaak een directory voor PostfixAdmin en pak de archiefinhoud uit:
mkdir -p /var/www/html/postfixadmin && tar -C /var/www/html/postfixadmin -xvf postfixadmin.tar.gz --strip-components 1Maak vervolgens een map voor het opslaan van sjablooncaches:
mkdir /var/www/html/postfixadmin/templates_cStel de juiste machtigingen in voor de webserver om toegang te krijgen tot de map PostfixAdmin:
chown -R www-data:www-data /var/www/html/postfixadminMaak de database aan:
mysql -u root
CREATE DATABASE postfix DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON postfix.* TO 'postfix'@'localhost' IDENTIFIED BY 'postfixPa$$w0rd';
exit;
Configuratiebestand:
nano /var/www/html/postfixadmin/config.local.phpDe inhoud van het bestand zou moeten zijn:
<?php
$CONF['configured'] = true;
$CONF['default_language'] = 'en';
$CONF['database_password'] = 'postfixPa$$w0rd';
$CONF['emailcheck_resolve_domain']='NO';
?>
Open /postfixadmin/public/setup.php, genereer de hash van je wachtwoord, voeg deze toe aan het bestand en log in via /postfixadmin/public/login.php.
nano /var/www/html/postfixadmin/config.local.phpMailbox aanmaken in PostfixAdmin Link kopiëren
In de webinterface:
- Domain List → New Domain
- en daarna Overview → Create Mailbox
Verbindingsinstellingen voor clients:
|
Protocol |
Poort |
Beveiliging |
|
IMAP |
143 |
STARTTLS |
|
POP3 |
110 |
STARTTLS |
|
SMTP |
25 |
STARTTLS |
Gebruikersnaam en wachtwoord: zoals ingesteld bij het aanmaken van de mailbox.
Conclusie Link kopiëren
In deze gids heb je geleerd hoe je een zelfgehoste mailserver opzet en configureert. Met een eigen mailserver krijg je volledige controle: je kunt onbeperkt mailboxen aanmaken, aliassen beheren en gebruikersinstellingen aanpassen.
Dit alles kan worden gerealiseerd met een Hostman-cloudserver, door stap voor stap deze instructies te volgen voor een veilige en stabiele e-mailomgeving.