Ein Mailserver ist ein System, das den korrekten Versand und Empfang von E-Mails zwischen Absender und Empfänger verwaltet. Wenn du zum Beispiel eine E-Mail über Gmail sendest, verwendest du den Mailserver von Google.
Ein Mail-Client hingegen ist ein Programm zum Lesen, Senden und Speichern von E-Mails. Beispiele sind Microsoft Outlook, Thunderbird und viele andere.
Choose your server now!
Der ausgehende Mailserver verwendet das SMTP-Protokoll („Simple Mail Transfer Protocol“).
Seine Hauptaufgaben sind:
Überprüfung der Absenderkonfiguration und Zulassen des E-Mail-Versands vom Gerät.
Übermittlung der Nachricht und Empfang des Antwortcodes.
SMTP-Server nutzen die Ports 25 (unverschlüsselt) und 465 (verschlüsselt).
POP3 ist ein Protokoll zum Empfangen von E-Mails. Ein Mail-Client verbindet sich mit dem Server und lädt die E-Mail auf das lokale Gerät herunter – so kann sie auch offline gelesen werden. Standardmäßig wird die Nachricht anschließend vom Server gelöscht (optional kann eine Kopie verbleiben).
POP3 nutzt die Ports 110 (unverschlüsselt) und 995 (SSL/TLS-verschlüsselt).
IMAP dient ebenfalls dem Empfang von E-Mails, erlaubt aber, die Nachrichten direkt auf dem Server zu verwalten, ohne sie herunterzuladen. Dies ist praktisch, wenn du E-Mails auf mehreren Geräten abrufst.
IMAP nutzt die Ports 143 (unverschlüsselt) und 993 (SSL/TLS-verschlüsselt).
Der häufigste Grund lautet:
„Damit ich meine eigene Domain in der E-Mail-Adresse verwenden kann.“
Das ist zwar richtig, aber nicht die ganze Geschichte. Man kann eine eigene Domain auch ohne eigenen Mailserver nutzen – viele Anbieter erlauben, die Domain mit ihren Mailservern zu verbinden. Du musst lediglich die Domain kaufen und sie mit den Servern des Anbieters verknüpfen. Der Vorteil: Sie stellen bereits einen funktionsfähigen SMTP-Server bereit. So entfallen Aufgaben wie Weiterleitung, Spamfilter oder erweiterte Sicherheitseinstellungen. Du musst nur die NS-Einträge (Name Server) korrekt setzen – wesentlich einfacher als ein eigener Server.
Allerdings gibt es bei Drittanbietern Einschränkungen:
Begrenzte Kontrolle: Du hast keinen vollständigen Zugriff auf die Funktionsweise.
Sende-Limits: Jeder Anbieter begrenzt die Anzahl der versendbaren E-Mails.
Für Firmen oder Newsletter kann das schnell problematisch werden.
Ein eigener Mailserver bedeutet:
Verwaltung von E-Mail-Kontingenten und Sendegrenzen
Backups, um Datenverlust zu vermeiden
Vermeidung von Spam-Blacklists
Zugriffsrechte für mehrere Benutzer
Ein selbst gehosteter Mailserver bietet maximale Kontrolle, erfordert aber auch technisches Wissen und Verantwortung.
In dieser Anleitung zeigen wir, wie du deinen eigenen Mailserver erstellst – auf einem Hostman Cloud Server mit Ubuntu 20.04 als Betriebssystem.
Der Server unterstützt Verschlüsselung, Anti-Spam-Schutz und verfügt über ein Web-Admin-Panel zur Verwaltung.
Wechsle zuerst in den Root-Modus:
sudo su
Aktualisiere anschließend alle Pakete:
apt update && apt upgrade
Überprüfe, ob der Hostname des Servers deiner E-Mail-Domain entspricht:
hostname
Wenn der Name abweicht:
hostnamectl set-hostname mail.hostname.com
(Ersetze mail.hostname.com durch deinen tatsächlichen Hostnamen.)
Richte die Zeitzone ein und installiere chrony zur Zeitsynchronisation:
apt install chrony
timedatectl set-timezone Europe/Athens
Liste aller verfügbaren Zeitzonen:
timedatectl list-timezones
Starte chrony automatisch:
systemctl enable chrony
Öffne die benötigten Ports mit iptables:
25, 465 – SMTP (Senden)
110, 995 – POP3 (Empfangen)
143, 993 – IMAP (Empfangen)
iptables -I INPUT 1 -p tcp --match multiport --dports 25,110,143,465,587,993,995,80,443 -j ACCEPT
Damit die Regeln nach einem Neustart bestehen bleiben:
netfilter-persistent save
Postfix ist ein quelloffener Mail Transfer Agent (MTA) mit modularer Architektur.
Installiere Postfix und die MySQL-Erweiterung:
apt install postfix postfix-mysql
Während der Installation:
Wähle Internet Site und gib deine Domain an (FQDN).
Erstelle dann einen neuen Benutzer für die Mailverarbeitung:
addgroup -gid 1080 vmail
adduser --home /home/mail -gid 1080 -uid 1080 vmail
Überprüfe den Besitzer des Verzeichnisses:
ll /home
Bearbeite die Hauptkonfiguration:
nano /etc/postfix/main.cf
Ergänze Folgendes:
# 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
Alias-Datei:
nano /etc/postfix/mysql_virtual_alias_maps.cf
Fügen Sie den folgenden Inhalt hinzu:
user = postfix
password = postfixPa$$w0rd
hosts = localhost
dbname = postfix
query = SELECT goto FROM alias WHERE address='%s' AND active = '1'
Domains:
nano /etc/postfix/mysql_virtual_domains_maps.cf
Hinzufügen:
user = postfix
password = postfixPa$$w0rd
hosts = localhost
dbname = postfix
query = SELECT domain FROM domain WHERE domain='%u'
Mailbox:
nano /etc/postfix/mysql_virtual_mailbox_maps.cf
Hinzufügen:
user = postfix
password = postfixPa$$w0rd
hosts = localhost
dbname = postfix
query = SELECT CONCAT(domain,'/',maildir) FROM mailbox WHERE username='%s' AND active = '1'
master.cf anpassen:
nano /etc/postfix/master.cf
Füge Folgendes hinzu:
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}
Erstelle das Verzeichnis:
mkdir -p /etc/ssl/mail
Generiere Zertifikate:
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"
Aktiviere Postfix:
systemctl enable postfix && systemctl restart postfix
Dovecot ist ein IMAP- und POP3-Server.
Installiere ihn mit MySQL-Unterstützung:
apt install dovecot-imapd dovecot-pop3d dovecot-mysql
Bearbeite die Datei:
nano /etc/dovecot/conf.d/10-mail.conf
Geben Sie in der Datei die Verzeichnisstruktur für die E-Mail-Speicherung an. Wir verwenden eine Hierarchie von Domäne → Benutzer:
mail_location = maildir:/home/mail/%d/%u/
Authentifizierung konfigurieren:
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
}
}
Bearbeite die Datei:
nano /etc/dovecot/conf.d/10-auth.conf
SSL aktivieren:
nano /etc/dovecot/conf.d/10-ssl.conf
Fügen Sie in dieser Datei Folgendes hinzu:
ssl = required
ssl_cert = </etc/ssl/mail/public.pem
ssl_key = </etc/ssl/mail/private.key
Automatische Postfach-Erstellung:
nano /etc/dovecot/conf.d/15-lda.conf
Add the following line:
lda_mailbox_autocreate = yes
nano /etc/dovecot/dovecot-sql.conf.ext
MySQL-Verbindung:
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'
nano /etc/dovecot/dovecot.conf
listen = *
Dovecot aktivieren:
systemctl enable dovecot && systemctl restart dovecot
Voraussetzungen: Webserver, PHP und MySQL.
Installiere PHP-Erweiterungen:
apt install php-mysql php-mbstring php-imap
Lade PostfixAdmin herunter:
wget https://sourceforge.net/projects/postfixadmin/files/latest/download -O postfixadmin.tar.gz
mkdir -p /var/www/html/postfixadmin && tar -C /var/www/html/postfixadmin -xvf postfixadmin.tar.gz --strip-components 1
mkdir /var/www/html/postfixadmin/templates_c
chown -R www-data:www-data /var/www/html/postfixadmin
MySQL-Datenbank:
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;
Konfigurationsdatei:
nano /var/www/html/postfixadmin/config.local.php
Der Dateiinhalt sollte sein:
<?php
$CONF['configured'] = true;
$CONF['default_language'] = 'en';
$CONF['database_password'] = 'postfixPa$$w0rd';
$CONF['emailcheck_resolve_domain']='NO';
?>
Öffnen Sie die PostfixAdmin-Einrichtungsseite in Ihrem Browser unter /postfixadmin/public/setup.php. Sie werden aufgefordert, einen Passwort-Hash zur Authentifizierung zu generieren.
Geben Sie das Passwort ein und klicken Sie auf die Schaltfläche. Unter dem Formular wird eine Meldung mit dem Hash angezeigt. Kopieren Sie diesen Hash und fügen Sie ihn in die Datei config.local.php ein:
nano /var/www/html/postfixadmin/config.local.php
Rufe /postfixadmin/public/setup.php im Browser auf, erstelle den Admin-Account und melde dich über /postfixadmin/public/login.php an.
Im Webinterface:
Domain List → New Domain
Overview → Create Mailbox
Dann kannst du dich mit einem E-Mail-Client verbinden:
|
Typ |
Port |
Sicherheit |
|
IMAP |
143 |
STARTTLS |
|
POP3 |
110 |
STARTTLS |
|
SMTP |
25 |
STARTTLS |
Anmeldeinformationen: Die bei der Mailbox-Erstellung angegebenen.
Choose your server now!
In dieser Anleitung hast du gelernt, wie du einen eigenen E-Mail-Server aufsetzt und konfigurierst. Mit einem selbst gehosteten Server hast du volle Kontrolle: Du kannst unbegrenzt Postfächer erstellen, Aliase verwalten und Benutzer hinzufügen.
All das lässt sich auf einem Hostman Cloud Server umsetzen – folgend dieser Anleitung erhältst du ein sicheres, funktionsfähiges Mail-System mit vollem Zugriff.