|
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
] |
|
| | | |
|
|
| 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.
| |
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
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á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
|
|
| |
| | |
 |
|