Mailman es un SPA escrito en React para ayudarlo a administrar la base de datos de su servidor de correo electrónico.

Debe tener un servidor de correo funcional con el modelo de base de datos proporcionado por Thomas Leister en su increíble tutorial de servidor de correo: Mailserver mit Dovecot, Postfix, MySQL und Rspamd unter Debian 9 Stretch.
Actualice los permisos del usuario de la base de datos de vmail para permitir insertar, actualizar y eliminar consultas:
grant select , insert, update , delete on vmail. * to ' vmail ' @ ' localhost ' identified by ' vmaildbpass ' ;O crear un nuevo usuario:
grant select , insert, update , delete on vmail. * to ' vmail_mailman ' @ ' localhost ' identified by ' vmaildbpass ' ; Si tiene docker instalado en su servidor, puede ejecutar Mailman en un contenedor de Docker; de lo contrario, vaya a la sección Implementación para ver cómo implementarlo manualmente.
Descargue el archivo sample.env
wget https://github.com/phiilu/mailman/raw/master/sample.env -O .env Actualice las variables en .env y luego inicie mailman:
docker run -d --net= " host " --env-file .env --restart=always --name mailman phiilu/mailmanExplicación:
-d ejecuta el contenedor como un proceso demonio también conocido como en segundo plano--net="host" le indica a Docker que comparta la red con el host. Esto es necesario para acceder a la base de datos de vmail.--env-file .env establece las variables de entorno en el contenedor--name mailman establece el nombre del contenedor acoplable en mailmanDocker con configuración de subcarpeta:
Si desea acceder a mailman a través de una subcarpeta /mailman en lugar de la raíz http / , debe modificar lo siguiente:
Descargue el archivo sample.subfolder.env
wget https://github.com/phiilu/mailman/raw/master/sample.subfolder.env -O .env Actualice las variables en .env y luego inicie mailman con la etiqueta: subcarpeta:
docker run -d --net= " host " --env-file .env --restart=always --name mailman phiilu/mailman:subfolder Nota: ¡ Esta imagen de Docker es solo para la ruta /mailman ! No se puede cambiar.
sudo apt install build-essential pythoncurl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.6/install.sh | bashDespués de instalar nvm, lo más probable es que cierre sesión y vuelva a iniciar sesión.
Instalar nodo con nvm
nvm install 9.1.0$ node -v
v9.1.0
$ npm -v
5.5.1npm i -g pm2Es más fácil si clonas Mailman en el directorio de inicio de un usuario no root.
git clone https://github.com/phiilu/mailman.gitcp sample.env .envAbra .env con un editor de texto y adapte las variables de entorno con su configuración:
MAILMAN_SECRET una cadena aleatoria única y larga para firmar el token JWTMAILMAN_DB_ENGINE el motor utilizado por el cartero. El valor predeterminado es María si no se proporciona ningún valor.MAILMAN_DB_USER el usuario de la base de datos vmailMAILMAN_DB_PASSWORD la contraseña para el usuario de la base de datos vmailMAILMAN_DB_DATABASE la base de datos vmailMAILMAN_HOST la dirección IP a la que se vincula el cartero. El valor predeterminado es 0.0.0.0MAILMAN_PORT al que se vincula el cartero del puerto TCP. El valor predeterminado es 4000MAILMAN_BASENAME la base HTTP. El valor predeterminado es /MAILMAN_ADMIN la dirección de correo electrónico del usuario, que puede administrar la base de datos vmailConfiguración de subcarpetas:
Si desea acceder a mailman a través de una subcarpeta /mailman en lugar de la raíz http / , debe modificar lo siguiente:
¡Estos pasos deben realizarse ANTES de crear Mailman!
mailman/client/package.json y cambie "homepage": "http://localhost:4000/" a "homepage": "http://localhost:4000/mailman"mailman/client/.env.production y cambie REACT_APP_BASENAME=/ a REACT_APP_BASENAME=/mailmanmailman/.env y cambie MAILMAN_BASENAME=/ a MAILMAN_BASENAME=/mailmannpm install && cd client && npm install && cd - && npm run buildpm2 si ya se está ejecutando con pm2 killnpm startPara generar un hash aleatorio puedes usar el comando en tu terminal:
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 ahora debería estar ejecutándose en el puerto 4000 del servidor.
Ejecute el siguiente comando dentro del directorio del cartero
git stash && git pull && npm install && cd client && npm install && cd - && npm run build && pm2 restart alldocker pull phiilu/mailman:latestDespués de extraer la nueva imagen, simplemente inicie un nuevo contenedor.
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;
#}
}Si desea utilizar las direcciones de correo electrónico Catch All, consulte la Guía de Thomas:
¿Cómo puedo realizar esta configuración Catch-All Adressen? (Alemán)
Este proyecto está bajo la licencia MIT.