Eigenen Mailserver einrichten: Schritt-für-Schritt-Anleitung
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.
Protokolle zum Empfangen und Senden von E-Mails Link kopieren
SMTP (Simple Mail Transfer Protocol) Link kopieren
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 (Post Office Protocol) Link kopieren
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 (Internet Message Access Protocol) Link kopieren
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).
Warum einen eigenen Mailserver einrichten? Link kopieren
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.
Mailserver einrichten Link kopieren
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.
Server vorbereiten Link kopieren
Wechsle zuerst in den Root-Modus:
sudo suAktualisiere anschließend alle Pakete:
apt update && apt upgradeÜberprüfe, ob der Hostname des Servers deiner E-Mail-Domain entspricht:
hostnameWenn 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-timezonesStarte chrony automatisch:
systemctl enable chronyFirewall konfigurieren Link kopieren
Öffne die benötigten Ports mit iptables:
-
25, 465 – SMTP (Senden)
-
110, 995 – POP3 (Empfangen)
-
143, 993 – IMAP (Empfangen)
- 80, 443 – HTTP (Webzugriff)
iptables -I INPUT 1 -p tcp --match multiport --dports 25,110,143,465,587,993,995,80,443 -j ACCEPTDamit die Regeln nach einem Neustart bestehen bleiben:
netfilter-persistent saveInstallation und Konfiguration von Postfix Link kopieren
Postfix ist ein quelloffener Mail Transfer Agent (MTA) mit modularer Architektur.
Installiere Postfix und die MySQL-Erweiterung:
apt install postfix postfix-mysqlWä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 vmailadduser --home /home/mail -gid 1080 -uid 1080 vmailÜberprüfe den Besitzer des Verzeichnisses:
ll /homePostfix konfigurieren Link kopieren
Bearbeite die Hauptkonfiguration:
nano /etc/postfix/main.cfErgä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
MySQL-Tabellenverknüpfungen hinzufügen Link kopieren
Alias-Datei:
nano /etc/postfix/mysql_virtual_alias_maps.cfFü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.cfHinzufü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.cfHinzufü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.cfFü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}
Sicherheitszertifikate erstellen Link kopieren
Erstelle das Verzeichnis:
mkdir -p /etc/ssl/mailGeneriere 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 postfixInstallation und Konfiguration von Dovecot Link kopieren
Dovecot ist ein IMAP- und POP3-Server.
Installiere ihn mit MySQL-Unterstützung:
apt install dovecot-imapd dovecot-pop3d dovecot-mysqlBearbeite die Datei:
nano /etc/dovecot/conf.d/10-mail.confGeben 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.confSSL aktivieren:
nano /etc/dovecot/conf.d/10-ssl.confFü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.confAdd the following line:
lda_mailbox_autocreate = yesnano /etc/dovecot/dovecot-sql.conf.extMySQL-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.conflisten = *Dovecot aktivieren:
systemctl enable dovecot && systemctl restart dovecotInstallation und Einrichtung von PostfixAdmin Link kopieren
Voraussetzungen: Webserver, PHP und MySQL.
Installiere PHP-Erweiterungen:
apt install php-mysql php-mbstring php-imapLade PostfixAdmin herunter:
wget https://sourceforge.net/projects/postfixadmin/files/latest/download -O postfixadmin.tar.gzmkdir -p /var/www/html/postfixadmin && tar -C /var/www/html/postfixadmin -xvf postfixadmin.tar.gz --strip-components 1mkdir /var/www/html/postfixadmin/templates_cchown -R www-data:www-data /var/www/html/postfixadminMySQL-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.phpDer 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.phpRufe /postfixadmin/public/setup.php im Browser auf, erstelle den Admin-Account und melde dich über /postfixadmin/public/login.php an.
Mailbox erstellen Link kopieren
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.
Fazit Link kopieren
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.