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/mailman
Erlä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 python
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.6/install.sh | bash
Nach 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.1
npm i -g pm2
Am einfachsten ist es, wenn Sie Mailman in das Home-Verzeichnis eines Nicht-Root-Benutzers klonen.
git clone https://github.com/phiilu/mailman.git
cp 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.0
MAILMAN_PORT
der TCP-Port, an den Mailman bindet. Der Standardwert ist 4000
MAILMAN_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=/mailman
mailman/.env
und ändern Sie MAILMAN_BASENAME=/
in MAILMAN_BASENAME=/mailman
npm install && cd client && npm install && cd - && npm run build
pm2
wenn es bereits mit pm2 kill
läuftnpm start
Um 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 build
npm 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 all
docker pull phiilu/mailman:latest
Nachdem 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