MTA Selor: Servidor de E-mails - Novo Projeto GPL

Como criar rapidamente, um servidor de E-mails para grande fluxo de mensagens e de fácil administração. Inclui: SMTP (MTA Selor), POP3/IMAP (Dovecot), base MySQL, WEBmail (Roundcube), quota de envio de mensagens e técnicas anti-Spam.

[ Hits: 17.867 ]

Por: Lucas Priori em 15/05/2014


Instalando o servidor POP3/IMAP



# cd /home/progs
# tar xzf dovecot-2.2.12.tar.gz
# cd dovecot-2.2.12
# ./configure --with-mysql
# make
# make install
# useradd dovenull
# cd /usr/local/etc/dovecot


Crie o arquivo dovecot.conf com o seguinte conteúdo:

protocols = imap pop3
listen = *, ::

base_dir = /var/run/dovecot/
instance_name = dovecot
login_greeting = POP3/IMAP Server
shutdown_clients = yes
maildir_copy_with_hardlinks = yes

#--- AUTH
disable_plaintext_auth = no
auth_cache_size = 2048
auth_cache_ttl = 1 hour
auth_cache_negative_ttl = 0
auth_realms =
auth_default_realm =
auth_username_chars = abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890.-_@
auth_worker_max_count = 30
auth_mechanisms = plain

# %u - username
# %n - user part in user@domain, same as %u if there's no domain
# %d - domain part in user@domain, empty if there's no domain
# %h - home directory

mail_location = maildir:~

mail_uid = selor
mail_gid = selor

first_valid_uid = 105
last_valid_uid = 105
first_valid_gid = 105
last_valid_gid = 105

#------
default_process_limit = 100
default_client_limit = 1000
default_vsz_limit = 256M

mail_fsync = never

#-----
service imap-login {
service_count = 1
inet_listener imap {
port = 143
}
}
service pop3-login {
service_count = 1
inet_listener pop3 {
port = 110
}
}
service auth {
unix_listener auth-userdb {
user = selor
}
}

#----------
ssl = no

#----------
protocol lda {
postmaster_address = postmaster@dominio.com.br
hostname = srv1.dominio.com.br
sendmail_path = /usr/local/selor/selor_mail
mail_plugins = quota
lda_mailbox_autocreate = yes
}

protocol imap {
mail_plugins = quota imap_quota
}

protocol pop3 {
mail_plugins = quota
}


passdb {
driver = sql
args = /usr/local/etc/dovecot/dovecot-sql.conf
}

userdb {
driver = sql
args = /usr/local/etc/dovecot/dovecot-sql.conf
}

# ------- FIM DO ARQUIVO ---------

Obs. 1: não esqueça de trocar as opções postmaster e hostname, colocando corretamente o nome do seu servidor.

Crie agora, o arquivo dovecot-sql.conf com o seguinte conteúdo:

driver = mysql
connect = host=localhost dbname=mail user=selor 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'

Obs. 2: lembre-se de colocar o usuário e a senha que você usou durante a configuração da base de dados, com o comando: grant all privileges...

Crie o script de inicialização do Dovecot (/etc/rc.d/rc.dovecot) com o seguinte conteúdo:

#!/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
#------- Fim do SCRIPT ---------

Dê permissão de execução para o script e ligue o Dovecot:

# chmod 555 /etc/rc.d/rc.dovecot
# /etc/rc.d/rc.dovecot start


Teste o servidor POP3 com o telnet:

# telnet localhost 110

Digite os seguintes comandos dentro do telnet:

  user lucas@dominio.com.br
  pass senha123
  list
  quit


Servidor POP3/IMAP pronto.

Página anterior     Próxima página

Páginas do artigo
   1. Apresentação e downloads
   2. Instalando o servidor SMTP
   3. Instalando o servidor POP3/IMAP
   4. Instalação do WEBmail
   5. Filtros anti-Spam
   6. Quota de envio de E-mails
Outros artigos deste autor

Dividindo carga de saída de servidor SMTP (MTA Selor)

Servidor de emails com Dovecot e MTA Sceo (projeto brasileiro)

Benchmark entre servidores de e-mails

Servidor de e-mail no Linux com MTA Sceo

Leitura recomendada

Servidor Postfix Total

POSTFIX + SASL - Autenticando em SMTP remoto

Cluster de Alta disponibilidade do Zimbra Collaboration System

Servidor de email + webmail no OpenSuSE 10.2

Servidor de e-mail com OpenBSD - Postfix & Cia

  
Comentários
[1] Comentário enviado por demoncyber em 15/05/2014 - 10:36h

Olá,

Desculpe a pergunta de alguém sendo preguiçoso XP .. Vi que têm uma versão para FreeBSD, você sabe se o programa compila com LLVM ou se você esta fazendo uso de chamadas ou algo específico que só funcione com GCC, ou algo que nem vale tentar a empreitada de tentar ajustar o programa para compilar com LLVM ?

Você é o pai da criança :) vai ser mais rápido e fácil de responder.

Pergunto isto, pois a partir do freebsd 10 o compilador padrão é o LLVM .... ( blah blah ), instalar mais um compilador ( blah blah )

No mais achei bem interessante o software, pena que ainda não está utilizando algum gerenciador de código fonte como SVN, ou GIT.

Assim que conseguir um tempo melhor, espero testar e contribuir.

Ressalto aqui parabenizando a iniciativa do projeto, parabéns.

Abraços

[2] Comentário enviado por jov em 15/05/2014 - 11:46h

Parabéns pela iniciativa!

[3] Comentário enviado por lpriori em 15/05/2014 - 19:32h

Boa noite Demoncyber,

Então, eu fiquei sabendo sim que o FreeBSD estava adotando este novo compilador, porém, te confesso que ainda não testei nele. O FreeBSD no qual eu compilei e fiz testes foi o 9.0. que ainda usa o GCC.

Além do GCC, você precisa do NASM ( Montador Assembly ) também. Mas este é padrão a muito tempo em tudo quanto é Linux e FreeBSD.

Vou puxar esta nova versão para ver como é o esquema e se precisar de adaptações, eu faço. Obrigado pela dica. Vi que você já se cadastrou no Forum.
Fique a vontade para fazer criticas, tirar dúvidas ou sugestões. Como falei, estou sempre escutando o que a moçada precisa para implantar.

Realmente não usei qualquer tipo de gerenciador de código. Vamos ver como será daqui pra frente.
Eu agora estou em uma fase divulgação e estou traduzindo o site para o ingles.

Obrigado !


[4] Comentário enviado por igor.ol13 em 25/01/2015 - 14:02h


Olá, boa tarde. Agradeço e parabenizo pelo projeto, é muito bom ver brasileiros cada vez mais criando novos projetos...

Aparentemente tudo funcionou perfeitamente, exceto uma coisa: não envia emails para servidores externos, o roundcube sempre dá a mensagem "Erro SMTP (550): Falha ao adicionar o destinatário
"email@yahoo.com" (Relay denied)."

O que eu posso fazer pra corrigir o problema?

[5] Comentário enviado por willian.firmino em 29/05/2015 - 16:01h

Este projeto ainda esta ativo ?

[6] Comentário enviado por mrbirth em 09/06/2015 - 09:07h


Olá Lucas, estou criando um novo servidor de email utilizando o Selor, parei na hora de testar o smtp no tel net aparece a seguinte msg: Trying ::1... Connected to localhost. Escape character is '^]'. 220 mail.etc.etc.etc ESMTP Exim 4.84... Não aparece erros nos logs, o que pode estar ocorrendo?? Obrigado!!!

[7] Comentário enviado por lpriori em 09/06/2015 - 12:29h


[6] Comentário enviado por mrbirth em 09/06/2015 - 09:07h


Olá Lucas, estou criando um novo servidor de email utilizando o Selor, parei na hora de testar o smtp no tel net aparece a seguinte msg: Trying ::1... Connected to localhost. Escape character is '^]'. 220 mail.etc.etc.etc ESMTP Exim 4.84... Não aparece erros nos logs, o que pode estar ocorrendo?? Obrigado!!!


Fala mrbirth,

O problema ai está ocorrendo porque o Exim está rodando ainda, o Selor nem ligou aí pois a porta 25 está sendo usada. Desative o Exim e ligue o Selor novamente

Abraço

[8] Comentário enviado por lpriori em 09/06/2015 - 12:35h


[5] Comentário enviado por willian.firmino em 29/05/2015 - 16:01h

Este projeto ainda esta ativo ?


Ola Willian.

Não entendi o motivo da pergunta, mas sim, esta ativo sim. É um projeto GPL

Abraço

[9] Comentário enviado por lpriori em 09/06/2015 - 12:43h


[4] Comentário enviado por igor.ol13 em 25/01/2015 - 14:02h


Olá, boa tarde. Agradeço e parabenizo pelo projeto, é muito bom ver brasileiros cada vez mais criando novos projetos...

Aparentemente tudo funcionou perfeitamente, exceto uma coisa: não envia emails para servidores externos, o roundcube sempre dá a mensagem "Erro SMTP (550): Falha ao adicionar o destinatário
"email@yahoo.com" (Relay denied)."

O que eu posso fazer pra corrigir o problema?


Desculpe a demora.

Mas o que ocorre ai é que você precisa ativar o Relay para as conexões para sua rede interna ou conexões autenticadas.

'Relay' na verdade é o ato do servidor de email repassar um email para fora quando um destinatário for externo.
Você deve dar relay APENAS para conexões autenticadas ou alguns IPs de sua rede interna ou ips confiáveis.

No selor.conf, você encontra a opção Auth_relay que deve estar setada para 1 e então o Selor vai dar Relay pra conexões autenticadas.

Mas me parece que no seu caso ai você esteja querendo dar Relay para sua rede interna.
No arquivo rules_connection, mande dar Relay para sua rede.

Digamos que sua rede interna ai seja: 10.10.10.0/24, coloque a seguinte linha no rules_connection:
Ip? "10.10.10.0/24" Relay!

Não é preciso reiniciar o Selor.

De uma olhada no help do site:
http://www.mtaselor.com.br/?conteudo=11#Relay

Abraço

[10] Comentário enviado por mrbirth em 10/06/2015 - 08:58h


Bom dia Lucas, legal rapaz conseguir acertar o smtp exatamente o exim4 estava ativo, muito obrigado!! Agora preciso acertar o dovecot no teste na 110 aparece a seguinte msg "-ERR Disconnected: Auth process broken", poderia me ajudar novamente? Obrigado mesmo!! Abs.

[11] Comentário enviado por lpriori em 10/06/2015 - 12:17h

Fala mrbirth,

Você deve ter pulado algum ponto do tutorial na parte do Dovecot, mas para descobrir o motivo, teria que olhar o /var/log/maillog que é onde o Dovecot anota mensagens de erros.

Se quiser, me mande por mensagem direta o que aparece no /var/log/maillog relacionado ao Dovecot ou se quiser, mesmo não sendo relacionado diretamente ao Selor, pode postar o erro la no Forum (http://www.mtaselor.com.br/forum)

Abraço

[12] Comentário enviado por mrbirth em 10/06/2015 - 14:34h


[11] Comentário enviado por lpriori em 10/06/2015 - 12:17h

Fala mrbirth,

Você deve ter pulado algum ponto do tutorial na parte do Dovecot, mas para descobrir o motivo, teria que olhar o /var/log/maillog que é onde o Dovecot anota mensagens de erros.

Se quiser, me mande por mensagem direta o que aparece no /var/log/maillog relacionado ao Dovecot ou se quiser, mesmo não sendo relacionado diretamente ao Selor, pode postar o erro la no Forum (http://www.mtaselor.com.br/forum)

Abraço


Obrigadão Lucas, olha o erro:
Jun 10 14:36:43 mail dovecot: auth: Fatal: sql /usr/local/etc/dovecot/dovecot-sql.conf: Error in configuration file /usr/local/etc/dovecot/dovecot-sql.conf line 1: Unknown setting: ver
Jun 10 14:36:43 mail dovecot: master: Error: service(auth): command startup failed, throttling for 4 secs
Jun 10 14:36:43 mail dovecot: pop3-login: Disconnected: Auth process broken (disconnected before auth was ready, waited 0 secs): user=<>, rip=::1, lip=::1, secured, session=<FhWCUS0YLQAAAAAAAAAAAAAAAAAAAAAB>

Achei o problema copiei o script errado, é muita correria sempre passa algo, ja corrigir, vou testar. Valeu novamente!!


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts