Viva o Linux e o Software Livre Viva o Linux e o Software Livre Viva o Linux e o Software Livre
Home | Estatísticas | Membros | Fale Conosco   RSS Viva o Linux
    Artigos
    .Conf
    Dicas
    Equipe VOL
    FAQ
    Guia do KDE
    IRC
    Links
    Perguntas
    Screenshots
    Scripts
    Simulado
    Wallpapers
[1] usuários para
Papo Direto
 
A mitologia da imunidade a vírus no Linux
Instalando discador "vppp" para terminais leves
Ser livre, mas manter padrões
Entendendo os tipos de permissões
Gaim + Gaim Encryption - Bate-papo com segurança
Unreal Tournament 2003
 
kde+karamba
Por 4r13l
 
Live Bookmarks no Firefox
Eterm transparente, sem barra de rolagem e de menu
Dicas para o BitchX
PHP Debug
Novo canal de apoio ao Software Livre na Brasnet
Tar e split - Gerando backups e dividindo-os
Sincronizando, instalando programas em Palm via USB
Nova versão do KDE
 
 
[PHP] Galeria Brasil 2.1
[PHP] PHP Fotolog
[Shell-Script] Pass
[Python] Calculadora bastante simples.
[Shell-Script] Proc 1.0
 
Artigos
Home > Artigos > Linux > Correio Eletrônico > Visualização de artigo

Montando um servidor de e-mail completo com Postfix

msmaximo
28/12/2003

Este tutorial aborda a criação de um servidor de e-mail baseado em banco de dados MySQL, com suporte a cota de usuários, antispam, antivírus, webmail e tudo mais o que se pode imaginar.
Por: Marco A. S. Máximo [ Hits: 79719 ]
Conceito: 8.8    + quero dar nota ao artigo
Papel A4 Versão para impressora Indicar para um amigo
Instalando o MySQL e a base do Postfix

Estou utilizando o MySQL que vem junto com a distribuição, caso não esteja utilizando o Mandrake, instale os pacotes correspondentes a sua distribuição. Foram instalados os seguintes pacotes:

MySQL-common-4.0.11a-5mdk
MySQL-4.0.11a-5mdk
MySQL-client-4.0.11a-5mdk


No Mandrake, execute o comando "mysql_install_db" para criar o banco de dados:

# mysql_install_db

Depois da tabela mysql criada, inicie o serviço:

# service mysql start

Por default, a senha do ROOT para acesso ao MySQL está em branco. Vamos alterá-la para uma nova e desabilitar alguns ítens para aumentar a segurança do banco de dados.

OBS: Tecle Enter quando for perguntado sobre o password do ROOT, pois está em branco. Depois responda as perguntas conforme a sua preferência (normalmente YES para todas).

# mysql_secure_installation

All done! If you've completed all of the above steps, your MySQL installation should now be secure.

Thanks for using MySQL!


DICA: Por padrão no Mandrake, o log do MySQL está desabilitado. Esse recurso é muito útil para identificar alguns erros durante a instalação de aplicativos que fazem acesso ao banco. Para resolver esse problema, crie o arquivo /etc/my.cnf com o seguinte conteúdo:

[mysql.server]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock

[mysqladmin]
socket=/var/lib/mysql/mysql.sock

[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
language=/usr/share/mysql/portuguese/

log=/var/lib/mysql/mysqld.log

[mysql]
socket=/var/lib/mysql/mysql.sock

Crie o arquivo de log e mude a permissão:

# touch /var/lib/mysql/mysqld.log
# chown mysql:mysql /var/lib/mysql/mysqld.log


Reinicie o MySQL e teste:

# service mysql restart
# tail /var/lib/mysql/mysqld.log

Beleza! Vamos agora criar as tabelas para o POSTFIX. Crie um arquivo com o nome "postfix_mysq.db" com o seguinte conteúdo:

ATENÇÃO:
  • Substitua, no primeiro bloco, o valor "senha_do_postfix" pela senha do usuário do postfix.
  • Substitua, caso queira, o diretório onde ficaram as caixas postais dos usuários, no último bloco no campo home. No meu caso estou usando o diretório /postfix/.

# INICIO DO postfix_mysq.db =================
#
# Postfix / MySQL
#
# Cria o usuário e senha do Postfix e Maildrop para
# acesso ao banco


USE mysql
INSERT INTO user (Host, User, Password) VALUES ('localhost','postfix',password('xxxxx'));
INSERT INTO user (Host, User, Password) VALUES ('localhost','maildrop',password('xxxxx'));

INSERT INTO db (Host, Db, User, Select_priv) VALUES ('localhost','postfix','postfix','Y');
INSERT INTO db (Host, Db, User, Select_priv) VALUES ('localhost','postfix','maildrop','Y');

FLUSH PRIVILEGES;

#
# Cria o banco postfix


CREATE DATABASE postfix;



#
# Cria a estrutura da tabela alias


USE postfix;
CREATE TABLE alias (
   address varchar(255) NOT NULL default '',
   goto text NOT NULL,
   domain varchar(255) NOT NULL default '',
   create_date datetime NOT NULL default '0000-00-00 00:00:00',
   change_date datetime NOT NULL default '0000-00-00 00:00:00',
   active tinyint(4) NOT NULL default '1',
   PRIMARY KEY (address)
) TYPE=MyISAM COMMENT='Virtual Aliases - mysql_virtual_alias_maps';
                                                                                  
#
# Cria a estrutura da tabela domain


USE postfix;
CREATE TABLE domain (
   domain varchar(255) NOT NULL default '',
   description varchar(255) NOT NULL default '',
   transport varchar(255) NOT NULL default 'maildrop',
   create_date datetime NOT NULL default '0000-00-00 00:00:00',
   change_date datetime NOT NULL default '0000-00-00 00:00:00',
   active tinyint(4) NOT NULL default '1',
   PRIMARY KEY (domain)
) TYPE=MyISAM COMMENT='Virtual Domains - mysql_virtual_domains_maps';
                                                

#
# Cria a estrutura da tabela mailbox


USE postfix;
CREATE TABLE mailbox (
   username varchar(255) NOT NULL default '',
   password varchar(255) NOT NULL default '',
   name varchar(255) NOT NULL default '',
   home char(255) default '/postfix/',
   maildir varchar(255) NOT NULL default '',
   quota varchar(255) NOT NULL default '10000000S',
   domain varchar(255) NOT NULL default '',
   create_date datetime NOT NULL default '0000-00-00 00:00:00',
   change_date datetime NOT NULL default '0000-00-00 00:00:00',
   active tinyint(4) NOT NULL default '1',
   passwd_expire enum('N','Y') default 'Y',
   uid int(10) unsigned default '108',
   gid int(10) unsigned default '108',
   PRIMARY KEY (username)
) TYPE=MyISAM COMMENT='Virtual Mailboxes - mysql_virtual_mailbox_maps';


#
# Cria o usuário de administração do PostfixAdmin


USE mysql
INSERT INTO user (Host, User, Password) VALUES ('localhost','postfixadmin',password('xxxxx'));

INSERT INTO db (Host, Db, User, Select_priv, Insert_priv, Update_priv, Delete_priv) VALUES ('localhost', 'postfix', 'postfixadmin', 'Y', 'Y', 'Y', 'Y');
FLUSH PRIVILEGES;  
                              
                                                            
#
# Cria a tabela de administração do PostfixAdmin
#
USE postfix;
CREATE TABLE admin (
   username varchar(255) NOT NULL default '',
   password varchar(255) NOT NULL default '',
   domain varchar(255) NOT NULL default '',
   create_date datetime NOT NULL default '0000-00-00 00:00:00',
   change_date datetime NOT NULL default '0000-00-00 00:00:00',
   active tinyint(4) NOT NULL default '1',
   PRIMARY KEY (username)
) TYPE=MyISAM COMMENT='Virtual Admins - Store Virtual Domain Admins';

Depois do arquivo criado, execute o comando:

# mysql -psenha_do_root < postfix_mysq.db

O banco e as tabelas, bem como o usuário do postfix serão criados. Vamos testar o acesso do usuário postfix:

# mysql -D postfix -u postfix -psenha_do_postfix

mysql> show tables;
+-------------------+
| Tables_in_postfix |
+-------------------+
| admin             |
| alias             |
| domain            |
| mailbox           |
+-------------------+
mysql> desc alias;
+-------------+--------------+------+-----+---------------------+-------+
| Field       | Type         | Null | Key | Default             | Extra |
+-------------+--------------+------+-----+---------------------+-------+
| address     | varchar(255) |      | PRI |                     |       |
| goto        | text         |      |     |                     |       |
| domain      | varchar(255) |      |     |                     |       |
| create_date | datetime     |      |     | 0000-00-00 00:00:00 |       |
| change_date | datetime     |      |     | 0000-00-00 00:00:00 |       |
| active      | tinyint(4)   |      |     | 1                   |       |
+-------------+--------------+------+-----+---------------------+-------+

Descrição: Essa tabela é onde serão criados os redirecionamentos (ALIAS).

address: É o endereço do novo redirecionamento (ALIAS)
goto: É o destinatário(os) do redirecionamento.

Exemplo:

address => goto
postmaster@dominio.com.br > marco@dominio.com.br
postmaster@dominio2.com.br => marco@dominio2.com.br, marcelo@dominio1.com.br

mysql> desc domain;
+-------------+--------------+------+-----+---------------------+-------+
| Field       | Type         | Null | Key | Default             | Extra |
+-------------+--------------+------+-----+---------------------+-------+
| domain      | varchar(255) |      | PRI |                     |       |
| description | varchar(255) |      |     |                     |       |
| transport   | varchar(128) |      |     | maildrop            |       |
| create_date | datetime     |      |     | 0000-00-00 00:00:00 |       |
| change_date | datetime     |      |     | 0000-00-00 00:00:00 |       |
| active      | tinyint(4)   |      |     | 1                   |       |
+-------------+--------------+------+-----+---------------------+-------+

Descrição: Essa tabela é aonde você cria e indica o domínio.

transport: Nesse campo, você indica se o transporte será "local", para usuários do sistema ou "maildrop", para usuários virtuais. O padrão é "maildrop".

mysql> desc mailbox;
+---------------+------------------+------+-----+---------------------+-------+
| Field         | Type             | Null | Key | Default             | Extra |
+---------------+------------------+------+-----+---------------------+-------+
| username      | varchar(255)     |      | PRI |                     |       |
| password      | varchar(255)     |      |     |                     |       |
| name          | varchar(255)     |      |     |                     |       |
| home          | varchar(255)     | YES  |     | /postfix/           |       |
| maildir       | varchar(255)     |      |     |                     |       |
| quota         | varchar(255)     |      |     |10000000S            |       |
| domain        | varchar(255)     |      |     |                     |       |
| create_date   | datetime         |      |     | 0000-00-00 00:00:00 |       |
| change_date   | datetime         |      |     | 0000-00-00 00:00:00 |       |
| active        | tinyint(4)       |      |     | 1                   |       |
| uid           | int(10) unsigned | YES  |     | 108                 |       |
| gid           | int(10) unsigned | YES  |     | 108                 |       |
| passwd_expire | enum('N','Y')    | YES  |     | Y                   |       |
+---------------+------------------+------+-----+---------------------+-------+

Descrição: É a principal tabela, onde serão criados os usuários e suas configurações como senha, diretório, cota de disco, etc.
  • username: É o login do usuário. Exemplo: marco.maximo@dominio.com.br
  • password: É a senha do usuário, você pode usar dois tipos de senhas: crypt() ou clear text. Esse último é interessante caso você vá usar alguma autenticação que use Cram-MD5. Eu uso o crypt, acho mais ético.
  • name: O nome completo do usuário.
  • home: É o diretório aonde será criado as caixas postais dos usuários. Normalmente é usado o /home, mas no meu caso usarei o diretório /postfix/.

    Usar um outro diretório no lugar do /home/ é recomendável, pois o dono desse diretório deve ser o usuário maildrop. Isso pode causar um problema caso você já tenha usuários criados nesse diretório.

    Um outro motivo é o programa MSEC que vem no Mandrake. Ele constantemente faz uma checagem nas permissões dos diretórios contido seu banco de dados, conforme o nível de segurança escolhido e muitas vezes, tive a permissão do diretório /HOME alterada para o original pelo programa. Uma opção para resolver esse problema é desabilitar o MSEC mas, segurança nunca é demais. :-)

  • maildir: É o Maildir do usuário, aonde os email serão armazenados.
  • quota: É a cota de disco do usuário, o default é 10MB. Note o "S" no final do valor, ele é necessário para o MAILDROP criar o arquivo "maildirsize" no diretório do usuário. Esse arquivo contém um cálculo da cota atual do usuário.
  • domain: Domínio de qual faz parte o usuário.
  • active: Esse campo serve para habilitar(1) ou desabilitar(0) a conta do usuário, é usado pelo courier-imap para permitir o login do usuário. Serve também para maltratar um pouco dos seus desafetos dentro da empresa :-)
  • uid: virtual uid (use o do usuário maildrop).
  • gid: virtual gid (use o do usuário maildrop).
  • passwd_expire: Esse campo é utilizado por alguns programas para forçar a mudança de senha por parte do usuário.


mysql> desc admin;
+-------------+--------------+------+-----+---------------------+-------+
| Field       | Type         | Null | Key | Default             | Extra |
+-------------+--------------+------+-----+---------------------+-------+
| username    | varchar(255) |      | PRI |                     |       |
| password    | varchar(255) |      |     |                     |       |
| domain      | varchar(255) |      |     |                     |       |
| create_date | datetime     |      |     | 0000-00-00 00:00:00 |       |
| change_date | datetime     |      |     | 0000-00-00 00:00:00 |       |
| active      | tinyint(4)   |      |     | 1                   |       |
+-------------+--------------+------+-----+---------------------+-------+

Descrição: Essa tabela é usado pelo PostfixAdmin para criar os administradores que irão ser responsáveis pela administração das contas dos respectivos domínios.

Legal! O nosso banco de email está criado. O que temos que fazer, é "ensinar" ao Postfix a conectar-se no MySQL e pegar os dados que ele precisa sobre o usuário, mas antes, vamos configurar o Courier-IMAP.

10 - Instalando o Courier-IMAP
Como iremos utilizar o Postfix com suporte a Maildir ao estilo Qmail, então o Courier-IMAP é o programa que permite o acesso a esse tipo de caixa postal. Ele também vai ser responsável por validar os logins dos usuários e permitir que eles baixem as suas mensagens por POP3 ou acesso por IMAP. Tudo isso, lendo informações da tabela "mailbox" no MySQL.

Instalando


### RPMS
Instale os pacotes:

# urpmi maildirmake++
# urpmi courier-imap
# urpmi courier-imap-mysql
# urpmi courier-imap-pop


### SOURCE

Dependências:
  • libgdbm2-devel-1.8.0-19mdk.i586.rpm
  • libmysql12-devel-4.0.11a-5mdk.i586.rpm
  • libopenssl0.9.7-devel-0.9.7a-1mdk.i586.rpm
  • pam-devel-0.75-30mdk.i586.rpm
  • libfam0-devel-2.6.9-5mdk.i586.rpm
Faça o download do pacote em:

# tar -jxvf courier-imap-2.2.0.tar.bz2 -C /source/

Para compilar o courier você precisa estar como usuário comum, se você descompactou como root, mude as permissões do diretório para seu usuário, no meu caso "marco":

# chown marco:marco /source/courier-imap-2.2.0/ -R
# cd /source/courier-imap-2.1.2/
# su marco
$ ./configure --prefix=/usr --sysconfdir=/etc/courier/ --libexecdir=/usr/lib/courier
$ make
$ exit
# checkinstall -R


Done. The new package has been installed and saved to
/usr/src/RPM/RPMS/i386/courier-imap-2.2.0-1.i386.rpm
 
You can remove it from your system anytime using:
 
      rpm -e courier-imap-2.2.0-1


Configurando


# cd /etc/courier
# cp imapd.dist imapd
# cp imapd-ssl.dist imapd-ssl
# cp pop3d.dist pop3d
# cp pop3d-ssl.dist pop3d-ssl
# cp authmysqlrc.dist authmysqlrc
# cp authdaemonrc.dist authdaemonrc
# cp quotawarnmsg.example quotawarnmsg
# mkdir dist
# mv *.dist dist/


Isso criará os seguintes arquivos de configuração do courier: imapd, pop3d, authmysqlrc, authdaemonrc, imapd-ssl, pop3d-ssl. Esses 2 últimos para conexões seguras.

DICA: Acho interessante manter os arquivos *.dist, isso irá ajudar caso você queira lembrar das configurações default do courier.

As configurações default dos arquivos imapd e pop3d, ao meu ver, já são boas. Altere caso você sinta necessidade.

Edite o /etc/courier/authmysqlrc. Esse arquivo é responsável pelas configurações do Courier para que ele conecte no MySQL e autentique os usuários. Edite-o conforme as suas configurações. Exemplo:

# vim /etc/courier/authmysqlrc

MYSQL_SERVER            localhost
MYSQL_USERNAME          postfix
MYSQL_PASSWORD          xxxxx
MYSQL_SOCKET            /var/lib/mysql/mysql.sock
MYSQL_PORT              3306
MYSQL_OPT               0
MYSQL_DATABASE          postfix
MYSQL_USER_TABLE        mailbox
MYSQL_CRYPT_PWFIELD     password
MYSQL_UID_FIELD         uid
MYSQL_GID_FIELD         gid
MYSQL_LOGIN_FIELD       username
MYSQL_HOME_FIELD        home
MYSQL_NAME_FIELD        name
MYSQL_MAILDIR_FIELD     maildir
MYSQL_QUOTA_FIELD       quota
MYSQL_WHERE_CLAUSE      active=1

ATENÇÃO: Não deixe espaços ou tab no começo do nome. Exemplo:

MYSQL_MAILDIR_FIELD     maildir - (Beleza!)
MYSQL_QUOTA_FIELD      quota  - (Errado)

Isso causa erro para o Maildrop.

Inicie o serviço:

RPMS

# service courier-imap start

SOURCE

# cd /etc/init.d/
# ln -s /usr/lib/courier/imapd.rc imapd
# ln -s /usr/lib/courier/pop3d.rc pop3d


Coloque as seguintes linhas no arquivo /etc/rc.d/rc.local para que os serviços IMAP e POP3 sejam iniciados automaticamente durante a inicialização da máquina.

/etc/init.d/imapd start
/etc/init.d/pop3d start

Achei cômodo criar 2 links simbólicos para eles dentro dos diretórios onde estão os meus scripts de inicialização. Para iniciá-los a partir desse diretório é só digitar:

# ./imapd start
# ./pop3d start


Teste se os serviços IMAP e POP iniciaram sem problema, vamos rodar os seguintes comandos:

# ps ax

/usr/lib/courier/authlib/authdaemond.mysql start
/usr/lib/courier/authlib/authdaemond.mysql start
/usr/lib/courier/authlib/authdaemond.mysql start
/usr/lib/courier/couriertcpd -address=0 -stderrlogger
/usr/lib/courier/authlib/authdaemond.mysql start
/usr/lib/courier/authlib/authdaemond.mysql start
/usr/lib/courier/authlib/authdaemond.mysql start
/usr/lib/courier/courierlogger imapd
/usr/lib/courier/couriertcpd -address=0 -stderrlogger
/usr/lib/courier/courierlogger pop3d


Deve aparecer algo como isso. As linhas indicam que os serviços imap e pop3 subiram usando a autenticação pelo MySQL. Vamos checar se as portas dos serviços estão abertas e respondendo:

# netstat -a | less

tcp  0   0 *:mysql   *:*        OUÇA
tcp  0   0 *:pop3    *:*        OUÇA
tcp  0   0 *:imap    *:*        OUÇA

Teste do IMAP:

# telnet 0 143
Trying 0.0.0.0...
Connected to 0 (0.0.0.0).
Escape character is '^]'.
* OK [CAPABILITY IMAP4rev1 UIDPLUS CHILDREN NAMESPACE THREAD=ORDEREDSUBJECT THREAD=REFERENCES SORT QUOTA IDLE STARTTLS] Courier-IMAP ready. Copyright 1998-2003
Double Precision, Inc. See COPYING for distribution information.

0 logout

* BYE Courier-IMAP server shutting down
0 OK LOGOUT completed
Connection closed by foreign host.

Teste do POP3:

# telnet 0 110
Trying 0.0.0.0...
Connected to 0 (0.0.0.0).
Escape character is '^]'.
+OK Hello there.

quit
+OK Better luck next time.
Connection closed by foreign host.

Se aparecer isso, então esta ok.

Vamos agora instalar/configurar o Maildrop.

Navegação

   1. Introdução
   2. O que é novo
   3. O problema
   4. A solução
   5. Instalação do Mandrake 9.1
   6. Antes de começar
   7. Aplicativos utilizados
   8. Instalando o CheckInstall
   9. Instalando o MySQL e a base do Postfix
   10. Instalando o Maildrop
   11. Instalando o Postfix
   12. Cota de disco
   13. Instalando o SASL
   14. Instalando o PostfixAdmin
   15. Anti-vírus ClamAV
   16. Instalação do Amavis_NEW
   17. Configuração do Postfix com Amavis_NEW
   18. Instalando o Mail Vacation
   19. Webmail - Squirrelmail
   20. Migrando a database antiga
   21. Migrando a tabela aliases


Leitura recomendada

    Sylpheed - a GTK+ based, lightweight, and fast e-mail client
    Yahoo!Mail e Evolution contra o SPAM!
    Sendmail com antivírus e autenticação SMTP
    Qmail - Servidor de email em 20 minutos
    Configurando o SendMail




Comentários

Comentário enviado por andersonlinux em 30/12/2003:

Adorei, muito bem explicado.

Comentário enviado por snap em 02/01/2004:

Pode ser bem explicado ... mas nao vale a pena ... emails locais nao funcionam ... e sasl externo tb nao ...

Comentário enviado por msmaximo em 02/01/2004:

Hum!!!
Infelizmente caro SNAP, você esta completamente enganado!
Ou você não se deu o trabalho de ler o material, ou desconhece completamente o assunto sobre MTA.
Retificando o seu comentário:
- As contas locais funcionam perfeitamente (inclusive com o SASL)
- O SASL funciona externamente, sim. Ora, qual a vantagem da autenticação SASL se ela não funcionasse externamente?!?! :-)
Agora, se vale a pena ou não isso depende da necessidade de cada pessoa.


Comentário enviado por snap em 02/01/2004:

local_recipient_maps = mysql:/etc/postfix/mysql_virtual_mailbox_maps.cf



Comentário enviado por destbr em 09/01/2004:

olá,
comentarios sao bem vindos, reclamacoes ja é outra historia.
se vc nao gostou da explicacao, simplesmente ignore-a.

parabens msmaximo, pessoas como vc, sim, contribuem com a comunidade, afinal, vc poderia simplesmente deixar de compartilhar informacoes que nos sao tao importantes; e se deu o trabalho de explicar tudo passo a passo.

agradeço mesmo.

abraços!!

:)

Comentário enviado por abreo27 em 30/01/2004:

Gracias!!!!

Buenisimo el articulo, muy practico y util

Comentário enviado por augustoa em 09/02/2004:

Bom

Comentário enviado por pedro.hoffmann em 16/02/2004:

Parabens pelo tutorial. Muito bem feito, tive uns problemas no começo mas tudo bem, agora tá pegando blz.. quando eu entro na parte opções. e depois opções de visualizações... ele troca o theme.. e cada vez que eu atualizo.. ele fica trocando.. alguem sabe o pq?

Comentário enviado por cvs em 18/03/2004:

Cara, vou começar a colocar em pratica esse tutorial agora, vamos ver se eu vou conseguir colocar pra rodar! hehehehe

Comentário enviado por alorenco em 29/03/2004:

Amigos, EXCELENTE tutorial, um dos mais completos que achei em toda a net em português.
Como estou usando o RedHat 9 estou tendo problemas somente com o SASL que não autentica usuarios externos.. se alguém conseguiu resolver eu ficaria muito agradecido se compartilhasse a solução... um abraço a todos.

Comentário enviado por soraia morais em 26/04/2004:

So gostaria de saber se sempre que eu quiser ter um utilizador novo vou ter de o criar manualmente como criamos no exemplo explicito no manual, gostaria tambem de saber se o squirrel nao contem um sitio para registo, para os proprios utilizadores criarem os seus endereços de e-mail, porque no meu caso perciso de uma pagina de registo para os utlizadores e depois como posso ligar o registo que esta na base de dados ao squirrel para poder efectuar o login.

Comentário enviado por slex em 11/05/2004:

" comentarios sao bem vindos, reclamacoes ja é outra historia. "

que baboseira..... so' pode lamber o saco de quem escreveu? criticas construtivas nao sao bem vindas?

repare na frase do autor:
"Ou você não se deu o trabalho de ler o material, ou desconhece completamente o assunto sobre MTA. "

desculpem senhores... mas TUTORIAIS nao sao escritos para especialistas.

gostei do artigo, mas acho que ficou confuso, ou mal explicado a parte do maildrop.




Comentário enviado por jairof em 24/05/2004:

Estou aplicando este tutorial e estou com problemas para compilar o maildrop.
Maildrop:maildrop-1.6.3
MandrakeLinux 10
MYSQL:MySQL-4.0.18-1.1.100mdk

Erro na compilação da opção do Mysql
/configure: line 1: mysql_config: command not found
configure: error: Unable to run mysql_config
configure: error: /bin/sh './configure' failed for maildrop

Como eu resolvo isso?

Comentário enviado por guifreitas em 07/06/2004:

o mysql_config eh um sh q fica no /usr/bin/
nao sei pq, mas tem versoes do mysql nao vem com ele
mas pode pegar ele em http://debian.maniacs.com.br/mysql_config

Abracos!

Comentário enviado por abysmal em 14/06/2004:

Realmente muito bom parabéns pelo artigo...

Comentário enviado por sheep em 20/06/2004:

comentarios sao bem vindos, reclamacoes ja é outra historia. "

que baboseira..... so' pode lamber o saco de quem escreveu? criticas construtivas nao sao bem vindas?

repare na frase do autor:
"Ou você não se deu o trabalho de ler o material, ou desconhece completamente o assunto sobre MTA. "

desculpem senhores... mas TUTORIAIS nao sao escritos para especialistas.

gostei do artigo, mas acho que ficou confuso, ou mal explicado a parte do maildrop.



Comentário enviado por sheep em 20/06/2004:

Comentário enviado por augustoa em 09/02/2004:

Bom



Comentário enviado por sheep em 20/06/2004:

seu propósito, é mostrar como configurar um servidor de e-mail Postfix para trabalhar com vários domínios em uma mesma máquina, utilizando para isso, o MySQL.


Comentário enviado por vvega em 21/06/2004:

Alguem conhece uma boa apostila sobre MTAs ? Gostaria de conhecer mais a fundo a questao ...

Comentário enviado por goldeagle em 05/07/2004:


Estou instalando um server com Debian 3 seguindo este tutorial, e gostando muito dos resultados.

Mas tive problemas com a compilação do Maildrop, o erro que ocorreu foi este.

Erro na compilação da opção do Mysql
/configure: line 1: mysql_config: command not found
configure: error: Unable to run mysql_config
configure: error: /bin/sh './configure' failed for maildrop


A solução para o mesmo no Debian 3 - Testing, é instalar o pacote abaixo, este por sua vez contém o arquivo que falta.

libmysqlclient10-dev

[]s
Miguel (goldeagle)

Comentário enviado por goldeagle em 05/07/2004:


Eu estou instalando em um Debian 3 - Testing, e deu um erro de comando desconhecido.

maildrop-mysql

Como não tenho este comando instalado, alguém pode dar uma ajuda a respeito ? Sei que este comando existe para o Mandrake, pois achei o .rpm no Google/linux.

Outro problema que estou tendo, é que não consegui testar o meu server, desta linha do tutorial em diante, não consegui testar nada.

################
################

Testando o Maildrop:

Teste se o MAILDROP consegue enviar o email para a caixa postal dos usuários.

# cat /etc/lilo.conf | maildrop-mysql -d marco.maximo@dominio1.com.br




Comentário enviado por hwoarang em 08/07/2004:

Bom.. estou tentando colocar este tutorial em prática. Até agora está indo tudo blz (muito bom o tutorial)...
Mas como o amigo da msg anterior, estou parado no comando:

# cat /etc/lilo.conf | maildrop-mysql -d marco.maximo@dominio1.com.br

retorna: Invalid user specified.

segui o tutorial a risca... alguém pode dar um help ?

obrigado.

Flávio Henrique

Comentário enviado por siqueira em 09/07/2004:

Pessoal,
Eu estou tentando utilizar o tutorial, mas estou tendo o mesmo problema de outros colegas. Na parte
# cat /etc/lilo.conf | maildrop-mysql -d marco.maximo@dominio1.com.br

Retorna Invalid Command maildrop-mysql

Por favor me ajudem



Comentário enviado por siqueira em 09/07/2004:

Pessoal,
Eu estou tentando utilizar o tutorial, mas estou tendo o mesmo problema de outros colegas. Na parte
# cat /etc/lilo.conf | maildrop-mysql -d marco.maximo@dominio1.com.br

Retorna Invalid Command



Comentário enviado por bittsbr em 10/07/2004:

Olá pessoal!

Sou usuário do Debian 3.0 sarge (testing), MySQL v4.0.20 e estou no mesmo ponto que todos vcs e acho que posso ajudar:

1 - Os fontes do maildrop 1.6.3 não geram o programa maildrop-mysql geram somente o maildrop o qual já possui o suporte ao mysql. digite somente maildrop -v e deverão obter a seguinte resposta:

maildrop 1.6.3 Copyright 1998-2003 Double Precision, Inc.
Maildir quota extension enabled.
Virtual user database via MySQL extension enabled.
This program is distributed under the terms of the GNU General Public
License. See COPYING for additional information.

Sendo assim este fará o mesmo que faria a versão mysql. Ele procura automaticamente os usuarios no db do sistema, depois no db mysql e em seguida no db ldap. Deve se dar atenção especial à configuração do arquivo: /etc/maildropmysql.config certificando-se de ter declarado corretamente o nome todas as variáveis. IMPORTANTE! O parâmetro where_clause se deixado em branco pode gerar um erro na query enviada ao servidor. Portanto, é aconselhável declarar: AND active=1 assim do jeito que eu digitei NÃO USE ASPAS. O parâmetro socket no meu caso ficou =/var/run/mysqld/mysqld.sock. Por fim, certifiquem-se de o usuários, grupos e as permissões do diretório /postfix estão corretamente configurados ( como escrito no tutorial ).

Outra coisa importante é que, como no caso do Siqueira, você pode usar qualquer comando que gere saida em stdout e fazer um pipe para o maildrop. Por exemplo: # ifconfig | maildrop -d eu@dominio.com.br.

Um abraço a todos.

Espero ter ajudado.

Comentário enviado por msmaximo em 14/07/2004:

Pessoal,
Eu fiz uma pequena atualização nesse tutorial, para corrigir alguns erros que podem confundir os menos atentos.
Vocês podem encontra-lo em:

TXT
----
http://smaximo.minidns.net/~marco/tutorial/postfix_mysql_v2.0.txt

Comentário enviado por marceloferraz em 14/07/2004:

após ter configurado todas as alterações em /etc/amavid.conf e dei o comando amavisd debug e ele acusou um erro na linha 123 do /usr/sbin/amavisd. Fui até lá e não entendi nada. Será que errei no passo a passo? já fiz duas vezes. Pode me ajudar?

Comentário enviado por bdooley em 14/07/2004:

Muito Bom,

Ajudou bastante. Parabens



Comentário enviado por soraia morais em 15/07/2004:

# cat /etc/lilo.conf | maildrop -d marco.maximo@dominio1.com.br
executei o comando com o colega acima tinha mencionado e continua a dar o mesmo erro podem-me ajudar....


Comentário enviado por ^_Us-Rodrigs_^ em 24/07/2004:

Olha muito 10 continue expondo tais tutorias...
Agradecemos...
Ate mais....
:- )


Comentário enviado por hnunes em 24/07/2004:

Olá Pessoal estou tentando instalar o servidor de email no HadRet9 mas estou com algumas dificuldades:

A primeira é que quando tento fazer o teste de autenticação do SASL, aparece
a mensagem: "Autentication failure". Ja revisei muitas veses o procedimento mas nunca da serto.
A outra é que quando acesso a pagina de administração de dominios (http://192.168...../postfixadmin/admin), ela entra direto sem pedir nenhuma atenticação.
E por fim não estou conseguindo instalar os modulos : ZIP, Digest-MD5, Time-HiRes e o Mail-SpamAssassin do perl, porque ele diz que não encontrou o programa pod2man no path e depois aparece o seguinte erro: "Makefile:68: *** faltando o separador. Pare.". So que eu já verifiquei e o pod2man esta no path.

Será que alguém poderia me dar uma luz por favor!!

Comentário enviado por danielbonfim2 em 27/07/2004:

marcos porque não atalizou o tutorial no underlinux este esta bem mais completo parabéns desde já Daniel Bonfim - Presidente Prudente SP
msn: danielbonfim@hotmail.com
e-mail: suporte@orioninformatica.eti.br

Comentário enviado por dgsgato em 30/07/2004:

Olá! O tutorial é excelente! A partir dele, estou conseguindo, quase conseguindo configurar meu servidor de correio sob o Debian. Só empaquei numa coisa... Qdo dou o comando "cat /etc/lilo.conf | maild ....." ele retorna "maildrop: signal 0x0B". O q eu faço pra resolver isso?

Comentário enviado por waes60 em 03/08/2004:

Gostaria de saber se alguem passou pelo mesmo problema na hora do teste de autenticacao.

Quando digito o comando telnet 0 143 tenho o seguinte retorno:

Trying 0.0.0.0.....
Conected to 0 (0.0.0.0)
Escape character is '^]'.
OK [CAPABILITY IMAP.....
0 login eu@meudominio.com.br senha
0 NO login failed


Alguem sabe o que pode ser???

E outra coisa meu log do mysql nao aparece nada ..... é este mesmo o local = /var/lib/mysql/mysql.sock ????

Grato.

Comentário enviado por dgsgato em 03/08/2004:

Parabéns Máximo! O tutorial é 10! E funciona... No mandrake! Testei nele e funcionou direitinho! Mas no Debian... Estou completamente decepcionado! Num consegui fazer esse troço funcionar de jeito nenhum! Desisti! Vou fazer da forma tradicional! Qdo tiver mais tempo tento novamente! Ah! Obrigado pela ajuda amigão! Akele probleminha q vc me falou, era akilo mesmo. Já os outros q surgiram... Boiei legal!

Abração!

Comentário enviado por eduardo.ramos em 03/08/2004:

dgmail:/etc/init.d# maildrop -v
maildrop 1.6.3 Copyright 1998-2003 Double Precision, Inc.
This program is distributed under the terms of the GNU General Public
License. See COPYING for additional informati

O que fazer?
Compilei o maildrop com suporte ao mysql, e ele nao e' listado no comando acima.

estou tendo outro problema :
O que pode ser este erro abaixo nao sei mais o que fazer...

Aug 3 17:47:22 dgmail postfix/cleanup[564]: warning: 73FE6CEF3A: virtual_alias_maps map lookup problem for eduardo.ramos@dgmail. Aug 3 17:47:22 dgmail postfix/pickup[562]: warning: maildrop/8E6CB833BA: Error writing message file



Comentário enviado por agomes em 16/08/2004:

Boa Tarde pessoal,

Eu estou com um pequeno problema, não consigo startar o postfix, porque o deamon não foi criado.
Onde eu posso ter errado.
Obrigada.
Angela.
http://www.vivaolinux.com.br/artigos/verArtigo.php?codigo=526&pagina=9

Comentário enviado por agomes em 16/08/2004:

Eu estou com um pequeno problema, não consigo startar o postfix, porque o deamon não foi criado.
Onde eu posso ter errado.
Obrigada.
Angela.
http://www.vivaolinux.com.br/artigos/verArtigo.php?codigo=526&pagina=9

Comentário enviado por wagner_quedi em 22/08/2004:

Alguem ja enfrentou esse problema ?

executo este comando
[wagner@sedna courier-imap-3.0.7]$ ./configure --prefix=/usr --sysconfdir=/etc/courier/ --libexecdir=/usr/lib/courier

aparece o seguinte erro:
configure: error: Cannot find either the gdbm or the db library.

Uso o CL8 e o gdbm está instalado
[root@sedna /source]# rpm -qa |grep gdbm
gdbm-1.8.0-7cl

alguem pode me ajudar .. impaquei ai ..

Comentário enviado por wagner_quedi em 22/08/2004:

ai galera .. consegui arrumar .. foi só executar este comando e funcionou .. FICA AI A DICA.

apt-get install gdbm{,-devel} patch gcc-c++ libstdc++-devel openssl{,-devel}


Comentário enviado por wagner_quedi em 22/08/2004:

impaquei dinovo .. agora com o seguinte problema ..

executo o ./configure --prefix=/usr --sysconfdir=/etc/courier/ --libexecdir=/usr/lib/courier

ele executa por alguns minutos .. ai termina com a seguinte mensagem ..

configure: configuring in maildir
configure: running /bin/sh './configure' --prefix=/usr '--prefix=/usr' '--sysconfdir=/etc/courier/' '--libexecdir=/usr/lib/courier' --with-authchangepwdir=/usr/lib/courier/authlib --with-db=gdbm --with-userdb=/etc/userdb --with-makedatprog='/usr/lib/courier/makedatprog' --with-mailuser=root --without-socks --with-authchangepwdir=/var/tmp/dev/null --with-package=courier-imap --with-version=3.0.7 --cache-file=/dev/null --srcdir=.
checking build system type... mkdir: cannot create directory `/root/tmp/cg17540-28737': Permission denied
mkdir: cannot create directory `/root/tmp/cg-17540': Permission denied
config.guess: cannot create a temporary directory in /root/tmp
configure: error: cannot guess build type; you must specify one
configure: error: /bin/sh './configure' failed for maildir



lembrando que to executando o comando como usuario normal .. nao como root


ALGUEM ME AJUDA

Comentário enviado por wagner_quedi em 23/08/2004:

Vixe .. mais uma vez travei .. a duvida anterior resolvi dando um chmod 777 no /root

agora o problema é o seguinte .. terminei a install do courier-imap so que dou um ps ax so que aparece os serviços assim

/usr/lib/courier/authlib/authdaemond.pgsql

notem que no final está .pgsql e preciso que seja mysql alguem sabe como resolver?:??????????????????????

Comentário enviado por bitstorm em 02/09/2004:

Wagner, eu sou outro empacado no Debian Sarge... mas pelomenos esta parte eu resolvi assim:

#apt-get install courier-maildrop courier-authmysql courier-imap courier-imap-ssl -y

e mexi direto nos arquivos de configuração(/etc/courier).. espero ter ajudado! ;)

Comentário enviado por Beethoven em 17/09/2004:

Pessoal instalei um server com fedora... e tive um problema na autenticação do postfix... pra envia... pois ele requisitava no mysql por exemplo:
user="beethoven"
quando o que eu precisava era
user="beethoven@warchalking.com.br"
depois de procura por toda net e visto q muuuita gente teve o mesmo problema... e acabaram deixando de usar o pam... e depois de 2 dias de busca digitei o comando na console:

saslauthd

e olha ali a solução:
--------------------------------------------------------------
usage: saslauthd [options]

option information:
-a <authmech> Selects the authentication mechanism to use.
-c Enable credential caching.
-d Debugging (don't detach from tty, implies -V)
-r Combine the realm with the login before passing to authentication mechanism
Ex. login: "foo" realm: "bar" will get passed as login: "foo@bar"
The realm name is passed untouched.
-O <option> Optional argument to pass to the authentication
mechanism.
-l Disable accept() locking. Increases performance, but
may not be compatible with some operating systems.
-m <path> Alternate path for the saslauthd working directory,
must be absolute.
-n <procs> Number of worker processes to create.
-s <kilobytes> Size of the credential cache (in kilobytes)
-t <seconds> Timeout for items in the credential cache (in seconds)
-v Display version information and available mechs
-V Enable verbose logging
-h Display this message.
------------------------------------------------------------------------

era so usar a opção "-r"
dae é só ir em /etc/sysconfig/saslauthd

e setar:
FLAGS=" -r "

**cuide para q a primeira " (aspas) fique colada com o =(igual)... sem espaço...

aleluia.. ateh q enfim... mas valeu a pena

beethoven@warchalking.com.br
http://www.warchalking.com.br/


Comentário enviado por boo em 20/10/2004:

Vou dar a dica pra quem não consegue fazer o Maildrop funcionar.
Levei 3 dias pra conseguir colocar o maildrop pra funcionar, pois simplesmente este tutorial não aborda como criar os arquivos de configuração do maildrop.
Bem, NÃO CONFIE NAS VARIAVEIS DO MAILDROP !
Ou seja, no seu arquivo de configuração, ao invés de usar DEFAULT="$HOME/Maildir" use DEFAULT="/postfix/meu.dominio/meu_usuario/Maildir/"
Infelizmente o Maildrop se perde quando é usada variável.
(detalhe: eu uso a versão 1.7.0 do maildrop)

Enfim, para que o maildrop funcione, você não precisa ter um arquivo /etc/maildrop, mas você deve ter um arquivo .mailfilter dentro do $HOME/Maildir.
Este arquivo deve conter uma única linha (ou mais, caso você saiba o que está fazendo) para que funcione... No meu caso, usei apenas o seguinte:
DEFAULT="/postfix/meu.dominio.com/meu_usuario/Maildir/"
funcionou que foi uma beleza.
Se ainda assim não der certo, tente usar o modo verboso do maildrop colocando o parâmetro -V 1, -V 2, ..., -V 9.
Exemplo: ifconfig | maildrop -V 4 -mysql -d fulano@dominio.com

Espero que isso ajude.



Comentário enviado por boo em 20/10/2004:

Outra coisa incrivel que notei é o seguinte...
Sem a opção -V o maildrop simplesmente não funciona !!!
exemplo:

ifconfig | maildrop -V 9 -mysql -d fulano@dominio # NAO FUNCIONA
ifconfig | maildrop -mysql -d fulano@dominio # NAO FUNCIONA
ifconfig | maildrop -V -mysql -d fulano@dominio # FUNCIONA !!!

Isso só pode ser um bug. Até porque a documentação do maildrop diz:

-V level
Initialize the VERBOSE variable to level. Because maildrop parses the entire before running
it, this option is used to produce debugging output in the parsing phase. Otherwise, if filename
has syntax errors, then no debugging output is possible because the VERBOSE variable is not yet
set.

-V is ignored when maildrop runs in delivery mode.

Porém, ao usar a opção -d você estará usando o Maildrop no delivery mode e nem de longe o parâmetro -V é ignorado !
Infelizmente a versão 1.7.0 do maildrop tem esse erro.
Sugiro que seja utilizada a versão 1.6.3 (que me parece que nao tem esse erro) ou então usar o parâmtro -V sempre...

Comentário enviado por boo em 21/10/2004:

Realmente o tratamento de parâmetros do maildrop 1.7.0 não funciona...
Vejam que bizarro:

ifconfig | maildrop -V -w 90 -mysql -d igor@partnerinfo.com.br # nao funciona
ifconfig | maildrop -V -mysql -w 90 -d igor@partnerinfo.com.br # funciona

notem que os parâmetros continuam sendo os mesmos...
porém a ordem deles é diferente.
Mais uma vez, muito cuidado ao utilizar o maildrop pessoal, o lance é traiçoeiro.

Comentário enviado por mparada em 23/10/2004:

Gente socorro courier-imap
não compila de jeito nenhum, tentei de tudo o apt-get diz que meus pacotes estão atualizadissimos e não habilita o supote ao mysql.

tem pontos bons, o mysql ta rodando, postfix tambem porem quando logo no postafixadmin ele dix não encontrat tabela, sendo que a tabela mailbox esta beleza.

alquem pode me dar um help
bye

Comentário enviado por mparada em 30/10/2004:

Mal hem!

desisti do imap

vou tentar o uebmiau ou squirrelmail

bye

Contribuir com comentário

  
Para executar esta ação você precisa estar logado no site, caso contrário, tudo o que for digitado será perdido.
 

[Anúncios]
Vaga para profissional LAMP
São Paulo - SP
Login:
Senha:
Se você ainda não possui uma conta, clique aqui.

Esqueci minha senha

438603: Fábio Berbert de Paula
371022: Alessandro de Oliveira Faria
305283: Jefferson Estanislau da Silva
221195: Ricardo Rodrigues Lucca
207533: Celso Goya
200518: Lincoln Lordello
193023: Luiz Antonio da Silva Junior
159423: Eduardo Assis
142807: MARCOLINO Alexandre de Jesus
132420: William da Rocha Lima
 
Eye of Slackware
Por clbj
Sobre SHELL - Gostaria de saber como faço para abrir 1 arquivo te... (0)

olá pessoal estou compilando o kernel 2.6.9 e o meu é o 2.6.5, no /boo... (0)

o slack 9.1 funciona cum placa de vídeo de 512k ISA ???? ... (0)

Pessoal, eu de novo, aquele cara que está com a dúvida de instalar o s... (2)

Galera, tenho uma impressora HP610c configurada com o cups. Quando eu ... (0)
 
[dhcpd] dhcpd.conf - dhcp com ip fixo

[Sshd (Secure shell daemon)] sshd_config - Sshd configurado para o X

[Samba] smb.conf - Samba como PDC na rede

Contribuir com: Artigo | Conf | Dica | Pergunta | Link | Script | Screenshot | Simulado | Wallpaper ]
Responsável pelo site: Fábio Berbert de Paula

Copyright© 2002-2004 Viva o Linux.com.br