Mailman é um SPA escrito em React para ajudá-lo a gerenciar seu banco de dados de servidor de email.

Você deve ter um servidor de correio funcional com o modelo de banco de dados fornecido por Thomas Leister em seu incrível tutorial de servidor de correio: Mailserver com Dovecot, Postfix, MySQL e Rspamd unter Debian 9 Stretch
Atualize as permissões do usuário do banco de dados vmail para permitir consultas de inserção, atualização e exclusão:
grant select , insert, update , delete on vmail. * to ' vmail ' @ ' localhost ' identified by ' vmaildbpass ' ;Ou crie um novo usuário:
grant select , insert, update , delete on vmail. * to ' vmail_mailman ' @ ' localhost ' identified by ' vmaildbpass ' ; Se você tiver docker instalado em seu servidor, poderá executar o Mailman em um contêiner do docker, caso contrário, vá para a seção Implantação para ver como implantá-lo manualmente.
Baixe o arquivo sample.env
wget https://github.com/phiilu/mailman/raw/master/sample.env -O .env Atualize as variáveis em .env e inicie o mailman:
docker run -d --net= " host " --env-file .env --restart=always --name mailman phiilu/mailmanExplicação:
-d executa o contêiner como um processo daemon, também conhecido como em segundo plano--net="host" instrui o docker a compartilhar a rede com o host. Isso é necessário para acessar o banco de dados vmail--env-file .env define as variáveis de ambiente no contêiner--name mailman define o nome do contêiner docker como mailmanDocker com configuração de subpasta:
Se você deseja acessar o mailman através de uma subpasta /mailman em vez da raiz http / , você deve modificar o seguinte:
Baixe o arquivo sample.subfolder.env
wget https://github.com/phiilu/mailman/raw/master/sample.subfolder.env -O .env Atualize as variáveis em .env e inicie o mailman com a tag :subfolder:
docker run -d --net= " host " --env-file .env --restart=always --name mailman phiilu/mailman:subfolder Nota: Esta imagem Docker é apenas para o caminho /mailman ! Não pode ser alterado.
sudo apt install build-essential pythoncurl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.6/install.sh | bashApós a instalação do nvm, você deve fazer logout e login novamente.
Instale o nó com nvm
nvm install 9.1.0$ node -v
v9.1.0
$ npm -v
5.5.1npm i -g pm2É mais fácil clonar o Mailman no diretório inicial de um usuário não root.
git clone https://github.com/phiilu/mailman.gitcp sample.env .envAbra .env com um editor de texto e adapte as variáveis de ambiente com sua configuração:
MAILMAN_SECRET uma string aleatória longa e exclusiva para assinar o token JWTMAILMAN_DB_ENGINE o mecanismo usado pelo mailman. o padrão é maria se nenhum valor for fornecido.MAILMAN_DB_USER o usuário do banco de dados vmailMAILMAN_DB_PASSWORD a senha do usuário do banco de dados vmailMAILMAN_DB_DATABASE o banco de dados vmailMAILMAN_HOST o endereço IP ao qual o mailman se liga. O padrão é 0.0.0.0MAILMAN_PORT a porta TCP à qual o mailman se liga. O padrão é 4000MAILMAN_BASENAME a base HTTP. O padrão é /MAILMAN_ADMIN o endereço de e-mail do usuário, que tem permissão para administrar o banco de dados vmailConfiguração de subpasta:
Se você deseja acessar o mailman através de uma subpasta /mailman em vez da raiz http / , você deve modificar o seguinte:
Essas etapas precisam ser executadas ANTES de construir o Mailman!
mailman/client/package.json e altere "homepage": "http://localhost:4000/" para "homepage": "http://localhost:4000/mailman"mailman/client/.env.production e altere REACT_APP_BASENAME=/ para REACT_APP_BASENAME=/mailmanmailman/.env e altere MAILMAN_BASENAME=/ para MAILMAN_BASENAME=/mailmannpm install && cd client && npm install && cd - && npm run buildpm2 se já estiver rodando com pm2 killnpm startPara gerar um hash aleatório você pode usar o comando em seu 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 agora deve estar rodando na porta 4000 do servidor.
Execute o seguinte comando dentro do diretório mailman
git stash && git pull && npm install && cd client && npm install && cd - && npm run build && pm2 restart alldocker pull phiilu/mailman:latestDepois de extrair a nova imagem, basta iniciar um novo contêiner.
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;
#}
}Se você quiser usar endereços de e-mail Catch All, consulte o Guia do Thomas:
O que posso fazer com esse endereço de configuração catch-all realizável? (Alemão)
Este projeto está licenciado sob a licença MIT