Mailman ist ein in React geschriebenes SPA, das Ihnen bei der Verwaltung Ihrer E-Mail-Serverdatenbank hilft.

Sie müssen über einen funktionierenden Mailserver mit dem Datenbankmodell verfügen, das Thomas Leister in seinem großartigen Mailserver-Tutorial bereitgestellt hat: Mailserver mit Dovecot, Postfix, MySQL und Rspamd unter Debian 9 Stretch
Aktualisieren Sie die Berechtigungen des vmail-Datenbankbenutzers, um Abfragen zum Einfügen, Aktualisieren und Löschen zuzulassen:
grant select , insert, update , delete on vmail. * to ' vmail ' @ ' localhost ' identified by ' vmaildbpass ' ;Oder erstellen Sie einen neuen Benutzer:
grant select , insert, update , delete on vmail. * to ' vmail_mailman ' @ ' localhost ' identified by ' vmaildbpass ' ; Wenn Sie docker auf Ihrem Server installiert haben, können Sie Mailman in einem Docker-Container ausführen. Andernfalls gehen Sie zum Abschnitt „Bereitstellung“, um zu erfahren, wie Sie es manuell bereitstellen.
Laden Sie die Datei sample.env herunter
wget https://github.com/phiilu/mailman/raw/master/sample.env -O .env Aktualisieren Sie die Variablen in .env und starten Sie dann Mailman:
docker run -d --net= " host " --env-file .env --restart=always --name mailman phiilu/mailmanErläuterung:
-d führt den Container als Daemon-Prozess, also im Hintergrund, aus--net="host" weist Docker an, das Netzwerk mit dem Host zu teilen. Dies ist für den Zugriff auf die vmail-Datenbank erforderlich--env-file .env legt die Umgebungsvariablen im Container fest--name mailman setzt den Namen für den Docker-Container auf mailmanDocker mit Unterordnerkonfiguration:
Wenn Sie über einen Unterordner /mailman anstelle des http-Roots / auf mailman zugreifen möchten, müssen Sie Folgendes ändern:
Laden Sie die Datei sample.subfolder.env herunter
wget https://github.com/phiilu/mailman/raw/master/sample.subfolder.env -O .env Aktualisieren Sie die Variablen in .env und starten Sie dann mailman mit dem Tag :subfolder:
docker run -d --net= " host " --env-file .env --restart=always --name mailman phiilu/mailman:subfolder Hinweis: Dieses Docker-Image gilt nur für den Pfad /mailman ! Es kann nicht geändert werden.
sudo apt install build-essential pythoncurl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.6/install.sh | bashNach der Installation von nvm müssen Sie sich zunächst abmelden und erneut anmelden.
Knoten mit NVM installieren
nvm install 9.1.0$ node -v
v9.1.0
$ npm -v
5.5.1npm i -g pm2Am einfachsten ist es, wenn Sie Mailman in das Home-Verzeichnis eines Nicht-Root-Benutzers klonen.
git clone https://github.com/phiilu/mailman.gitcp sample.env .envÖffnen Sie .env mit einem Texteditor und passen Sie die Umgebungsvariablen an Ihre Konfiguration an:
MAILMAN_SECRET eine lange, eindeutige Zufallszeichenfolge zum Signieren des JWT-TokensMAILMAN_DB_ENGINE die von Mailman verwendete Engine. Der Standardwert ist Maria, wenn kein Wert angegeben ist.MAILMAN_DB_USER der vmail DatenbankbenutzerMAILMAN_DB_PASSWORD das Passwort für den vmail -DatenbankbenutzerMAILMAN_DB_DATABASE die vmail -DatenbankMAILMAN_HOST die IP-Adresse, an die sich Mailman bindet. Der Standardwert ist 0.0.0.0MAILMAN_PORT der TCP-Port, an den Mailman bindet. Der Standardwert ist 4000MAILMAN_BASENAME die HTTP-Basis. Standard ist /MAILMAN_ADMIN die E-Mail-Adresse des Benutzers, der die vmail Datenbank verwalten darfUnterordnerkonfiguration:
Wenn Sie über einen Unterordner /mailman anstelle des http-Roots / auf mailman zugreifen möchten, müssen Sie Folgendes ändern:
Diese Schritte müssen durchgeführt werden, BEVOR Sie Mailman erstellen!
mailman/client/package.json und ändern Sie "homepage": "http://localhost:4000/" in "homepage": "http://localhost:4000/mailman"mailman/client/.env.production und ändern Sie REACT_APP_BASENAME=/ in REACT_APP_BASENAME=/mailmanmailman/.env und ändern Sie MAILMAN_BASENAME=/ in MAILMAN_BASENAME=/mailmannpm install && cd client && npm install && cd - && npm run buildpm2 wenn es bereits mit pm2 kill läuftnpm startUm einen zufälligen Hash zu generieren, können Sie den folgenden Befehl in Ihrem Terminal verwenden:
head /dev/urandom | tr -dc A-Za-z0-9 | head -c 128 ; echo ' ' cd mailman && npm install && cd client && npm install && cd - && npm run buildnpm start Mailman sollte jetzt auf Port 4000 des Servers laufen.
Führen Sie den folgenden Befehl im Mailman-Verzeichnis aus
git stash && git pull && npm install && cd client && npm install && cd - && npm run build && pm2 restart alldocker pull phiilu/mailman:latestNachdem Sie das neue Image gezogen haben, starten Sie einfach einen neuen Container.
server {
listen 80 ;
server_name mailman.example.org;
##
## Uncomment one of the two possibilities
##
# Subdomain
#location / {
# proxy_pass http://localhost:4000;
# proxy_set_header Host $host;
# proxy_set_header X-Real-IP $remote_addr;
#}
# Subfolder
#location /mailman {
# proxy_pass http://localhost:4000;
# proxy_set_header Host $host;
# proxy_set_header X-Real-IP $remote_addr;
#}
}Wenn Sie Catch All-E-Mail-Adressen verwenden möchten, lesen Sie bitte den Leitfaden von Thomas:
Wie kann ich mit diesem Setup Catch-All Adressen realisieren? (Deutsch)
Dieses Projekt ist unter der MIT-Lizenz lizenziert