Instalação Mailtrain · 11 min read · Sep 29, 2025
Como Instalar o Aplicativo de Newsletter Mailtrain no CentOS 7
Mailtrain é um aplicativo de newsletter de código aberto auto-hospedado escrito em Node.js. Ele usa uma biblioteca Node.js muito popular, o Nodemailer, para enviar os e-mails. Oferece automação e análises excepcionais sem custo algum. Você pode facilmente criar ou importar uma lista de e-mails de um milhão de endereços de e-mail usando a importação de arquivos CSV. Também suporta campos e formulários personalizados. Fornece automação por meio de gatilhos, que podem enviar mensagens específicas para usuários específicos quando a ação é acionada. Você pode usar qualquer provedor de e-mail para enviar a newsletter que suporte o protocolo SMTP, juntamente com suporte para Amazon SES, ZoneMTA, SendGrid e Mailgun, etc. Oferece múltiplos editores WYSIWYG para criar belos modelos para newsletters.
Neste tutorial, instalaremos o Mailtrain juntamente com todas as dependências necessárias no CentOS 7. Também configuraremos o Nginx como um proxy reverso para servir o aplicativo na porta HTTP padrão.
Requisitos
O Metabase requer pelo menos 1GB de RAM. Todas as dependências necessárias serão instaladas ao longo do tutorial. Você precisará de uma instalação mínima do CentOS 7 com acesso root. Se você estiver logado como um usuário não-root, pode executar sudo -i para mudar para o usuário root.
Atualizar Sistema Base
Antes de instalar qualquer pacote, é recomendável que você atualize os pacotes e o repositório usando o seguinte comando.
yum -y updateInstalar Node.js
Node.js é necessário para o Mailtrain, pois é construído usando o Nodemailer. Node.js é um ambiente de execução JavaScript muito popular e o Nodemailer é um módulo para aplicativos Node.js para enviar e-mails.
Adicione o repositório Node.js 8.x:
curl --silent --location https://rpm.nodesource.com/setup_8.x | sudo bash -Instale o Node.js.
yum -y install nodejsInstalar MariaDB
Para armazenar o banco de dados do Mailtrain, precisaremos instalar o MariaDB. O MariaDB é um fork do MySQL Instale o repositório do MariaDB em seu sistema.
nano /etc/yum.repos.d/mariadb.repoAdicione as seguintes linhas ao arquivo.
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.2/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1
Agora instale o MariaDB executando.
yum -y install mariadb-server mariadbPara iniciar o MariaDB e habilitá-lo para iniciar na inicialização, use os seguintes comandos.
systemctl start mariadb
systemctl enable mariadbAgora execute os seguintes comandos para proteger sua instalação do MySQL ou MariaDB.
mysql_secure_installationEle executará um pequeno script que pede para você fornecer a senha root para o MariaDB. Como acabamos de instalar o MariaDB, a senha root não está definida, apenas pressione enter para prosseguir. Ele perguntará se você deseja definir uma senha root para sua instalação do MariaDB, escolha y e defina uma senha forte para a instalação. Ele também perguntará sobre a remoção de bancos de dados de teste e usuários anônimos. A maioria das perguntas é autoexplicativa e você deve responder sim ou y a todas as perguntas.
O Mailtrain requer dois usuários de banco de dados para funcionar, um para administrar o banco de dados do Mailtrain e outro para gerar os relatórios do trabalhador.
Para criar um banco de dados, precisaremos fazer login na linha de comando do MySQL primeiro. Execute o seguinte comando para isso.
mysql -u root -pIsso solicitará a senha, forneça a senha root do MySQL que você definiu anteriormente. Agora execute a seguinte consulta para criar um novo banco de dados para sua instalação do Mailtrain.
CREATE DATABASE mailtrain CHARACTER SET utf8 COLLATE utf8_general_ci;A consulta acima criará um banco de dados chamado mailtrain. Certifique-se de usar ponto e vírgula no final de cada consulta, pois a consulta sempre termina com um ponto e vírgula. Uma vez que o banco de dados é criado, você pode criar um novo usuário e conceder todas as permissões ao usuário para o banco de dados. Usar o usuário root não é recomendado para os bancos de dados. Para criar um novo usuário de banco de dados, execute a seguinte consulta.
CREATE USER 'mailtrain'@'localhost' IDENTIFIED BY 'StrongPassword';A consulta acima criará um usuário com o nome de usuário mailtrain. Você pode usar qualquer nome de usuário preferido em vez de mailtrain. Substitua StrongPassword por uma senha forte. Agora forneça os privilégios apropriados ao seu usuário de banco de dados sobre o banco de dados que você criou. Execute o seguinte comando.
GRANT ALL PRIVILEGES ON mailtrain.* TO 'mailtrain'@'localhost';Agora crie um novo usuário para Mailtrain RO.
CREATE USER 'mailtrain_ro'@'localhost' IDENTIFIED BY 'StrongROPassword';Forneça acesso de leitura ao usuário RO sobre o banco de dados Mailtrain.
GRANT SELECT ON mailtrain.* TO 'mailtrain_ro'@'localhost';Agora execute o seguinte comando para aplicar imediatamente as alterações nas permissões do banco de dados.
FLUSH PRIVILEGES;Saia do prompt do MySQL usando o comando exit.
EXIT;Instalar Dependências
O Mailtrain requer mais algumas dependências para funcionar. Instale as dependências executando:
yum -y install ImageMagick git python redis bind-utils gcc-c++ makeImageMagick é uma ferramenta para processar imagens Bitmap e o Git será usado para clonar o repositório do projeto do aplicativo. Redis é um aplicativo de cache de sessão muito popular e Python, bind-utils, gcc-c++ e make serão usados para compilar os arquivos do aplicativo.
Inicie o Redis e habilite-o para iniciar automaticamente:
systemctl start redis
systemctl enable redisBaixar e Instalar Mailtrain
Clone os arquivos de instalação do Mailtrain usando o Git.
git clone git://github.com/Mailtrain-org/mailtrain.git /opt/mailtrainCrie um novo usuário Mailtrain para executar o daemon do Mailtrain. Isso garantirá que o Mailtrain esteja sendo executado em um ambiente isolado.
adduser mailtrain -d /opt/mailtrainO comando acima criará um novo usuário mailtrain e /opt/mailtrain será usado como o diretório home.
Mude para o diretório Mailtrain executando:
cd /opt/mailtrainAntes de prosseguir, você deve gerar uma string aleatória que será usada para criptografar os dados da sessão. Para gerar a string aleatória, você pode usar a utilidade pwgen.
Execute yum -y install pwgen para instalar a utilidade pwgen. Execute pwgen -1 64 para gerar uma string com comprimento de 64 caracteres. Você verá:
[root@liptan-pc mailtrain]# pwgen -1 64
Poy0aeLalie5uew7eenanootehohLudiuleac5aigaekah1amokumeeg5aiG2ied
Crie um novo arquivo de configuração production.toml. A configuração fornecida neste arquivo substitui o arquivo de configuração padrão default.toml. Não devemos modificar o arquivo de configuração padrão. Crie um novo arquivo production.toml para armazenar a configuração de substituição.
nano config/production.tomlPreencha o arquivo com a seguinte configuração.
language="en"
user="mailtrain"
group="mailtrain"
rouser="nobody"
rogroup="nobody"
[log]
level="error"
[www]
host="localhost"
port="3000"
secret="RandomString"
remember=604800
proxy=true
tmpdir="/tmp"
[mysql]
user="mailtrain"
password="StrongPassword"
database="mailtrain"
port=3306
charset="utf8"
[redis]
enabled=true
[queue]
processes=5
[reports]
enabled=true
A configuração acima permite que o Mailtrain seja executado como o usuário mailtrain e o usuário do Worker Reports do Mailtrain seja executado como o usuário nobody. Além disso, configura o servidor embutido para escutar no localhost na porta 3000. Configuraremos o Nginx como um proxy reverso para que a interface da web do Mailtrain possa ser acessada através da porta HTTP padrão.
Substitua RandomString em secret= pela string aleatória gerada acima. Defina proxy como true, pois estaremos executando o servidor embutido do Mailtrain atrás do proxy Nginx.
Defina o nome de usuário, senha e nome do banco de dados do banco de dados que você criou para armazenar os dados do Mailtrain.
Além disso, crie um novo arquivo para armazenar a configuração de produção para os Relatórios do Trabalhador.
nano workers/reports/config/production.tomlPreencha o arquivo com a seguinte configuração.
[log]
level="error"
[mysql]
host="localhost"
user="mailtrain_ro"
password="StrongROPassword"
database="mailtrain"
port=3306
charset="utf8"
timezone="local"
Agora baixe as dependências necessárias do Node.js e instale o software:
npm install --productionUma vez que o aplicativo esteja instalado, você pode iniciá-lo imediatamente usando:
NODE_ENV=production npm startSe o servidor estiver em execução, você deverá ver a seguinte saída.
[root@liptan-pc mailtrain]# NODE_ENV=production npm start
> [email protected] start /opt/mailtrain
> node index.js
info Using local auth
Mas em vez de iniciar o aplicativo diretamente, usaremos um serviço systemd. Pare a execução pressionando ctrl + C.
Forneça a propriedade dos arquivos ao usuário Mailtrain e remova todas as permissões sobre a configuração de outros usuários não-root do sistema:
chown -R mailtrain:mailtrain /opt/mailtrain
chmod o-rwx /opt/mailtrain/configConfigurando o Serviço Systemd
Crie um novo arquivo de serviço Systemd. Usar o Systemd em vez de um comando direto para executar o servidor garantirá que o servidor seja iniciado automaticamente em caso de falha e reinicialização. Isso torna o gerenciamento do serviço muito fácil.
nano /etc/systemd/system/mailtrain.servicePreencha o arquivo com a seguinte configuração.
[Unit]
Description=Servidor Mailtrain
Requires=mariadb.service
After=syslog.target network.target
[Service]
user=mailtrain
group=mailtrain
Environment="NODE_ENV=production"
WorkingDirectory=/opt/mailtrain
ExecStart=/usr/bin/node index.js
Type=simple
Restart=always
RestartSec=10
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=mailtrain
[Install]
WantedBy=multi-user.target
Inicie o Mailtrain e habilite-o para iniciar automaticamente na inicialização:
systemctl enable mailtrain
systemctl start mailtrainPara verificar o status do serviço, execute:
systemctl status mailtrainVocê deve ver que o serviço está sendo executado ativamente.
[root@liptan-pc ~]# systemctl status mailtrain
? mailtrain.service - Servidor Mailtrain
Loaded: loaded (/etc/systemd/system/mailtrain.service; enabled; vendor preset: disabled)
Active: active (running) since Mon 2017-10-09 11:15:40 UTC; 9s ago
Main PID: 18092 (mailtrain)
CGroup: /system.slice/mailtrain.service
??18092 mailtrain
??18105 /usr/bin/node /opt/mailtrain/services/executor.js
??18112 /usr/bin/node /opt/mailtrain/services/sender.js
??18117 /usr/bin/node /opt/mailtrain/services/sender.js
??18125 /usr/bin/node /opt/mailtrain/services/sender.js
??18131 /usr/bin/node /opt/mailtrain/services/sender.js
??18136 /usr/bin/node /opt/mailtrain/services/sender.js
Oct 09 11:15:40 liptan-pc systemd[1]: Started Mailtrain Server.
Oct 09 11:15:40 liptan-pc systemd[1]: Starting Mailtrain Server...
Oct 09 11:15:44 liptan-pc mailtrain[18092]: info Using local auth
Configurar Logrotate
Logrotate é uma utilidade muito útil para atualizar logs desatualizados. Quando um serviço está em execução continuamente, ele gera uma enorme quantidade de logs. Os arquivos que contêm os logs consomem muito espaço em disco. O Logrotate exclui periodicamente os logs antigos para que as entradas de log possam ser substituídas por novos logs.
Crie um novo arquivo de configuração do logrotate:
nano /etc/logrotate.d/mailtrainPreencha o arquivo com a seguinte configuração:
/var/log/mailtrain.log {
daily
rotate 12
compress
delaycompress
missingok
notifempty
copytruncate
nomail
}
Configurar Nginx como Proxy Reverso
Configuramos a interface web embutida do Mailtrain para escutar no localhost na porta 3000, pois é importante executar um servidor web de produção para servir o site aos usuários. Neste tutorial, usaremos o Nginx como o proxy reverso para que o aplicativo possa ser acessado pela porta HTTP padrão. Instale o servidor web Nginx:
yum -y install nginxCrie um novo arquivo de bloco de servidor para o host virtual do Nginx:
nano /etc/nginx/conf.d/mailtrain.confPreencha o arquivo com:
server {
listen 80;
listen [::]:80;
server_name news.example.com www.news.example.com ;
access_log /var/log/nginx/mailtrain.log;
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header HOST $http_host;
proxy_set_header X-NginX-Proxy true;
proxy_pass http://127.0.0.1:3000;
proxy_redirect off;
}
}
Reinicie o servidor web Nginx e habilite-o para iniciar automaticamente na inicialização:
systemctl restart nginx
systemctl enable nginxConfigurar Firewall e SELinux
Se você estiver executando um firewall em seu servidor, precisará configurar o firewall para definir uma exceção para o serviço HTTP. Permita que o proxy reverso do Nginx se conecte de fora da rede.
firebase-cmd --zone=public --permanent --add-service=http
firebase-cmd --reloadSe você tiver o SELinux habilitado em seu sistema, precisará adicionar algumas exceções nas políticas do SELinux.
Para verificar se o SELinux está habilitado, execute:
getenforceSe você tiver o SELinux habilitado, execute:
setsebool -P httpd_can_network_connect 1Acessando a Interface Web
A instalação do Mailtrain agora está concluída. Você pode acessar o servidor Mailtrain em http://news.example.com. Você verá a seguinte interface.

Clique no botão de login e faça login usando o nome de usuário admin e a senha test.

Navegue até a seção Conta do painel e atualize o endereço de e-mail e a senha. É muito importante atualizar a senha o mais rápido possível.

Além disso, é importante atualizar as configurações antes que você possa usar o Mailtrain.

Atualize a URL do Site e o e-mail do Admin. Você também pode fornecer o ID de rastreamento do Google Analytics para rastrear as informações via Google Analytics. Você pode colocar algum código HTML que será exibido na página inicial do seu servidor.

Defina os padrões da campanha, como seu nome de remetente, endereço padrão, nome de remetente padrão, e-mail e URL, etc. Ao enviar os e-mails, se essas opções não estiverem configuradas, os padrões serão usados.

Finalmente, a configuração mais importante é fornecer as credenciais do servidor de e-mail. Você pode usar qualquer servidor SMTP ou Amazon SES (Serviço de E-mail Simples). Se você estiver usando SMTP, forneça o nome do host do servidor de e-mail, porta, nome de usuário e senha do seu servidor SMTP. Se você estiver usando Amazon SES, forneça a chave da API e outras credenciais.
Você também pode configurar seu próprio servidor SMTP. basta seguir qualquer um desses guias:
- Como Criar um Servidor de E-mail Completo Usando Postal
- Construir um Servidor de E-mail Completo no CentOS 6 com Postfix, Dovecot, PostgreSQL
- Configurando um Servidor de E-mail Usando Exim4, Clamav, Dovecot, SpamAssassin e Muito Mais no Debian
Agora você tem um servidor Mailtrain totalmente funcional instalado em seu servidor CentOS 7. Crie sua primeira lista e comece a enviar newsletters para os assinantes. Você pode criar um modelo interativo usando o editor WYSIWYG e enviar os e-mails usando as campanhas. O Mailtrain também fornece relatórios dos e-mails enviados e abertos. Você pode usar a guia Automação para criar gatilhos que enviam e-mails quando alguma ação específica é realizada. Você também pode configurar a criptografia GPG. Se uma lista tiver um campo personalizado para uma chave pública GPG definida, os assinantes poderão enviar sua chave pública GPG para receber mensagens criptografadas da lista.
Receba novas postagens na sua caixa de entrada
Sem spam. Cancele a assinatura a qualquer momento.