[MTA-Sceo]
Para instalar o Sceo basta você descompactá-lo na raiz do sistema.
# cp sceo_0.30.tar.bz2 /
# cd /
# tar xjf sceo_0.30.tar.bz2
Foram criados os seguintes diretórios:
/usr/local/sceo
/var/spool/sceo
/var/log/sceo
O binário e os arquivos de configuração do Sceo estão em /usr/local/sceo. A "fila" ficará em /var/spool/sceo e os logs em /var/log/sceo. Foi criado o rc.sceo dentro de /etc/rc.d para ligar/desligar o MTA.
Adicione o usuário "sceo":
# groupadd -g 105 sceo
# useradd -g sceo -u 105 sceo
As pastas /var/log/sceo e /var/spool/sceo ficaram com permissão 777 porque não da para saber qual usuário você utilizará com o MTA. Vamos arrumar a permissão para ficar mais seguro:
# chown -R sceo. /var/spool/sceo /var/log/sceo
# chmod -R 744 /var/spool/sceo /var/log/sceo
Vamos à configuração (eu gosto do "pico" como editor de textos, use o de sua preferência).
# cd /usr/local/sceo/
# pico sceo.conf
Procure e altere a opção "Server_name" colocando o nome reverso do endereço IP de seu servidor (FQDN). Exemplo:
Server_name "mx1.meudominio.com.br"
É importantíssimo colocar corretamente o nome do seu servidor na Internet para não ser recusado pelos demais MTAs.
Procure agora a linha "Module """ e comente-a com "#" na frente. Ela deve ficar assim:
#Module ""
Descomente a linha Module que aponta para o módulo MySQL. A linha deve ficar assim:
Module "/usr/local/sceo/mod/sceo_mysql /usr/local/sceo/mod/sceo_mysql.conf"
Agora procure e altere a opção Dlocal para:
Dlocal "/usr/local/libexec/dovecot/deliver -d %l <"
Salve e feche o sceo.conf.
Vamos criar alguns links.
O sceo vem com as ferramentas sceo_mail e fila.
- sceo_mail - Substitui o ‘sendmail’ usado pelos programas locais como Cron, PHP ( função mail) etc. Vamos linka-lo com o nome /usr/bin/sendmail, assim, você não precisa reconfigurar esses programas.
- fila - Mostra a atual fila de emails em processamento do Sceo. Ele praticamente lista o /var/spool/sceo
# ln -sf /usr/local/sceo/sceo_mail /usr/bin/sendmail
# ln -sf /usr/local/sceo/fila /usr/bin/fila
E o binário do Sceo, para facilitar o processamento manual de um ID de fila com a opção -p.
# ln -sf /usr/local/sceo/sceo /usr/bin/sceo
Em relação a quota, não é preciso fazer nada. Ela funcionará corretamente para cada email com base no que você colocar em seu registro no banco de dados.
Módulo Sceo_MySQL
No Slackware é preciso rodar os seguintes comandos para preparar o MySQL:
# /usr/bin/mysql_install_db
# chown -R mysql. /var/lib/mysql/mysql
# chown -R mysql. /var/lib/mysql/test
# chmod 555 /etc/rc.d/rc.mysqld
Agora ligue o banco de dados:
# /etc/rc.d/rc.mysqld start
Vamos criar o banco de dados das contas de e-mails.
# mysql
mysql>
create database mail;
mysql>
grant all privileges on mail.* to sceo@localhost identified by "minhasenha";
mysql>
flush privileges;
mysql>
quit;
LEMBRETE: Em todos os comandos e exemplos de configuração abaixo que requerem o uso da senha do banco de dados eu usarei "minhasenha", você deve estar atento para colocar a senha correta. Em um outro tutorial que escrevi, recebi muitos e-mails de pessoas em que o seu servidor não funcionava porque esqueciam de colocar a senha correta.
Instalando o módulo em seu devido lugar:
# cd /usr/local/sceo/mod
# cp /home/progs/sceo_mysql_1.2.5.tar.bz2 .
# tar xjf sceo_mysql_1.2.5.tar.bz2
Compile o módulo com o comando:
# gcc sceo_mysql.c -o sceo_mysql -lmysqlclient -lcrypt
Se a compilação acima der algum erro é porque você não tem o Mysql-devel instalado corretamente ai em seu sistema operacional. Lembre-se que eu estou usando um
Linux Full (tudo instalado).
Agora edite o sceo_mysql.conf:
# pico sceo_mysql.conf
Altere a opção "Pass=" colocando a senha que usou na criação do banco de dados.
Salve e feche o arquivo. Agora crie a estrutura do banco de dados "mail" com o seguinte comando:
# mysql mail < sceo_mysql.sql
No meu caso, acabei de instalar o Slackware e o MySQL por padrão não vem com a senha do root ligada, por isso eu não precisei especificar a senha do root do banco de dados na linha acima. Caso o seu MySQL esteja com senha, use o comando "mysql -p mail < sceo_mysql.sql" e entre com a senha do root do MySQL quando for solicitado.
Insira um registro de e-mail para testes:
# mysql
mysql>
use mail;
mysql>
INSERT INTO domain VALUES ('dominio.com.br');
O comando abaixo é em uma única linha:
mysql>
INSERT INTO users (mail,home,pass,maildir,date_add,time_add,domain,name) VALUES ('lucas@dominio.com.br','/home/mail/dominio.com.br/lucas/', encrypt('senha123','$1$e8O/rKAf'),'Maildir','2010-02-16','01:22:00','dominio.com.br','Lucas Testador');
E agora saia do cliente do MySQL:
mysql>
quit
Rápida explicação das tabelas:
- users - Tabela onde ficam os e-mails locais
- aliases - Tabela que contém os alias dos e-mails
- domain - Tabela que diz ao Sceo quais são os domínios locais
- adomain - Tabela que contém os alias de domínios.
Vamos testar o sceo_mysql agora:
# ./sceo_mysql sceo_mysql.conf
Deve aparecer:
+OK SCEO_Mysql v 1.2.5 Conectado
Caso apareça "Não conectado" é por que você fez algo errado. Veja se o MySQL esta ligado ou se a senha foi configurada corretamente no sceo_mysql.conf.
Dentro do módulo digite:
user lucas@dominio.com.br
E ele responderá:
+OK
Digite:
local dominio.com.br
+OK
Digite:
quota lucas@dominio.com.br
+OK 100000000
Módulo e MySQL funcionando. Pressione CTRL + D para sair.