Este artigo mostra passo-a-passo um método de instalação de um servidor de e-mail com suporte a SMTP, POP, IMAP, quota e armazenamento e controle de contas em MySQL. Veja como é possível obter um servidor de e-mail para domínios virtuais, utilizando Postfix, Courier IMAP, MYSQL e SASL.
Nesse tutorial vou mostrar como configurar um servidor de email
Postfix para trabalhar com MySQL + COURIER-IMAP + SASL +
DOMÍNIOS VIRTUAIS + QUOTA. Não sou nenhum expert em nenhum desses
programas, sou apenas um cara esforçado :-), mas o fato de estar
trabalhando diariamente com eles, fez com que eu adquirisse uma certa
experiência. Esse tutorial é uma compilação de vários tutoriais, dicas,
manuais e muita dor de cabeça que fui adquirindo até montar esse ambiente.
O meu problema começou quando me chamaram para trabalhar com servidores
de email que suportasse vários domínios na mesma máquina, onde cada domínio
representava uma empresa distinta, até ai eu sabia que o Postfix tinha esse
tipo de suporte. Optei pelo Postfix devido a sua facilidade (experiências
anteriores com Qmail :-) e compatibilidade com o "Sendmail". Seguindo os
manuais, consegui criar essa ambiente para 2 domínios e outros que
aparecessem.
Os meus problemas começaram quando, por exemplo, um diretor do dominio1
de nome José da Silva queria que o seu login fosse jose.silva,
até aí tudo bem. Só que um outro diretor do dominio2, também de nome
José da Silva queria que o seu login também fosse jose.silva.
Ferrou!!! Pois eu não poderia criar dois logins iguais e nem dava para
explicar que esse login já tinha sido reservado para o diretor de uma
outra empresa. Olha a encrenca!!!
Pedi ajuda nas listas de discussão e me sugeriram usar MySQL ou um indicador
no login; criando depois um alias para esse login. Bem, como eu não conhecia
patavinas de MySQL, optei pela segunda dica :-). Então criei o
jose.silva-dm2 e uma alias (jose.silva@dominio2.com.br =
jose.silva-dm2). Perfeito, resolveu o problema, só que tinha de explicar
para todo mundo por que o seu login tinha esse "-dm2" e o seu email, não.
Sem falar nos relatórios de logs que não ficaram nada bonitos.
O negócio começou a ficar feio, quando fechamos com um cliente que o seu
webmail mostrava o login da pessoa que estava logado no momento e lá
estava o "-dm*".
Os meus problemas seriam resolvidos se eu pudesse criar o login já com o
domínio, exemplo: jose.silva@dominio1.com.br. E não é que da!!
O Linux aceita. Só que quando esse usuário envia uma mensagem pelo
Postfix, o seu email sai como
"jose.silva@dominio1.com.br@dominio1.com.br", bem! Não preciso dizer mais
nada :-)
Alguns dias antes de pedir as contas da empresa :-), resolvi pesquisar
sobre o Postfix com MySQL e o que lhes apresento agora, é o resultado da
minha pesquisa. Há! Ainda continuo na empresa :-)
[1] Comentário enviado por fabio em 05/09/2003 - 09:38h
Muito bom este artigo! Na minha opinião a adoção de servidores de e-mail com contas de usuários armazenados em MySQL é essencial para empresas de médio a grande porte.
Com usuários em banco de dados você passa a oferecer uma fácil integração com sistemas de gestão, perde o limite de 65 mil usuários do sistema operacional, tem maior organização no servidor, etc.
Legal mesmo! No meu caso uso Exim com MySQL, mas o Postfix também é muito bem falado.
[3] Comentário enviado por dinho_rock em 06/09/2003 - 11:25h
Parabéns Romulo.
A muito tempo estava querendo saber como fazia algo parecido. Os e-mails eu estava criando tudo como email-dominio, e ele o cliente tinha que escrever isso na conta pop, que era uma chateação.
Parabéns pelo artigo, agora vou ver se tiro algum dia para transformar os e-mails da minha empresa para assim.
[5] Comentário enviado por fabio em 06/09/2003 - 20:45h
Daniel, o IMAP não depende do servidor MTA e sim do servidor POP. Se você optar por Courier IMAP ele não vai nem querer saber qual MTA você está utilizando, seja Postfix, Sendmail, Exim e sim onde estão as mensagens dos usuários e quais os campos de autenticação na tabela, coisas que já estão bem explicadas por aqui :)
[7] Comentário enviado por msmaximo em 08/09/2003 - 17:21h
************ FALTA DE ÉTICA *******************
Esse tutorial NÃO PERTENCE ao senhor Rômulo Banhe
Fui alertado por uma amigo, sobre o ocorrido o que me deixou muito desapontado com o comportamento de alguns membros da comunidade.
Não tenho nada contra, que esse tutorial circule pela internet. Pois o meu intuito, foi que ele alcança-se as pessoas que pudessem a vir tirar algum benefício dele.
O que não contava, era que pessoas SEM escrúpulo, o tomassem como seu não levando em consideração o trabalho do autor original.
É ainda PIOR, o fato de não estar completo. Sendo que o Senhor Rômulo Banhe não teve nem a capacidade de copia-lo.
Mas caso queiram ver o tutorial completo, acessem:
[8] Comentário enviado por fabio em 09/09/2003 - 10:19h
Olá Marco,
Infelizmente em alguns casos não tenho como perceber que um artigo é de terceiros e só descobrimos quando o autor original se identifica, como é o seu caso.
Logo, nos desculpamos pelo transtorno e gostaríamos de saber o que você prefere:
1. que o artigo seja removido de nosso banco de dados?
2. que o artigo permaneça, porém com os devidos direitos autorais dedicados à você?
[9] Comentário enviado por msmaximo em 09/09/2003 - 13:40h
Olá Fabio,
li seu artigo e sei que você não possui nenhuma culpa...
Como eu havia comentado, eu tenho interesse que todos possam tirar algum proveito do meu tutorial, desde que, permaneçam os direitos autorais.
Respondendo a sua pergunta. Eu opto pela a segunda alternativa, e sugiro que seja completado a parte que falta usando o conteúdo do link que forneci.
Também informo para aos interessados, que estou em fase de teste para uma atualização desse tutorial, acrescentando algumas novas funcionalidades.
Só que dessa vez, espero que seja eu, que possa enviar o tutorial ao site :-)
Atenciosamente,
Marco A. S. Máximo
marco.maximo@pwo.com.br
[13] Comentário enviado por ezdn em 19/09/2004 - 15:10h
òtimo artigo eu preciso faze algo semelhante e este artigo é uma mao
na roda vai me ajudar muito
vlw msmaximo eu adorei este teu artigo vai me ajudar bastate té mais .
[19] Comentário enviado por hgdanilo em 09/05/2005 - 18:31h
Olá,
Eu estou precisando de uma ajuda sua, eu estou tentando instalar em casa o Postfix com o Courier-imap, tenho instalado o conectiva 9, mas quando eu passo o comando ./configure para iniciar a instalação do Courier ele dá a mensagem de erro abaixo:
configure: WARNING: === Courier authentication library not found.
configure: WARNING: === You need to download and install
configure: WARNING: === http://www.courier-mta.org/download.php#authlib first.
configure: WARNING: === If courier-authlib is installed in a non-default
configure: WARNING: === directory, set the COURIERAUTHCONFIG environment
configure: WARNING: === variable to the full path to the courierauthconfig
configure: WARNING: === binary and rerun this configure script.
configure: WARNING:
configure: error: courierauthconfig not found
Você sabe como eu devo fazer para instalar esse authlib?
[23] Comentário enviado por juliopimentel em 16/03/2006 - 20:24h
Acompanhei o ocorrido e achei lamentavél o ato praticado pelo Sr. Rômulo, quero deixar aqui o meu repúdio a este tipo de ato.
Quanto a dúvida do Sr. Buzaneli quero informar que em breve estarei postando aqui uma pequena modificação do tutorial do Marco Maximo, voltado exatamento para o Conectiva Linux 10. Com os devidos créditos ao autor do tutorial é claro, que por sinal foi competentissimo na sua criação.
Obrigado Marco !!! Seu tutorial me foi muito util!
[25] Comentário enviado por penrral em 13/04/2006 - 00:47h
Ola.. uma pequena dica pra os usuarios do OpenBSD.. o Courier-IMAP contém algumas pequenas diferença, deste localização dos arquivos a maneira como ele deve ser inicializado.
Para os interessados de uma olhada neste link http://dantams.sdf-eu.org/guides/obsd_courier_imap.html
[30] Comentário enviado por snails em 24/08/2006 - 20:02h
Kra...to lendo, relendo e reelendo esse tuto.....
Primeiramente...td bem q num eh legal fazer plagio de uma coisa alheia e sai pela net falando que é sua...mas mew...o proprio autor falo q a itensao do tuto foi passada pelo Romulo, que é o conhecimento d uma pessoa para otra....intam, o erro aki foi num ter falado q o tuto original era d FULANO....mas msm assim...sendo d um ou otro ta muito bom.....
Agora o seguinte....tava vendo as regras no BD, e as configurações no Postfix....e uma coisa que num entendi...pode ser bestera, como tbm pode num ser.....na Quota de disco, determinada no BD é de 10 Mb, e no arquivo main.cf tbm....mas e se eu tiver uma conta no meu servidor que tenha de ter 20 MB ???????
Ou se ao inves de um dominio só, eu tiver uns 50 dominios e todos com quotas de virtualbox diferentes ??????
Bom, fica aew a ideia, ou ate mesmo um ponto para atualizar esse tuto...como montar o mesmo servidor, mas para varios dominios...que acho que num foi focado essa ideia....
[35] Comentário enviado por rodrigoncar em 26/12/2006 - 13:14h
e ae pessoal...
Preciso retirar a configuração no servidor pop, para q ele não verifique a criptografia da senha (ou seja texto puro), pois instalei um slack e nele o sasl não aceita a criptografia, deixando como texto puro a msg sai, mas não recebe pois o pop está configurado para a criptografia...
Alguém pode me ajudar????
Abraços
Rodrigo N Carneiro
[36] Comentário enviado por psantos02 em 20/01/2007 - 22:33h
AJUDA....
Tenho instalado o Postfix e a funcionar, instalei agora o courier-imap e pop3.
Faço telnet à porta 25 dentro do SUSE 10.1 e fora (winxp) e não faço telnet às portas 110 e 143. Executando o netstat -lt todas estas portas estão à escuta.
o telnet funciona tanto por ip como por nome.
O que poderá estar a faltar?
[38] Comentário enviado por fernandocesario em 07/02/2007 - 19:57h
Ajuda,
Estou usando o artigo do colega para a instalacao Servidor de email com SMTP, POP, IMAP, quota e MySQL no conectiva 10 e quando dou o comando ./configure --without-ipv6 --enable-workarounds-for-imap-client-bugs ele me devolve o seguinte erro:
beta [/usr/local/src/courier-imap-4.1.2] > ./configure --without-ipv6 --enable-workarounds-for-imap-client-bugs
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking for gcc... gcc
checking for C compiler default output file name... configure: error: C compiler cannot create executables
[40] Comentário enviado por ifc0nfig em 04/04/2007 - 09:02h
Este artigo tá blz segui ele diretinho e funcionou blz, agora seguinte tem como eu cadastrar outro dominio nele. Por exemplo: quero que o dominiovelho.com.br fique na mesma maquina do dominionovo.com.br que já está cadastrado no server, e que todos os e-mails de todos os usuarios do dominiovelho.com.br envia para suas contas respectivas no dominionovo.com.br e que a saida de e-mail fosse com o user@dominionovo.com.br.
[43] Comentário enviado por removido em 03/09/2008 - 11:39h
Olá estou gostando muito do tutorial, esta sendo de grande ajuda para um leigo como eu em linux, porem quando eu digito qualquer comando depois de selecionar o banco de dados, meu terminal fika assim:
mysql>CREATE TABLE aliases ( alias varchar(255) NOT NULL default, rcpt varchar(255) default NULL, PRIMARY KEY (alias)) TYPE=MyISAM;
->
e não sai desse " -> " até que eu de um comando inválido, todos os comandos tipo "show tables" ele tbm faz isso, alguem sabe me dizer oque está acontecendo ???
[50] Comentário enviado por wellingtoncunha em 04/01/2011 - 16:51h
Ola Sr. Marcos
Eu acho que no seu tutorial vc se esqueceu ou omitiu sobre o courier-authlib ou na sua maquina jah tinha instalado
checking for courierauthconfig... no
configure: WARNING: === Courier authentication library not found.
configure: WARNING: === You need to download and install
configure: WARNING: === http://www.courier-mta.org/download.php#authlib first.
configure: WARNING: === If courier-authlib is installed in a non-default
configure: WARNING: === directory, set the COURIERAUTHCONFIG environment
configure: WARNING: === variable to the full path to the courierauthconfig
configure: WARNING: === binary and rerun this configure script.
configure: WARNING:
configure: error: courierauthconfig not found
pois apartir desse ponto ele pede essa lib ele nao encontrar e pede para ser instalado
vou configurar agora o courier-authlib depois posto se tiver problema
Mais valeu seu turorial me ajudou muito ele salvou minha vida aqui na empresa estava a alguns meses me batendo com isso.
Quanto a gelera que estar tendo problema tipo
CC $PATH algo do tipo tem que installar um compilador C (recomendo o GCC), e ver se ele esta no profile da distro (para Debian /etc/profile)
Espero ter contribuido, da mesma forma que contribuiram comigo
[52] Comentário enviado por crissbarbosa123 em 04/04/2014 - 15:25h
olá meu nome e Cristiane e eu estou fazendo um projeto final de curso(TÉCNICO EM REDES DE COMPUTADORES) e pretendo criar um servidor de email mas não faço ideia de onde começar .. me ajude por favor.. Obrigado pela atenção..
[53] Comentário enviado por esdrasconde em 03/10/2014 - 00:31h
Boa noite Marco,
Eu gostaria de te pedir uma ajuda se fosse possível. Eu instalei o servidor de email do Postfix no mesmo servidor que roda o Zabbix, e meu intuito era que quando o zabbix tivesse um alerta crítico mandasse um email automaticamente pro gmail que eu criei, no Zabbix já está tudo configurado corretamente pois tenho até um livro, porém no Postfix eu já olhei tutoriais, vídeos, mas não deu jeito.
No Zabbix consta como se tivesse enviado o email pro email cadastrado, mas não está enviando. Lá no Zabbix ele pede para colocar o nome do servidor SMTP, não sei qual nome colocar lá, gostaria também de uma ajuda caso você possa me dar, e como configurar no Postfix para ele mandar email pro gmail, se eu devo ter um domínio.. enfim.
[54] Comentário enviado por julianamoraes em 22/07/2016 - 11:05h
Pessoal, desculpa, sou novo no fórum, mas estava tendando configurar o meu e-mail profisssional para receber e enviar mensagens direto no gmail, vi um tutor nesse site http://gmailentrarlogin.net/ mas ainda assim não consegui. Deu uns erros parecidos com os comentários de alguns membros acima.
Alguém poderia me mostrar um tutor passo a passo para eu consegui?