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. Abordaremos em outro post, você pode ler sobre essa outra opção aqui ou nas referências abaixo.
- 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). Aqui iremos abordar esse modelo de Mailing, com um servidor Linux CentOS e o PHPList.
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 MariaDB (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 MariaDB.
Para instalar o repositório do Fedora, execute:
echo "[fedora-source]" > /etc/yum.repos.d/Fedora-Source.repo
echo "name=Fedora - Base Sources" >> /etc/yum.repos.d/Fedora-Source.repo
echo "baseurl=http://dl.fedoraproject.org/pub/epel/\$releasever/x86_64/" >> /etc/yum.repos.d/Fedora-Source.repo
echo "gpgcheck=0" >> /etc/yum.repos.d/Fedora-Source.repo
echo "enabled=0" >> /etc/yum.repos.d/Fedora-Source.repo
Com o servidor Apache instalado, execute os seguintes comandos:
yum install php php-apc php-common php-curl php-dom php-gd php-intl php-ldap php-mbstring php-mysql php-odbc php-pear php-snmp php-soap php-xml php-xmlrpc -y
yum install php-imap php-pecl-zendopcache php-mssql --enablerepo=fedora-source -y
systemctl enable httpd
mkdir -p /var/www/html/phplist
sed -i "s/DocumentRoot \"\/var\/www\/html\"/DocumentRoot \"\/var\/www\/html\/phplist\"/g" /etc/httpd/conf/httpd.conf
sed -i "s/Listen 80/Listen 80\nKeepAlive On\nMaxKeepAliveRequests 30\nKeepAliveTimeout 2/g" /etc/httpd/conf/httpd.conf
sed -i "s/AllowOverride None/AllowOverride All/g" /etc/httpd/conf/httpd.conf
echo "ServerSignature off" >> /etc/httpd/conf/httpd.conf
echo "Timeout 60s" >> /etc/httpd/conf/httpd.conf
echo "LimitRequestFields 20" >> /etc/httpd/conf/httpd.conf
sed -i "s/max_execution_time = 30/max_execution_time = 600/g" /etc/php.ini
sed -i "s/max_input_time = 60/max_input_time = 600/g" /etc/php.ini
sed -i "s/default_socket_timeout = 60/default_socket_timeout = 300/g" /etc/php.ini
sed -i "s/mysql.connect_timeout = 60/mysql.connect_timeout = 300/g" /etc/php.ini
sed -i "s/;date.timezone =/date.timezone = America\/Sao_Paulo/g" /etc/php.ini
sed -i "s/allow_url_include = Off/allow_url_include = On/g" /etc/php.ini
sed -i "s/upload_max_filesize = 2M/upload_max_filesize = 200M/g" /etc/php.ini
sed -i "s/post_max_size = 8M/post_max_size = 200M/g" /etc/php.ini
sed -i "s/memory_limit = 128M/memory_limit = 512M/g" /etc/php.ini
sed -i "s/;opcache.revalidate_freq=2/opcache.revalidate_freq = 60/g" /etc/php.d/opcache.ini
sed -i "s/;opcache.use_cwd=1/opcache.use_cwd=1/g" /etc/php.d/opcache.ini
sed -i "s/;opcache.validate_timestamps=1/opcache.validate_timestamps=1/g" /etc/php.d/opcache.ini
sed -i "s/;opcache.save_comments=1/opcache.save_comments=1/g" /etc/php.d/opcache.ini
sed -i "s/;opcache.enable_file_override=0/opcache.enable_file_override=0/g" /etc/php.d/opcache.ini
service httpd restart
Com o banco de dados MariaDB instalado, para criar o banco execute:
mysql -u root -p
Será solicitado a senha do root (definida anteriormente) informe-a, sem seguida (dentro do MariaDB) crie o banco defina o usuário e senha com acesso a este banco (em cinza a senha,altere-a para o padrão de sua empresa):
create database phplistdb;
grant all privileges on phplistdb.* to 'phplist'@'localhost' identified by 'secretpassword';
flush privileges;
quit
Para instalar e configurar o envio de E-mail, com o Postfix e o Dovecot, execute os comandos:
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.suaempresa.com" >> /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 PHPList, execute:
cd /tmp
wget -O phplist-3.2.7.zip http://prdownloads.sourceforge.net/phplist/phplist-3.2.7.zip?download
unzip phplist-3.2.7.zip
mv /tmp/phplist-3.2.7/public_html/* /var/www/html/phplist/
chown -R apache /var/www/html/phplist
ln -s /var/www/html/phplist/lists/images /var/www/html/phplist/images
vim /var/www/html/phplist/lists/config/config.php
Altere as seguintes linhas abaixo (será necessário a senha definida com acesso à base phplistdb, na instalação do MySQL):
Texto original |
Deverá ser alterado para |
$database_password = ‘your_password’; | $database_password = ‘secretpassword‘; |
define (‘TEST’, 1); | define (‘TEST’, 0); |
# $message_envelope = ‘listbounces@yourdomain’; | $message_envelope = ‘mail@mailing.suaempresa.com‘; |
ADICIONE NO FINAL DO ARQUIVO | $default_system_language = “en”; |
Em seguida, execute:
vim /var/www/html/phplist/lists/admin/ui/dressprow/footer_minified.inc
Aperte a tecla INSERT do teclado para entrar em modo de edição e apague as seguintes linhas:
<a target=”_blank” href=”https://phplist.com”>© phpList ltd.</a> – v<?php echo VERSION?> <div class=”right”> <a target=”_blank” href=”https://resources.phplist.com”>Resources</a> | <a target=”_blank” href=”http://twitter.com/phplist”><img src=”ui/dressprow/images/twitter.png” alt=”phpList twitter” /> |
Altere também o seguinte conteúdo:
Texto original |
Deverá ser alterado para |
<div id=”context-menu” class=”menutableright block”> <h3>Navigation</h3> <?php print contextMenu(); ?> </div> <div id=”recent” class=”menutableright block”> <?php print recentlyVisited(); ?> </div> <div id=”language”> <?php print $languageswitcher; ?> </div> <div class=”clear”></div> <?php include dirname(__FILE__).’/rssfeed.php’; ?> </div><!– end #right-bar –> | <div id=”context-menu” class=”menutableright block”> </div> <div id=”recent” class=”menutableright block”> </div> <div class=”clear”></div> </div><!– end #right-bar –> |
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:
vim /var/www/html/phplist/lists/admin/ui/dressprow/footer.inc
Edite o arquivo, apague e altere as mesmas linhas citadas acima. Em seguida execute:
vim /var/www/html/phplist/lists/admin/ui/dressprow/header.inc
Aperte a tecla INSERT do teclado para entrar em modo de edição e altere as seguintes linhas:
Texto original | Deverá ser alterado para |
<div id=”logo”><a href=”http://www.phplist.com” target=”_blank”><img src=”ui/dressprow/images/branding.png” alt=”phpList, email newsletter manager, logo” title=”phpList, the world’s most popular Open Source newsletter manager” /></a></div> | <div id=”logo”><a href=”http://mailing.suaempresa.com“><img src=”ui/dressprow/images/branding.png” alt=”Mailing Corporativo” title=”Mailing SUA EMPRESA, servidor de listas” /></a></div> |
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:
vim /var/www/html/phplist/lists/admin/login.php
Aperte a tecla INSERT do teclado para entrar em modo de edição e apague a seguinte linha footer();:
Ao final, pressionar a tecla ESC para sair do modo de edição, digitar :wq! e pressionar ENTER para sair e salvar. Em seguida, edite também (com um programa de edição de imagens) o arquivo /var/www/html/phplist/lists/admin/ui/dressprow/images/branding.png.
Depois acesse o endereço http://mailing.suaempresa.com/lists/admin , na tela que abrir, clique em Initialise Database. Na tela seguinte responda o seguinte:
- Please enter your name: Suporte
- The name of your organization: SUA EMPRESA
- Please enter your email address: suporte@suaempresa.com
- Please enter the password you want to use for this account: Verificar a senha com a equipe de redes
Clique em next, na tela seguinte clique em do not subscribe. Clique em Continue with phpList Setup.
Fontes/Referências
NVLAN – Configurar o apache como HTTPS (com SSL) no CentOS
NVLAN – Instalando o MariaDB no CentOS
NVLAN – Instalando um servidor de Mailing em CentOS utilizando o Mailman
NVLAN – Instalação padrão do CentOS7
https://docs.phpmail.org/28/en/Installing_MSSQL_for_PHP
https://forums.cpanel.net/threads/access-logs-for-mysql.223632/
https://www.phplist.org/manual/ch028_installation.xhtml
https://www.rosehosting.com/blog/how-to-install-phplist-on-a-centos-7-vps/
https://www.server-world.info/en/note?os=CentOS_7&p=mail
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.