Sem rodeios. Vamos à instalação:
# cd /home/progs/
# tar xzf dovecot-1.2.14.tar.gz
# cd dovecot-1.2.14
# ./configure --with-mysql
# make
# make install
Crie um grupo e usuário para o Dovecot:
# groupadd -g 106 dovecot
# useradd -s /bin/false -g dovecot -u 106 dovecot
Crie o arquivo /usr/local/etc/dovecot.conf:
# pico /usr/local/etc/dovecot.conf
Coloque o seguinte conteúdo dentro dele (alterando o hostname que está "perdido" aí no meio para o seu hostname correto):
base_dir = /var/run/dovecot/
protocols = imap pop3
listen = *
disable_plaintext_auth = no
ssl = no
mail_location = maildir:~
mail_uid = sceo
mail_gid = sceo
first_valid_uid = 105
last_valid_uid = 105
protocol pop3 {
mail_plugins = quota
}
protocol imap {
mail_plugins = quota imap_quota
}
protocol lda {
postmaster_address = postmaster@dominio.com.br
hostname = mx1.meudominio.com.br
sendmail_path = /usr/local/sceo/sceo_mail
mail_plugins = quota
}
auth_executable = /usr/local/libexec/dovecot/dovecot-auth
auth default {
mechanisms = plain
passdb sql {
args =/usr/local/etc/dovecot-sql.conf
}
userdb sql {
args = /usr/local/etc/dovecot-sql.conf
}
user = sceo
socket listen {
master {
path = /var/run/dovecot/auth-master
mode = 0600
user = sceo
}
}
}
Salve e saia do arquivo.
Agora crie o arquivo /usr/local/etc/dovecot-sql.conf:
# pico /usr/local/etc/dovecot-sql.conf
Coloque o seguinte conteúdo:
driver = mysql
connect = host=localhost dbname=mail user=sceo password=minhasenha
default_pass_scheme = CRYPT
password_query = SELECT mail as name, domain, pass as password FROM users WHERE mail = '%u'
user_query = SELECT concat(home,maildir) AS home, uid, gid,concat('maildir') AS quota FROM users WHERE mail = '%u' ATENÇÃO:
As últimas duas linhas fazem parte de uma linha só. Deixa-as em uma única linha.
Salve e saia do arquivo.
Vamos criar o rc.dovecot para ligarmos e desligarmos o servidor.
# pico /etc/rc.d/rc.dovecot
Cole o seguinte conteúdo no arquivo:
#!/bin/sh
#############################################
# Script de controle do servidor Dovecot
# ./rc.dovecot start -> Ligar servidor
# ./rc.dovecot stop -> Parar servidor
# ./rc.dovecot restart -> Reiniciar servidor
#
#
#
ligar_dovecot() {
echo "INICIANDO Dovecot..."
/usr/local/sbin/dovecot
}
# Stop dovecot:
parar_dovecot() {
echo "Parando Dovecot..."
killall dovecot
}
case "$1" in
'start')
ligar_dovecot
;;
'stop')
parar_dovecot
;;
'restart')
parar_dovecot
sleep 1
ligar_dovecot
;;
*)
echo "Os parametros aceitaveis sao: $0 start|stop|restart"
esac
Dê permissão de execução:
# chmod 500 /etc/rc.d/rc.dovecot
Hora de testar os servidores. Mas antes é preciso criar o maildir daquele e-mail (lucas@dominio.com.br) que criamos.
# mkdir -p /home/mail/dominio.com.br/lucas/Maildir/new
# mkdir /home/mail/dominio.com.br/lucas/Maildir/cur
# mkdir /home/mail/dominio.com.br/lucas/Maildir/tmp
# touch /home/mail/dominio.com.br/lucas/Maildir/maildirsize
# chown -R sceo. /home/mail
# chmod -R 740 /home/mail
ATENÇÃO: Acima eu usei os comandos chown e chmod desta forma porque é o primeiro e-mail criado. Lembre-se de que você precisa sempre ter tudo dentro do diretório /home/mail com permissão 740 e para o usuário "sceo", mas não cometa o erro de dar um "chown -R" e nem um "chmod -R" direto em /home/mail sempre que criar uma nova conta pois se você já tiver muitos domínios ou e-mails criados, o sistema operacional vai redefinir permissões de muitos e muitos arquivos e diretórios desnecessariamente.
Ligue os servidores agora:
# /etc/rc.d/rc.sceo start
# /etc/rc.d/rc.dovecot start
É normal o Dovecot dar a mensagem abaixo antes de ser efetuado o primeiro login via pop/imap:
"If you have trouble with authentication failures,
enable auth_debug setting. See http://wiki.dovecot.org/WhyDoesItNotWork
This message goes away after the first successful login."
Dê um "ps aux" e na saída deve aparecer algo assim:
2727 ? Ss 0:00 /usr/local/sceo/sceo
2728 ? S 0:00 [SCEO_MODULE] /usr/local/sceo/mod/sceo_mysql.conf
2737 ? S 0:00 [SCEO_MODULE] /usr/local/sceo/mod/sceo_mysql.conf
2739 ? S 0:00 [SCEO_MODULE] /usr/local/sceo/mod/sceo_mysql.conf
2741 ? S 0:00 [SCEO_MODULE] /usr/local/sceo/mod/sceo_mysql.conf
2743 ? S 0:00 [SCEO_MODULE] /usr/local/sceo/mod/sceo_mysql.conf
2745 ? S 0:00 /usr/local/sceo/sceo
2937 ? Ss 0:00 /usr/local/sbin/dovecot
2938 ? S 0:00 dovecot-auth
2939 ? S 0:00 dovecot-auth -w
2941 ? S 0:00 pop3-login
2942 ? S 0:00 pop3-login
2943 ? S 0:00 pop3-login
2944 ? S 0:00 imap-login
2945 ? S 0:00 imap-login
2946 ? S 0:00 imap-login
Testando o Sceo
# telnet localhost 25
220 mx1.dominio.com.br SMTP SCEO v0.30
ehlo localhost
250-mx1.dominio.com.br
250-SIZE 10485760
250-AUTH PLAIN LOGIN
250 8BITMIME
mail from: <lucas@dominio.com.br>
250 Remetente liberado
rcpt to: <lucas@dominio.com.br>
250 Destinatario liberado
data
354 Envie o email e termine com <CRLF>.<CRLF>
From: Testando <lucas@dominio.com.br>
To: <lucas@dominio.com.br>
Subject: Teste
Ola mundo dos emails
Estou apenas fazendo um teste
.
250 Email aceito (ID: 1266282671_29640)
quit
221 Ate logo
Email entregue.
Testando o Dovecot
# telnet localhost 110
+OK Dovecot ready.
user lucas@dominio.com.br
+OK
pass senha123
+OK Logged in.
Lembre-se de colocar a senha que usou na criação do email "lucas@dominio.com.br" no INSERT de MySQL mais acima.
list
+OK 1 messages:
1 348
.
retr 1
+OK 348 octets
Return-Path: <lucas@dominio.com.br>
Received: from teste (localhost[127.0.0.1])
by mx1.dominio.com.br SMTP SCEO v0.30b id 1266282671_mx129640
for <lucas@dominio.com.br>; Wed, 22 Sep 2010 00:11:32 -0300
From: Testando <lucas@dominio.com.br>
To: <lucas@dominio.com.br>
Subject: Teste
Ola mundo dos emails
Estou apenas fazendo um teste
.
quit
+OK Logging out.
Nosso servidor já está pronto para receber emails.
Vamos agora a uma parte mais avançada do servidor. Combate ao Spam!