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/mailman
Explicació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 python
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.6/install.sh | bash
Despué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.1
npm i -g pm2
Es más fácil si clonas Mailman en el directorio de inicio de un usuario no root.
git clone https://github.com/phiilu/mailman.git
cp sample.env .env
Abra .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 vmail
MAILMAN_DB_PASSWORD
la contraseña para el usuario de la base de datos vmail
MAILMAN_DB_DATABASE
la base de datos vmail
MAILMAN_HOST
la dirección IP a la que se vincula el cartero. El valor predeterminado es 0.0.0.0
MAILMAN_PORT
al que se vincula el cartero del puerto TCP. El valor predeterminado es 4000
MAILMAN_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 vmail
Configuració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=/mailman
mailman/.env
y cambie MAILMAN_BASENAME=/
a MAILMAN_BASENAME=/mailman
npm install && cd client && npm install && cd - && npm run build
pm2
si ya se está ejecutando con pm2 kill
npm start
Para 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 build
npm 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 all
docker pull phiilu/mailman:latest
Despué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.