Procurei uma solução para servidor de email que contivesse domínios virtuais, quota, um gerenciador web, um webmail e mensagem automática de férias. Acabei encontrando e efetuando a implementação e como ela está bem estável, resolvi compartilhá-la com todos vocês.
Procurei uma solução para servidor de email que contivesse domínios virtuais, quota, um gerenciador web, um webmail e mensagem automática de férias.
Acabei encontrando e efetuando a implementação e como ela está bem estável, resolvi compartilhá-la com todos vocês. Não ficou tão simples como eu esperava, mas funciona e está bem estável, ainda mais com o gerenciamento WEB pelo postfixadmin. Com isso qualquer usuário pode gerenciar contas de emails domínios e os avisos de férias.
Procurei uma relação entre múltiplos domínios, pois geralmente não temos somente um domínio, com isso precisamos de uma solução com suporte a múltiplos domínios ou domínios virtuais, que é o que vai ser implementado aqui neste artigo.
Estarei mostrando também a configuração do Postfix com o suporte ao MySQL, a configuração do Courier com POP3 e IMAP.
Estarei também mostrando a instalação e configuração do MailScanner, uma ferramenta muito boa para a análise de spam e vírus.
O webmail que estarei utilizando será roundcubemail, um webmail com um visual muito bom, bem dinâmico e com a visualização de cota do usuário.
[3] Comentário enviado por renatomartins em 16/09/2010 - 20:52h
Douglas uma outra boa opção tb é o sceo ele faz tudo isso que voce procurava e um pouco mais, devido uma linguagem interna propria bem simples que lhe ajuda a programar e deixar o servidor da maneira que voce quiser, lhe dando muitas alternativas na hora de executar tarrefas administrativas cm muita facilidade.
fica a dica que precisar de um mta bem flexivel use o sceo www.sceo.com.br
suporte dominio e virtuais em mysql ou arquivo texto
quota
quota de envio
ant-virus
greylist
spf
spamassassin
scripts
autoresonder
monitoramento
Pois sao nesses repositorios que ja temos o postfix com um patch para o suporte a cotas senao tem que baixar o postfix baixar o patch e recompilar tudo.
[11] Comentário enviado por kleison paiva em 22/09/2010 - 15:27h
olá;
ótimo tutorial ! mas estou seguindo ele aqui para configurar meu servidor, mas estou tendo problemas ao logar no postfix.admin. Fiz as configurações exatamente como no exemplo, mas quando digito o usuário = mail e a senha = senha, aparece a seguinte mensagem :
DEBUG iNFORMATION:
Invalid query: Table 'mail.admin' doesn't exist
Please check the documentation and website for more information.
[12] Comentário enviado por douglas_dksh em 27/09/2010 - 10:51h
bom dia.
cara pelo erro tem algo de errado na tabela aonde estão cadastrados os usuários que podem administrar o seu postfixadmin.
# mysql -u root -p
myql> use mail;
mysql> select username,password, active from admin;
+---------------------------+------------------------------------+--------+
| username | password | active |
+---------------------------+------------------------------------+--------+
| douglashx@gmail.com | $1$544dd7d5$agNG9KyUvGaZK61xff3Xb/ | 1 |
| suporte@dominio.com | $1$33e6e1a1$BhW44tZG72LNmOd4MgSST. | 1 |
+---------------------------+------------------------------------+--------+
2 rows in set (0.01 sec)
mysql>
note que no meu select tem 2 usuários cadastrados e ativos.
acesse o seu mysql e consulte essa tabela para verificar se tem os usuários.
verifique também se a base foi criada, cheque a sua configuração do postfixadmin e a configuração do mysql e verifique se foi criado a base para o postfixadmin.
pois se não foi criado a base para ele não vai ter de onde ele consultar.
[13] Comentário enviado por neonx em 15/10/2010 - 13:26h
muito bom o artigo... só que assim estou tendo um pequeno problema no postfixadmin o mesmo não está criando as contas de e-mail cria no banco tdo mas no sistema nao é criado o maildir deles tens alguma ideia do que pode ser feito?
[15] Comentário enviado por neonx em 15/10/2010 - 20:36h
a sacada é que já fiz toda a configuração e mesmo assim o mesmo continua não criando... na real estou me aventurando agora na questao do debian eu jah tenho outros servidores de e-mail funcionando (em slackware) desta mesma forma nos q eu fiz tbm tive problemas semelhantes que foi no postfixadmin antigo ao qual nao criava as contas.... nessa sua config o problema persiste???
[16] Comentário enviado por douglas_dksh em 16/10/2010 - 08:33h
Bom dia.
então caro colega, se voce conseguiu implementar a mesma solução usando o slackware, deveria conseguir resolver supostos problemas em relação a não criação de maildir.
Vamos a alguns pontos.
Você achou algum possivel erro nos arquivos de log ?
Não houve nem um arquivo digitado incorretamente ?
Todos os pacotes e dependencias foram instalados sem nem um erro ?
Houve alguma customização de kernel, que possa influênciar no processo de implementação do seu servidor ?
Eu fiz essa implementação várias vezes antes de postar aqui no VOL, pois o meu objetivo é somente ajudar o pessoal com alguns tipos de implementações em especifico.
E Desculpa de distribuições linux diferentes é somente pretesto para uma não resolução de problema e como você trabalha com o slackware qualquer tipo de problema com algum pacote de repositórios do debian você pode baixar o pacote da equipe de desenvolvimento e compilar ele e ativar as opções necessárias para a utilização em sua implementação.
[17] Comentário enviado por neonx em 16/10/2010 - 20:24h
olha nao esto utilizando pretexto de distribuicoes ou o q... o que eu quiz dizer eh que eu usei no slackware uma versao do postfixadmin ao qual tive que efetuar algumas modificações pois havia algum problema com relacao a criacao do maildir,eu usava tambem com maildrop ao qual faria tal criação, a minha suposta pergunta é se na sua versao ele cria automaticamente ou terei que fazer tais modificações no postfixadmin, outra coisa fiz exatamente o que está descrito no seu artigo que está muito bem explicado por sinal, também com relacao ao seus testes tenho plenas convicções de que seus testes foram satisfatorios e como já contribuo com o VOL a algum tempo não estou aqui para julgar mas apenas para contribuir com a galera livre...
[18] Comentário enviado por wishsometimes em 19/11/2010 - 18:11h
Olá amigos, achei muito bacana esse tutorial e está de parabéns. Resolvi testar o passo a passo e cheguei a concluir até o final porém quanto tento de qualquer forma logar com uma conta de e-mail utilizando pop ou imap me aparece a seguinte mensagem:
pop3d: authentication error: Input/output error
Será que tem algum detalhe que está faltando? Depois da instalação revisei todos os confs citados no tutorial, independente agradeço a oportunidade de aprimorar meus conhecimentos.
A instalacao do apache2-mod-php5 deu um erro, sera q não esta errado? nao eh libapache2-mod-php5? se for, eu instalei isso, mas mesmo assim continua nao acessando o site...
[22] Comentário enviado por removido em 25/12/2010 - 23:35h
Feliz Natal...obrigado pelo exemplo...mas acho que algo nao esta ok.....
olha a data que estou fazendo este exemplo.... 25-12-2010 23:35 - muita determinacao né ? kkkkk
o que esta me frustrando um pouco é que ja tentei alguns exemplos de instalacao do postfix e nao
consigo concluir com exito porque sempre tem algo que nao dá certo :-(
Fiz a risca tudo como mostra o exemplo.... mas nao abriu nada a linha abaixo?
[23] Comentário enviado por sirrengaw em 02/03/2011 - 12:06h
Olá Douglas, parabéns pelo Artigo, realmente está ajudando muito...
Estou com uma dúvida...
Aqui eu coloquei todos os hostnames voltados para mail.dominio.etc...
e ta tudo rodando belezinha, a única coisa que eu nao consegui ainda, é quando eu cadastro um
email, e vou no outlook e trago como conf de IMAP, ele só traz a pasta CAIXA DE ENTRADA e mais nada.
Tem alguma coisa que eu possa fazer pra ele trazer todas as pastas, como: Lixeira, Rascunho, Enviados?
As pastas normais que eu crio dentro do webmail ou pelo outlook se eu atualizo o imap, elas vem normal...
Tem alguma ideia do que pode ser esse erro?
Abraço
Wagner
[24] Comentário enviado por lberaldi em 12/07/2011 - 14:00h
Ola Douglas, gostei muito do tutorial, mas estou tendo um problema que imagino ser alguma besteira... quando desativo uma conta pelo postfixadmin ela trava para tudo exceto para enviar uma mensagem atraves do smtp por exemplo.
Ela trava o login do pop3, do imap, no webmail (que usa o imap) mas o smtp parece nao estar considerando o campo active do mysql quando faz a autenticacao.
Se puder me ajudar agradeço.
abs.
[25] Comentário enviado por dimago em 07/08/2011 - 23:27h
Boa noite Srs,
Douglas, parabéns pela iniciativa e pelo tutorial. Eu sempre usei dovecot e nunca usei com mysql. Resolvi sim experimentar esse tutorial, pois gostei muito dos players que voce usou e quero fica mais "amigo" do courier.
Bom, estou tendo alguns problemas, que já passei o dia procurando e nao encontrei. Quando tento acesso via webmail, ele me dá erro "Falha na Conexao com servidor IMAP" se faço via telnet, aparentemente NAO tenho problemas.
Configurei o outlook para recebimento, e com ele, pego esse erro no log:
Aug 7 23:21:20 smtp pop3d: Connection, ip=[::ffff:192.168.1.102]
Aug 7 23:21:20 smtp authdaemond: received auth request, service=pop3, authtype=login
Aug 7 23:21:20 smtp authdaemond: authmysql: trying this module
Aug 7 23:21:20 smtp authdaemond: SQL query: SELECT username, password, password, 109, 109, "/home/MAIL/vmail", CONCAT("/home/MAIL/vmail/",maildir), concat(quota,'S'), name, "" FROM mailbox WHERE username = 'diego@dominio.com.br'
Aug 7 23:21:20 smtp authdaemond: password matches successfully
Aug 7 23:21:20 smtp pop3d: LOGIN, user=diego@dominio.com.br, ip=[::ffff:192.168.1.102], port=[50317]
Aug 7 23:21:20 smtp pop3d: scancur opendir("cur"): No such file or directory
detalhe: este diretorio aqui: "maildir=/home/MAIL/vmail/dominio.com.br/diego@dominio.com.br/" nao estava criado, eu criei nao mai, pensando que poderia ser isso, mas sem sucesso.
O outlook fica solicitando o login.
Se voce puder me dar uma luz ou outro amigo do vol que possa ter passado pelo mesmo problema, eu agradeço.
[26] Comentário enviado por nildopd em 08/08/2011 - 00:31h
amigao DIMAGO, bom dia.
ja reparou como esta a configuraçao do SMTP IMAO ou POP3 ? pelo q eu vi no seu log agora
"Aug 7 23:21:20 smtp authdaemond: received auth request, service=<b>pop3</b>, authtype=login"
esta autenticando como pop3 e nao imap, verificar direitinho.... forte abraço e boa sorte.
em caso nao conseguir resolver, coloca o log completo tentarei te ajudar vlw... abraço
[27] Comentário enviado por dimago em 08/08/2011 - 08:39h
Oi nildo, bom dia!
a configuração que fiz no outlook foi pop3 realmente. Bom, sinceramente, nao consigo ver problema quanto a isso.
eu percebi que ele nao está criando sozinho o Maildir do usuário depois de criar ele no postfix admin e mandar um e-mail (nesse momento ele deveria criar a cx do usuário)
acredito que deva ter algo a ser feito no courier, mas como disse, sou crú no uso do courier..
[28] Comentário enviado por bctol em 16/08/2011 - 10:58h
Muito bom o artigo, tava precisando mesmo, vou testa-lo fim de semana. Só me da uma dica,
Tenho um cliente, que quer que somente os anexos e/ou imagens no e-mail enviados pelas contas da diretoria sejam visualizados, o demais e-mail da empresa, não poderia visualizar imagens no corpo ou no anexo da mensagens que não seja da diretoria. Tem como fazer isso?
[29] Comentário enviado por irgn em 24/05/2012 - 04:02h
Boas a todos,
eu estou a configurar o meu servidor de linux numa maquina de teste, já varios artigos e sempre me da o erro:
DEBUG INFORMATION:
Invalid query: Table 'mail.admin' doesn't exist.
Porque eu segui todos os passos correctamento.
Fiz assim e nada!
mysql> use mail;
Database changed
mysql> select username, password, active from admin;
ERROR 1146 (42S02): Table 'mail.admin' doesn't exist
mysql>
[31] Comentário enviado por odecam em 19/10/2012 - 13:22h
Olá Pessoal,
Efetuei a instalação no Debian Squeeze e tive o mesmo problema do amigo neonx, não estava subindo o Mailscanner e conseqüentemente não criava as maildir.
Para corrigir o problema basta inserir o parâmetro -U no arquivo /usr/sbin/MailScanner como abaixo:
#!/usr/bin/perl -I/usr/share/MailScanner/
Inserir o parâmetro no final
#!/usr/bin/perl -I/usr/share/MailScanner/ -U
Depois só reiniciar o serviço do mailscanner e ser feliz.
[32] Comentário enviado por andrew_ em 24/12/2012 - 02:52h
Boa Noite uma pergunta eu já tenho um server com algumas paginas hospedadas e o meu NameVirtualHost *:80 existe um jeito de usa usar o NameVirtualHost *:443 junto ou qual seria a forma correta dessa configuração?
os meus sites estão em home/<site>/<www>
e gostaria de usar para o e-mail as configurações /home/<site>/e-mail/
como ficaria as minhas configurações? assim ?
<VirtualHost *:443>
ServerAdmin webmaster@dominio.com.br
DocumentRoot "/home/site/postfixadmin"
ServerName mailadmin.dominio.com.br:443 (ou 80?)
ServerAlias mailadmin.dominio.com.br:443 ( ou 80 ?)
ErrorLog "/var/log/mailadmin.dominio.com.br-error_log"
CustomLog "/var/log/mailadmin.dominio.com.br-access_log" common
<Directory "/home/site/postfixadmin">
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order Allow,deny
Allow From All
</Directory>
SSLEngine on
#Abaixo uma linha unica
SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
SSLCertificateFile "/etc/ssl/apache/server.crt"
SSLCertificateKeyFile "/etc/ssl/apache/server.key"
<FilesMatch "\.(cgi|shtml|phtml|php)$">
SSLOptions +StdEnvVars
</FilesMatch>
BrowserMatch ".*MSIE.*" \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0
[34] Comentário enviado por andrew_ em 25/12/2012 - 17:48h
[33] Comentário enviado por douglashx em 24/12/2012 - 10:31h:
Cara você só vai precisar mudar o DocumentRoot
Não sei se o seu email já esta em /home/site/e-mail, caso não esteja mude ele para lá.
E no DocumentRoot mude de /home/<site>/<www> para
DocumentRoot "/home/site/e-mail"
Depois disso pode dar um reload no apache e testar :D
Eu acho que me esperecei errado, minha duvida e a seguinte eu tenho aluns sites da porta 80 quando eu mudo o NameVirtualHost *: de NameVirtualHost *:80 para NameVirtualHost *:443 e reinicio o apache meus sites não funcionam devidos a estarem na porta 80 qual seria a melhor forma de resolver isso?
[35] Comentário enviado por douglas_dksh em 25/12/2012 - 19:00h
cara da uma olhada no arquivo /etc/apache2/ports.conf
o arquivo tem que estar da seguinte forma caso seja debian :D
/etc/apache2/ports.conf
# If you just change the port or add more ports here, you will likely also
# have to change the VirtualHost statement in
# /etc/apache2/sites-enabled/000-default
# This is also true if you have upgraded from before 2.2.9-3 (i.e. from
# Debian etch). See /usr/share/doc/apache2.2-common/NEWS.Debian.gz and
# README.Debian.gz
<IfModule mod_ssl.c>
# If you add NameVirtualHost *:443 here, you will also have to change
# the VirtualHost statement in /etc/apache2/sites-available/default-ssl
# to <VirtualHost *:443>
# Server Name Indication for SSL named virtual hosts is currently not
# supported by MSIE on Windows XP.
Listen 443
</IfModule>
<IfModule mod_gnutls.c>
Listen 443
</IfModule>
Note que agora tem o NameVirtualHost *:443 assim você pode colocar vários virtualhosts trabalhando na porta 443.
Agora caso você queira que quando um usuário fizer uma requisição na porta 80 e ser direcionado para a porta 443 é só fazer como o exemplo abaixo.
im /etc/apache2/sites-available/postfixadmin
<VirtualHost *:80>
ServerName postfixadmin.douglas.wiki.br
Redirect / https://postfixadmin.douglas.wiki.br/
</VirtualHost>
<VirtualHost *:443>
ServerAdmin webmaster@douglas.wiki.br
ServerName postfixadmin.douglas.wiki.br
DocumentRoot "/var/www/postfixadmin"
<Directory "/var/www/postfixadmin">
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order Allow,deny
Allow From All
</Directory>
# ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
# <Directory "/usr/lib/cgi-bin">
# AllowOverride None
# Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
# Order allow,deny
# Allow from all
# </Directory>
<IfModule mod_php5.c>
AddType application/x-httpd-php .php
php_flag expose_php Off
php_flag allow_url_fopen Off
php_flag allow_url_include Off
php_flag magic_quotes_gpc Off
php_flag register_globals Off
php_flag disable_functions show_source
php_flag disable_functions system
php_flag disable_functions shell_exec
php_flag disable_functions passthru
php_flag disable_functions exec
php_flag disable_functions popen
php_flag disable_functions proc_open
php_flag disable_functions symlink
</IfModule>
CustomLog /var/log/apache2/postfixadmin.access.log combined
ErrorLog /var/log/apache2/postfixadmin.error.log
LogLevel warn
SSLEngine on
SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
SSLCertificateFile "/etc/ssl/apache/server.crt"
SSLCertificateKeyFile "/etc/ssl/apache/server.key"
<FilesMatch "\.(cgi|shtml|phtml|php)$">
SSLOptions +StdEnvVars
</FilesMatch>
BrowserMatch ".*MSIE.*" \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0
ServerSignature Off
</VirtualHost>
[36] Comentário enviado por andrew_ em 25/12/2012 - 23:30h
[35] Comentário enviado por douglashx em 25/12/2012 - 19:00h:
cara da uma olhada no arquivo /etc/apache2/ports.conf
o arquivo tem que estar da seguinte forma caso seja debian :D
/etc/apache2/ports.conf
# If you just change the port or add more ports here, you will likely also
# have to change the VirtualHost statement in
# /etc/apache2/sites-enabled/000-default
# This is also true if you have upgraded from before 2.2.9-3 (i.e. from
# Debian etch). See /usr/share/doc/apache2.2-common/NEWS.Debian.gz and
# README.Debian.gz
<IfModule mod_ssl.c>
# If you add NameVirtualHost *:443 here, you will also have to change
# the VirtualHost statement in /etc/apache2/sites-available/default-ssl
# to <VirtualHost *:443>
# Server Name Indication for SSL named virtual hosts is currently not
# supported by MSIE on Windows XP.
Listen 443
</IfModule>
<IfModule mod_gnutls.c>
Listen 443
</IfModule>
Note que agora tem o NameVirtualHost *:443 assim você pode colocar vários virtualhosts trabalhando na porta 443.
Agora caso você queira que quando um usuário fizer uma requisição na porta 80 e ser direcionado para a porta 443 é só fazer como o exemplo abaixo.
im /etc/apache2/sites-available/postfixadmin
<VirtualHost *:80>
ServerName postfixadmin.douglas.wiki.br
Redirect / https://postfixadmin.douglas.wiki.br/
</VirtualHost>
<VirtualHost *:443>
ServerAdmin webmaster@douglas.wiki.br
ServerName postfixadmin.douglas.wiki.br
DocumentRoot "/var/www/postfixadmin"
<Directory "/var/www/postfixadmin">
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order Allow,deny
Allow From All
</Directory>
# ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
# <Directory "/usr/lib/cgi-bin">
# AllowOverride None
# Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
# Order allow,deny
# Allow from all
# </Directory>
<IfModule mod_php5.c>
AddType application/x-httpd-php .php
php_flag expose_php Off
php_flag allow_url_fopen Off
php_flag allow_url_include Off
php_flag magic_quotes_gpc Off
php_flag register_globals Off
php_flag disable_functions show_source
php_flag disable_functions system
php_flag disable_functions shell_exec
php_flag disable_functions passthru
php_flag disable_functions exec
php_flag disable_functions popen
php_flag disable_functions proc_open
php_flag disable_functions symlink
</IfModule>
CustomLog /var/log/apache2/postfixadmin.access.log combined
ErrorLog /var/log/apache2/postfixadmin.error.log
LogLevel warn
SSLEngine on
SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
SSLCertificateFile "/etc/ssl/apache/server.crt"
SSLCertificateKeyFile "/etc/ssl/apache/server.key"
<FilesMatch "\.(cgi|shtml|phtml|php)$">
SSLOptions +StdEnvVars
</FilesMatch>
BrowserMatch ".*MSIE.*" \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0
ServerSignature Off
</VirtualHost>
Teste e avise.
Agora sim eu entendi como funciona, acredito que fiz a configuração me desculpe a ignorância mais não consigo acessa o mailadmin.dominio.com.br ele me da um aviso de certificado ssl eu clico em continuar assim mesmo ai ele da um erro da pagina não pode ser ? oque sera que eu fiz de errado.
[37] Comentário enviado por douglas_dksh em 26/12/2012 - 08:40h
Cara pelo jeito é o DocumentRoot que ta errado.
Da uma analisada nos arquivos de logs do seu virtualhost que vai ter algo, de preferencia de uma olhada no arquivo de erro, se for falta de algo ele vai acusar.
[38] Comentário enviado por andrew_ em 16/01/2013 - 11:47h
[37] Comentário enviado por douglashx em 26/12/2012 - 08:40h:
Cara pelo jeito é o DocumentRoot que ta errado.
Da uma analisada nos arquivos de logs do seu virtualhost que vai ter algo, de preferencia de uma olhada no arquivo de erro, se for falta de algo ele vai acusar.
E alguma coisa dentro das configuações do config.inc.php fiz uma configuração diferente de um outro tutorial e funcionou. obrigado pela ajuda! agora como já passei do postfix admin vou continuar a tutorial.
[41] Comentário enviado por vauires em 27/05/2015 - 20:23h
Alguém conseguiu colocar o servidor Postfix no ar, seguindo essa porcaria de artigo???
Se alguém conseguiu sem tre que fazer varias correções inclusive de digitação, responde aqui no VOL como conseguiu esse milagre.
Mais uma vez perdi tempo com esse lixo eletrônico, nem um pouco didático e muito mal elaborado.
Sugiro a equipe do VOL que comecem a classificar artigos desse tipo como lixo eletrônico.