# Einrichten eines Postfix Mail Servers mit Dovecot und RoundCube auf CentOS 7

Erfahren Sie, wie Sie einen [Mail-Server](https://www.ionos.at/office-loesungen/email-server "Mail-Server") auf einem Cloud Server unter CentOS 7 einrichten. Dieses Tutorial zeigt Postfix als SMTP-Server, Dovecot für POP/IMAP-Funktionalität und RoundCube als Webmail-Programm für Benutzer, die E-Mails über einen Webbrowser abrufen und empfangen möchten.

Das Tutorial führt Sie auch durch den Prozess der Erstellung und Verwendung eines selbstsignierten [SSL-Zertifikats](https://www.ionos.at/digitalguide/websites/webseiten-erstellen/ssl-zertifikat/ "SSL-Zertifikat") zur Sicherung ein- und ausgehender E-Mail-Verbindungen.

---

### Tipp

Richten Sie mit IONOS im Handumdrehen Ihren eigenen professionellen [E-Mail-Server](https://www.ionos.at/office-loesungen/email-server "Professioneller E-Mail-Server von IONOS") ein. Sie profitieren von zahlreichen Vorteilen wie großem und erweiterbarem Speicherplatz, Ihrer eigenen Domain, automatischer Verschlüsselung, Kalender- und Office-Funktionen oder E-Mail-Archivierung. IONOS bietet Ihnen höchste Sicherheitsstandards in ISO-zertifizierten europäischen Rechenzentren.

---

## Anforderungen

- Ein Cloud Server mit CentOS 7.
- Postfix installiert und läuft.

Um den Status von Postfix auf dem Server zu überprüfen, verwenden Sie den Befehl:

```none
sudo postfix status
```

Wenn Postfix installiert ist und läuft, sehen Sie die Ausgabe:

```none
[user@localhost ~]# sudo postfix status
postfix/postfix-script: the Postfix mail system is running: PID: 1681
```

## Firewall-Zugang

Wenn Sie eine Firewall haben, müssen Sie den Zugriff auf die folgenden Ports erlauben:

- SMTP: 25
- POP3: 110
- IMAP: 143
- SMTP Sicherheit: 465
- MSA: 587
- IMAP Sicherheit: 993
- POP3 Sicherheit: 995

## Erstellen eines SSL-Zertifikats

Wir werden ein selbstsigniertes SSL-Zertifikat erstellen, um ein- und ausgehende E-Mail-Verbindungen zu schützen:

```none
sudo openssl req -x509 -nodes -newkey rsa:2048 -keyout mailserver.key -out mailserver.crt -nodes -days 365
```

Beantworten Sie die Fragen bei der Eingabeaufforderung, oder drücken Sie einfach\[Enter\], um eine Antwort leer zu lassen. Dieser Befehl erstellt zwei Dateien: mailserver.key und mailserver.crt.

Erstellen Sie einen Ordner für die SSL-Zertifikatsdateien:

```none
sudo mkdir /etc/postfix/ssl
```

Verschieben Sie dann die Dateien in diesen Ordner:

```none
sudo mv mailserver.key /etc/postfix/ssl
sudo mv mailserver.crt /etc/postfix/ssl
```

## Konfiguriert Postfix

Die folgenden Schritte ermöglichen eine grundlegende Postfix-Einrichtung, mit der Sie E-Mails senden und empfangen können. Weitere Informationen zu diesen Konfigurationen, finden Sie in der [offiziellen Dokumentation](http://www.postfix.org/BASIC_CONFIGURATION_README.html "Postfix Basic Configuration").

Bevor Sie mit den Konfigurationsänderungen beginnen, stellen Sie sicher, dass Sie die neueste Version von Postfix haben, indem Sie den Befehl ausführen:

```none
sudo yum update postfix
```

### Edit master.cf

Zuerst werden wir die Datei /etc/postfix/master.cf bearbeiten, damit der Einreichungsdämon E-Mails sicher senden und annehmen kann:

```none
sudo nano /etc/postfix/master.cf
```

Löschen Sie das Rautensymbol (#), um die folgenden Zeilen unkommentiert zu lassen:

```none
#submission inet n       -       n       -       -       smtpd
#  -o syslog_name=postfix/submission
#  -o smtpd_tls_security_level=encrypt
#  -o smtpd_sasl_auth_enable=yes
#  -o smtpd_recipient_restrictions=permit_sasl_authenticated,reject
#  -o milter_macro_daemon_name=ORIGINATING
```

Speichern und beenden Sie die Datei.

### main.cf bearbeiten

Die Datei /etc/postfix/main.cf enthält die Konfigurationsoptionen für Ihre Postfix-Installation. Bearbeiten Sie diese Datei:

```none
sudo nano /etc/postfix/main.cf
```

Nehmen Sie die folgenden Änderungen vor:

**Hostname setzen**

Bearbeiten Sie die Zeile, die liest:

```none
#myhostname = host.domain.tld
```

Löschen Sie das Hash-Markierung (#), um die Zeile zu entkommentieren, und ersetzen Sie host.domain.tld durch den Hostnamen des Servers:

```none
myhostname = example.com
```

**Domäne festlegen**

Bearbeiten Sie die Zeile, die liest:

```none
#mydomain = domain.tld
```

Löschen Sie das Hash-Markierung (#), um die Zeile zu entkommentieren, und ersetzen Sie domain.tld durch die Domain, für die Sie eine E-Mail erhalten möchten:

```none
mydomain = example.com
```

**Andere Einstellungen aktivieren**

Löschen Sie die Hash-Markierung (#), um die folgenden Zeilen zu entkommentieren:

```none
#myorigin = $myhostname
#inet_interfaces = all
#inet_interfaces = localhost
#inet_protocols = all
#mydestination = $myhostname, localhost.$mydomain, localhost
#home_mailbox = Maildir/
```

**Konfigurationen hinzufügen**

Fügen Sie schließlich die folgenden Zeilen an das Ende der Datei hinzu:

```none
smtpd_tls_key_file = /etc/postfix/ssl/mailserver.key
smtpd_tls_cert_file = /etc/postfix/ssl/mailserver.crt
smtpd_use_tls=yes
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
smtpd_tls_security_level=may
```

Speichern und beenden Sie die Datei und starten Sie dann Postfix neu, um die neuen Konfigurationen zu laden:

```none
sudo systemctl restart postfix
```

### Postfix mit Telnet testen

Um Postfix zu testen, werden wir uns mit dem Server verbinden und ein einfaches "Handshake-Protokoll" durchführen, genau wie ein E-Mail-Programm.

Installieren Sie zunächst Telnet:

```none
sudo yum install telnet
```

Sobald Telnet installiert ist, verwenden Sie es, um eine Verbindung zum SMTP-Port des Servers herzustellen:

```none
telnet localhost 25
```

Der Server antwortet mit:

```none
[user@localhost ~]$ telnet localhost 25
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
```

Beginnen Sie, indem Sie dem Server mitteilen, von wem die Mail gesendet wird:

```none
mail from: some-person@some-other-server.com
```

Dann teilen Sie dem Server mit, an wen Sie die E-Mail senden, und ersetzen Sie user@example.com durch Ihren eigenen Benutzernamen und Domainnamen:

```none
rcpt to: user@example.com
```

Füge nun eine einfache Nachricht hinzu. Teilen Sie dem Server mit, dass Ihr Nachrichtentext hier beginnt:

```none
data
```

Geben Sie die Nachricht ein und folgen Sie ihr mit \[Enter\], einem Punkt . und \[Enter\]:

```none
hello world 
.
```

Schließen Sie die Sitzung, indem Sie quit eingeben und Enter drücken.

Wenn Sie erfolgreich sind, erscheint Ihre Testnachricht unter /home/username/Maildir/new. Sie können diese Nachricht mit dem Befehl anzeigen:

```none
ll /home/username/Maildir/new
```

Um die Nachricht zu lesen, kopieren und fügen Sie den Namen der Datei ein (es wird ein langer Name wie 1481229255.Vfd01I402b66aM546595.example.com sein) und lesen Sie sie mit mehr:

```none
more 1481229255.Vfd01I402b66aM546595.example.com
```

Sie sehen die E-Mail-Nachricht zusammen mit allen Kopfzeileninformationen:

```none
From some-person@some-other-server.com  Thu Dec  8 19:43:10 2016
Return-Path: <some-person@some-other-server.com>
X-Original-To: user@example.com
Delivered-To: user@example.com
Received: from localhost (localhost [127.0.0.1])
    by mail.example.com (Postfix) with SMTP id 6CFD589184
    for <user@example.com>; Thu,  8 Dec 2016 19:42:33 +0000 (UTC)
Message-Id: <20161208194238.6CFD589184@mail.oxnardindustries.com>
Date: Thu,  8 Dec 2016 19:42:33 +0000 (UTC)
From: some-person@some-other-server.com
hello world
```

## Installation und Konfiguration von Dovecot

Wir werden Dovecot als POP3/IMAP-Server einsetzen, damit die Benutzer ihre E-Mails empfangen und überprüfen können. Weitere Informationen über Dovecot finden Sie auf der [Website von Dovecot](http://www.dovecot.org/ "Dovecot").

Installiere Dovecot mit dem Befehl:

```none
sudo yum install dovecot
```

Sie können den Status von Dovecot mit dem Befehl überprüfen:

```none
sudo systemctl status dovecot
```

Wenn Dovecot läuft, sehen Sie eine Ausgabe ähnlich wie:

```none
[user@mail dovecot]$ sudo systemctl status dovecot -l
● dovecot.service - Dovecot IMAP/POP3 email server
   Loaded: loaded (/usr/lib/systemd/system/dovecot.service; disabled; vendor preset: disabled)
   Active: active (running) since Thu 2016-12-08 21:04:48 UTC; 3s ago
  Process: 8985 ExecStartPre=/usr/libexec/dovecot/prestartscript (code=exited, status=0/SUCCESS)
 Main PID: 8989 (dovecot)
   CGroup: /system.slice/dovecot.service
           ├─8989 /usr/sbin/dovecot -F
           ├─8992 dovecot/anvil
           ├─8993 dovecot/log
           └─8995 dovecot/config
Dec 08 21:04:48 example.com systemd[1]: Starting Dovecot IMAP/POP3 email server...
Dec 08 21:04:48 example.com systemd[1]: Started Dovecot IMAP/POP3 email server.
Dec 08 21:04:48 example.com dovecot[8989]: master: Dovecot v2.2.10 starting up for imap (core dumps disabled)
```

Beachten Sie die Zeile, die lautet:

```none
Active: active (running) since Thu 2016-12-08 21:04:48 UTC; 3s ago
```

Das bedeutet, dass Dovecot installiert ist und läuft.

## Roundcube installieren

Roundcube ist ein kostenloses, Open-Source-Webmail-Programm mit robusten, integrierten mehrsprachigen Funktionen und vielen praktischen Du kannst mehr über Roundcube auf der [Roundcube-Website](https://roundcube.net/ "Roundcube") lesen.

Roundcube benötigt mehrere PHP- und MariaDB-Pakete als Voraussetzung. Installieren und/oder aktualisieren Sie diese zuerst mit dem Befehl:

```none
sudo yum install mysql mariadb-server php php-common php-json php-xml php-mbstring
```

Als nächstes erstellen Sie einen MariaDB-Benutzernamen und eine Datenbank für die Roundcube-Installation. Melden Sie sich mit dem Befehl am MariaDB-Client an:

```none
mysql -u root -p
```

Melden Sie sich mit dem Root-Passwort an und erstellen Sie dann eine Roundcube-Datenbank:

```none
create database roundcube_db;
```

Legen Sie einen Benutzer für diese Datenbank an. Hinweis: Achten Sie darauf, dem Benutzer ein sicheres Passwort zu geben.

```none
grant all on roundcube_db.* to roundcube_user@localhost identified by 'roundcube_db_password';
```

Ersetzen:

- roundcube\_user mit dem Benutzernamen, den Sie für Ihre Datenbank erstellen möchten.
- roundcube\_db\_password mit einem sicheren Passwort für diesen Benutzer.

Verlassen Sie dann MariaDB:

```none
quit;
```

Gehen Sie zum Dokumentenstamm Ihrer Website. Laden Sie die aktuelle Version von der Roundcube-Website herunter, indem Sie den Befehl verwenden:

```none
sudo wget [download URL]
```

Um die Download-URL zu finden, besuchen Sie die [aktuelle Release-Seite](https://roundcube.net/download/ "Roundcube Download") auf der Roundcube-Website. Kopieren Sie die URL für den grünen Link "Download". Sie können es in die Befehlszeile einfügen, indem Sie auf Umschalt + Einfügen klicken.

Zum Beispiel, um die aktuelle stabile Version ab der Veröffentlichung dieses Artikels herunterzuladen, lautet der Befehl:

```none
sudo wget https://github.com/roundcube/roundcubemail/releases/download/1.2.3/roundcubemail-1.2.3-complete.tar.gz
```

Entkomprimieren Sie diese Datei mit dem Befehl:

```none
sudo tar -xvf [filename]
```

---

### Tipp

Sie können die Vervollständigung der Registerkarte verwenden, um diesen Vorgang zu erleichtern. Geben Sie sudo tar -xvf roundcube ein und drücken dann Tab. Die Shell füllt automatisch den Rest des Dateinamens auf der Kommandozeile aus.

---

Um die oben heruntergeladene Datei zu entpacken, lautet der Befehl:

```none
sudo tar -xvf roundcubemail-1.2.3-complete.tar.gz
```

Benennen Sie das extrahierte Verzeichnis roundcube um:

```none
sudo mv roundcubemail-1.2.3 roundcube
```

Stellen Sie den Eigentümer der Dateien auf den Apache-Benutzer ein:

```none
sudo chown -R apache:apache roundcube
```

Um die Installation abzuschließen, wechseln Sie zu einem Browser und gehen Sie auf die URL "http://example.com/roundcube/installer/".

Scrollen Sie nach unten auf der Seite und klicken Sie auf **NÄCHSTE.**

Im nächsten Abschnitt müssen Sie die Datenbankinformationen ausfüllen.

Geben Sie den Namen, den Benutzernamen und das Passwort der MariaDB-Datenbank ein, die Sie oben erstellt haben. Scrollen Sie dann nach unten und klicken Sie auf **KONFIGURATION ERSTELLEN.**

Hinweis: Es gibt viele mögliche Konfigurationen. Sie können sie jederzeit in der Zukunft ändern oder einstellen.

Nachdem die Konfigurationsdatei erstellt wurde, klicken Sie auf **FORTSETZEN**, um fortzufahren.

Klicken Sie auf die Schaltfläche **Datenbank initialisieren**, um die Datenbank einzurichten.

Testen Sie die Mailserver-Konfiguration, indem Sie eine Test-SMTP-E-Mail senden.

- **Absender**: Deine neue E-Mail-Adresse auf diesem Server. (Zum Beispiel, jdoe@example.com)
- **Empfänger**: Eine externe E-Mail-Adresse. (Zum Beispiel jdoe@gmail.com)

Klicken Sie dann auf **Testmail senden**. Überprüfen Sie nach einiger Zeit das externe E-Mail-Konto, um zu sehen, ob Ihre E-Mail gesendet wurde.

Testen Sie die IMAP-Konfigurationen, indem Sie sich mit Ihrem Benutzernamen und Passwort anmelden.

Beachten Sie, dass Ihr Benutzername NICHT Ihre vollständige E-Mail-Adresse ist. Melden Sie sich beispielsweise mit dem Benutzernamen jdoe an, nicht mit jdoe@example.com.

Nachdem die Konfiguration abgeschlossen ist, können Sie sich unter "http://example.com/webmail" anmelden, um E-Mails zu überprüfen und zu senden.


This is a markdown version of: [https://www.ionos.at/digitalguide/e-mail/e-mail-technik/postfix-mail-servers-mit-dovecot-und-roundcube-auf-centos-7/](https://www.ionos.at/digitalguide/e-mail/e-mail-technik/postfix-mail-servers-mit-dovecot-und-roundcube-auf-centos-7/) for AI/LLM consumption.