Existem diversas formas de utilizar um servidor de Mailing, as principais são:

  • Como um sistema de grupos (como o Google Groups): Onde o usuário utiliza sua ferramenta de e-mail atual e dela envia e-mail para um grupo, onde todos do grupo podem responder diretamente ou após a aprovação da mensagem por um moderador. Aqui iremos abordar esse modelo de Mailing, com um servidor Linux CentOS e o Mailman.
  • Como um sistema de campanhas: Onde o usuário entra em uma ferramenta WEB, cria ou grupo ou utiliza um existente para enviar uma campanha e por esta ferramenta acompanha qual foi a efetividade desta campanha (quantos receberam, quantos leram). Abordaremos em outro post, você pode ler sobre essa outra opção aqui ou nas referências abaixo.

Lembre-se que será necessário ter cadastrado o nome DNS (e MX) desse sistema (altere todas as partes em cinza conforme sua necessidade). Para instalar esse servidor, você vai precisar:

  • Instalar o servidor CentOS padrão: Caso tenha dúvidas consulte aqui ou no link disponibilizado nas referências.
  • Instalar o servidor Apache: Caso tenha dúvidas consulte aqui ou no link disponibilizado nas referências.
    • Caso queira configurar o site como HTTPS (consulte aqui, ou nas referências abaixo).
  • Instalar o servidor MySQL (Nesse post iremos instalar o banco junto à aplicação, mas você pode preferir instalar e criar o banco em um servidor separado). Caso tenha dúvidas consulte como instalar o MySQL .

Para configurar os requisitos do Mailman faça logon como root e execute:

sed -i "s/AllowOverride None/AllowOverride All/g" /etc/httpd/conf/httpd.conf
sed -i "s/ServerAdmin root@localhost/ServerAdmin suporte@suaempresa.com/g" /etc/httpd/conf/httpd.conf

systemctl restart httpd

yum install postfix dovecot -y
vim /etc/dovecot/dovecot.conf

Aperte a tecla INSERT do teclado para entrar em modo de edição e deixa-lo da seguinte forma:

protocols = imap imaps pop3 pop3s
mail_location = maildir:~/Maildir
pop3_uidl_format = %08Xu%08Xv
login_process_size = 64

Ao final, pressionar a tecla ESC para sair do modo de edição, digitar :wq! e pressionar ENTER para sair e salvar. Em seguida, execute:

systemctl enable dovecot
systemctl start dovecot

cp -R /etc/postfix/main.cf /etc/postfix/main.cf.bkp
sed -i "s/inet_interfaces = localhost/inet_interfaces = all/g" /etc/postfix/main.cf
echo "# CONFIGURACAO PERSONALIZADA" >> /etc/postfix/main.cf
echo "" >> /etc/postfix/main.cf
echo "myhostname = `hostname | tr 'A-Z' 'a-z'`" >> /etc/postfix/main.cf
echo "mydomain = mailing.seudominio.com.br" >> /etc/postfix/main.cf
echo "myorigin = $mydomain" >> /etc/postfix/main.cf
echo "mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain" >> /etc/postfix/main.cf
echo "mynetworks = 127.0.0.0/8 SUA_REDE/CIDR" >> /etc/postfix/main.cf
echo "# limit an email size for 10M" >> /etc/postfix/main.cf
echo "message_size_limit = 10485760" >> /etc/postfix/main.cf
echo "# limit a mailbox for 1G" >> /etc/postfix/main.cf
echo "mailbox_size_limit = 1073741824" >> /etc/postfix/main.cf

Para instalar o Mailman, execute:

yum install mailman -y

touch /var/lib/mailman/data/aliases
postmap /var/lib/mailman/data/aliases
chkconfig --level 2345 mailman on
/usr/lib/mailman/bin/newlist mailman

vim /etc/aliases

Aperte a tecla INSERT do teclado para entrar em modo de edição e insira o seguinte conteúdo no final do arquivo:

promailman:              “|/usr/lib/mailman/mail/mailman post mailman”
mailman-admin:        “|/usr/lib/mailman/mail/mailman admin mailman”
mailman-bounces:      “|/usr/lib/mailman/mail/mailman bounces mailman”
mailman-confirm:      “|/usr/lib/mailman/mail/mailman confirm mailman”
mailman-join:         “|/usr/lib/mailman/mail/mailman join mailman”
mailman-leave:        “|/usr/lib/mailman/mail/mailman leave mailman”
mailman-owner:        “|/usr/lib/mailman/mail/mailman owner mailman”
mailman-request:      “|/usr/lib/mailman/mail/mailman request mailman”
mailman-subscribe:    “|/usr/lib/mailman/mail/mailman subscribe mailman”
mailman-unsubscribe:  “|/usr/lib/mailman/mail/mailman unsubscribe mailman”

Ao final, pressionar a tecla ESC para sair do modo de edição, digitar :wq! e pressionar ENTER para sair e salvar. Em seguida, execute:

newaliases

sed -i "s/\/usr\/lib\/mailman\/cgi-bin\//\/usr\/lib\/mailman\//g" /etc/httpd/conf.d/mailman.conf

echo "RedirectMatch ^/mailman[/]*$ http://seu_servidor.seudominio.com.br/mailman/listinfo" >> /etc/httpd/conf.d/mailman.conf

sed -i "s/DEFAULT_EMAIL_HOST = 'localhost.localdomain'/DEFAULT_EMAIL_HOST = 'mailing.seudominio.com.br'/g" /usr/lib/mailman/Mailman/Defaults.py
sed -i "s/DEFAULT_URL_HOST = 'localhost.localdomain'/DEFAULT_URL_HOST = 'mailing.seudominio.com.br'/g" /usr/lib/mailman/Mailman/Defaults.py
sed -i "s/DEFAULT_URL_PATTERN = 'http:\/\/\%s\/mailman\/'/DEFAULT_URL_PATTERN = 'http:\/\/\%s\/mailman\/cgi-bin\/'/g" /usr/lib/mailman/Mailman/Defaults.py
sed -i "s/DEFAULT_EMAIL_HOST = fqdn/DEFAULT_EMAIL_HOST = 'mailing.seudominio.com.br'/ g" /usr/lib/mailman/Mailman/mm_cfg.py

Fontes/Referências

NVLAN – Configurar o apache como HTTPS (com SSL) no CentOS
NVLAN – Instalação padrão do CentOS7
NVLAN – Instalando um servidor de Mailing em CentOS utilizando o PHPList

Mais Informações

Esperamos ter ajudado da melhor forma possível e estaremos sempre a disposição para mais informações.

Entre em contato conosco pelo e-mail equipe@nvlan.com.br.