Servidor de e-mail completo

Este artigo é uma revisão do artigo do Marco Máximo, também publicado aqui no VOL, que faz algumas atualizações e algumas correções, dentre elas: uso do SASL2 para autenticação, Uebimiau como webmail, tema do outlook express para o webmail, ferramentas de monitoria e análise do uso do servidor de e-mail.

[ Hits: 127.806 ]

Por: Anderson Leite em 20/10/2006


Configurações e primeiros testes



3. Configurações

3.1. Definir a senha do usuário root do MySQL:

# mysqladmin -u root password 'suasenha'

3.2. Ativar o log do MySQL:

# vi /etc/mysql/my.cnf

Descomentar a linha:

log = /var/log/mysql.log

Reiniciar o serviço do MySQL:

# /etc/init.d/mysql restart

3.3. Adicionar um usuário e grupo para o maildrop no sistema:

# adduser maildrop

OBS: Defina uma senha qualquer para o usuário, ele não será utilizado.

3.4. Criar o banco do postfix no MySQL:

OBS: Substitua no arquivo abaixo "xxxxx" por sua senha.

OBS2: Substitua no arquivo abaixo as linhas:

   uid int(10) unsigned default '108',
   gid int(10) unsigned default '108',

Trocando 108 pela ID do usuário e grupo maildrop criados no passo anterior.

OBS3: Você pode inserir estes dados entrando no mysql, com "mysql -u root -p" (informe a senha do usuário root, cadastrada no passo 3.1) e colando as informações abaixo, ou:

Salve o script abaixo num arquivo texto e depois o insira no mysql, digitando "mysql -u root -p < ARQUIVOCRIADO.TXT", a senha a ser informada é a cadastrada no passo 3.1.

# INICIO DO postfix_mysql.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 'seuUID',
   gid int(10) unsigned default 'seuGID',
   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';

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

Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Welcome to the MySQL monitor. Commands end with ; or g.
Your MySQL connection id is 7 to server version: 5.0.22-Debian_3-log

Type 'help;' or 'h' for help. Type 'c' to clear the buffer.

mysql> show tables;
+-------------------+
| Tables_in_postfix |
+-------------------+
| admin             |
| alias             |
| domain            |
| mailbox           |
+-------------------+
4 rows in set (0.00 sec)

mysql> desc alias;
+-------------+--------------+------+-----+---------------------+
| Field       | Type         | Null | Key | Default             |
+-------------+--------------+------+-----+---------------------+
| address     | varchar(255) | NO   | PRI | NULL                |
| goto        | text         | NO   |     | NULL                |
| domain      | varchar(255) | NO   |     | NULL                |
| create_date | datetime     | NO   |     | 0000-00-00 00:00:00 |
| change_date | datetime     | NO   |     | 0000-00-00 00:00:00 |
| active      | tinyint(4)   | NO   |     | 1                   |
+-------------+--------------+------+-----+---------------------+
6 rows in set (0.00 sec)

Na tabela "alias" é onde serão criados os redirecionamentos de e-mail.
  • address: É o endereço do novo redirecionamento (ALIAS);
  • goto: É o destinatário(s) do redirecionamento.

Exemplo:

address => goto
postmaster@dominio.com.br > usuario@dominio.com.br
postmaster@dominio2.com.br => usuario@dominio2.com.br, usuario1@dominio1.com.br

mysql> desc domain;
+-------------+--------------+------+-----+---------------------+
| Field       | Type         | Null | Key | Default             |
+-------------+--------------+------+-----+---------------------+
| 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             |
+---------------+------------------+------+-----+---------------------+
| 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  |     | seuUID              |
| gid           | int(10) unsigned | YES  |     | seuGID              |
| 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.
  • 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             |
+-------------+--------------+------+-----+---------------------+
| 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 é usada pelo PostfixAdmin para criar os administradores que irão ser responsáveis pela administração das contas dos respectivos domínios.

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.

Página anterior     Próxima página

Páginas do artigo
   1. Início
   2. Preparação do ambiente
   3. Configurações e primeiros testes
   4. Mais configurações (e mais testes!)
   5. Inserindo parâmetros (e fazendo mais testes!)
   6. Cota de caixa postal e autenticação SASL
   7. Antivírus e Antispam
   8. Postfixadmin e ferramentas de relatório
   9. (U)Webmail (e fim)
Outros artigos deste autor

Instalando o asterisk no Debian GNU/Linux

Squid autenticado no Active Directory com Winbind

Leitura recomendada

Utilizando o giFT para baixar e compartilhar arquivos na Internet

Configurando o Velox no seu Linux

Banda Larga 3G da Claro no Slackware Linux

30 de Dezembro de 2015 - O dia que o Debian chorou

Criando seu próprio servidor de DNS dinâmico (nsupdate + bind9)

  
Comentários
[1] Comentário enviado por fabio em 20/10/2006 - 02:44h

Artigaço! Já era hora de termos uma nova versão dele disponível.

Em tempo, desculpe pela demora na publicação, este não merecia esperar tanto :) ... mas em contrapartida, já estamos quase com a fila de espera em dia.

Um abraço

[2] Comentário enviado por roanfranklin em 20/10/2006 - 07:31h

Parabéns rootkit, artigo show show show mesmo... valeu!.

[3] Comentário enviado por leoberbert em 20/10/2006 - 08:30h

Ja ta nos meus favoritos amigo.. abraço!!!

[4] Comentário enviado por removido em 20/10/2006 - 10:40h

Muito bom, já foi pros meus favoritos.

[5] Comentário enviado por joaocosme em 20/10/2006 - 10:44h

nao testei ainda mas ja to no meu favoritoooossssssssss tb!!! hehehe show show show apesar de nao saber se ta rolando :)

[6] Comentário enviado por balani em 20/10/2006 - 11:59h

Muito bom, tem uns esquema legais, vou adaptar algumas coisas no meu server. vlw

[7] Comentário enviado por raimundex em 20/10/2006 - 13:08h

e ai galera.. alguem sabe porque aparece isto nos logs do mail.log?
eu enviei um email para meu user de teste.. de fora da maquina..
Oct 20 13:09:41 debian postfix/smtp[2145]: connect to example.com[192.0.34.166]: Connection timed out (port 25)
Oct 20 13:09:41 debian postfix/smtp[2145]: 66CE49C573: to=<postmaster@example.com>, relay=none, delay=591862, status=deferred (connect to example.com[192.0.34.166]: Connection timed out)
Oct 20 13:09:41 debian postfix/qmgr[2128]: 66CE49C573: from=<>, status=expired, returned to sender

[8] Comentário enviado por rootkit em 20/10/2006 - 13:24h

raimundex,

O erro informa que ocorreu um timeout na tentativa de entrega da mensagem, verifique a configuração do amavis (se já o estiver usando), e tente também fazer o envio de uma mensagem a partir do próprio servidor.

[9] Comentário enviado por raimundex em 20/10/2006 - 13:34h

então rootkit.. estava olhando a configuração do amavis e está tudo certinho, fiz o teste enviando do proprio servidor e chegou normalmente.. o problema é se mandar de outro lugar mesmo que não chega.. abraços

[10] Comentário enviado por mantunes em 21/10/2006 - 10:38h

Parabéns rootkit,

O artigo do Marco já é na minha opinião excelente e vc conseguiu acrescentar e melhora-lo! Mais um artigo de qualidade pros favoritos!
Parabéns ao rootkit e ao Marco por esses artigos.

att

[11] Comentário enviado por caiado em 23/10/2006 - 12:28h

Parabéns pelo excelente artigo, mas preciso de ajuda qto ao maildrop>
Está ocorrendo um erro clássico que pelo que vi não foi completamente solucionado.

cat /etc/lilo.conf| maildrop -d usuario.silva@dominio1.com.br
maildrop: Invalid user specified.

O usuário está no mysql, a configuração do banco está exatamente como especificado no tutorial, e no log do mysql não aparece nada.

Alguém pode me ajudar? Fiquei parado nesse procedimento

[12] Comentário enviado por dcyrillo em 23/10/2006 - 17:24h

Comigo aconteceu o mesmo erro no maildrop "invalid user specified".

No procedimento de setar as permissões no banco de dados em um passo anterior já deu erro também, tive que realizar as permissões no mysql do usuario maildrop de outra maneira.

Alguém conseguiu passar desta parte e poderia dar um help?

[13] Comentário enviado por georgecp em 23/10/2006 - 17:29h

Muito bom o artigo !!
Era bem o que eu estava precisando!!
Vlwww

[14] Comentário enviado por caiado em 24/10/2006 - 21:51h

Cara é impressionante como esse tipo de problema ocorre em diversos sites nacionais e lá de fora e ninguém posta uam resposta certa sobre isso, do tipo " é assim que se resolve isso"!
Pow que dificuldade, parecem que ficam agasalhando informação.

[15] Comentário enviado por rigger em 28/10/2006 - 20:13h

Amigos para o erro -> cat /etc/lilo.conf| maildrop -d usuario.silva@dominio1.com.br
maildrop: Invalid user specified.

é so alterar para esse parametro -> authmodulelist="authmysql"
no arquivo /etc/courier/authdaemonrc

[]'s

[16] Comentário enviado por dcyrillo em 30/10/2006 - 13:52h

Fiz o que o amigo aí de cima aconselhou e o erro ainda continua "Invalid user specified".

Será que alguma alma caridosa que conseguiu implementar essa solução poderia dar uma olhada no tutorial e verificar o que pode estar errado? Sei que tem gente que manja pra caramba, e podia ajudar quem está emperrado, assim como eu.
Obrigado!

[17] Comentário enviado por dcyrillo em 31/10/2006 - 10:55h

Amigos, ATENÇÃO!!!

Quem quiser ter esse servidor de email rodando em poucas horas, tem um script disponibilizado por um amigo da comunidade.

Todos os créditos são dele. Email do camarada: csena2k2@gmail.com

Site onde baixar os scripts:
http://www.servtec.eti.br/downloads/ServidorEmailDebianSarge/

Editei o script com as senhas que eu queria e rodei....Num é que o bixinho faz tudo sozinho, me economizou horas de dor de cabeça e tentar descobrir aonde estavam os erros de digitação na hora de fornecer o tutorial.

Abraços.

[18] Comentário enviado por efraim em 03/11/2006 - 16:07h

Pessoal,

Vi que muitos de vocês tem problemas no primeiro teste do maildrop,

cat /etc/lilo.conf| maildrop -d usuario.silva@dominio1.com.br
maildrop: Invalid user specified.

estou a dias tentando resolver isto, e consegui com uma coisa simples, não sei porque cargas d'agua o maildrop não consegue traduzir o localhost de /etc/maildropmysql.config por 127.0.01, então fiz a troca diretamente no arquivo, deixando

hostname 127.0.0.1





[19] Comentário enviado por celsopimentel em 05/11/2006 - 01:20h

Ola Amigo, parabéns pelo artigo. Gostaria de uma dica, instalei o uebimiau, fiz tudo conforme a receita, mas quando acesso o browser, ele faz uma verificação, um teste de compatibilidade com o sistema, e fica o tópico $temporary_directory variable... FAILED . Mas criei o diretorio no /tmp/uebimiau e também editei o arquivo.../inc/config.php com o caminho do arquivo no /tmp. Mas retorna sempre falha....
O que pode ser amigo ?

[20] Comentário enviado por rootkit em 05/11/2006 - 05:48h

Na verdade no artigo digo para criar um diretório chamado /tmpuebimiau (sem a outra barra), arquivos e diretórios criados dentro do /tmp são removidos a cada boot, muito provavelmente por conta disto seu webmail não está disponível para acesso.

[21] Comentário enviado por celsopimentel em 05/11/2006 - 14:55h

Valeu amigo obrigado pela dica, agora esta tudo OK, esta autenticando e estou vizualizando os e-mail, só não estou conseguindo enviar email pelo uebimiau

[22] Comentário enviado por rootkit em 05/11/2006 - 17:29h

Verifique no seu config.php se o tipo de servidor está configurado como smtp, e se o endço do servidor está como 127.0.0.1

[23] Comentário enviado por celsopimentel em 06/11/2006 - 00:12h

Colega, agradeço pelas dicas, sobre enviar e-mail eu já havia achado o erro, fico muito agradecido mesmo, por isso estou maravilhado com o software livre, a comunidade trabalha junto.
Tenho mais um probleminha, no caso não é problema por que o uebimiau esta funcional. É que gostaria de colocar o tema que você deu a dica o Outlook Express, mas quando coloco esse até aparece a caixa de login dele, depois de autenticar ele não acha a tela seguinte, olhei e não existe o o link que ele busca o msglist.php. Parece que esse tema não é compativel com essa versão do Uebimiau.

Obrigado mesmo parceiro

[24] Comentário enviado por rootkit em 06/11/2006 - 11:11h

celsopimentel,

Acredito que houve alguma revisão no release atual do uebimiau, realmente, o msglist.php foi renomeado para messages.php, resolvi isto aqui fazendo uma cópia do arquivo messages.php para msglist.php.

[25] Comentário enviado por Falinus em 07/11/2006 - 11:46h

ola amigo...

estou com um problema para baixar os pacotes....ele tah dando "E:Internal Error, Could not early remove e2fsprogs"....estou mexendo a pouco tempo com Linux, por isso estou encontrando algumas dificuldades....agradeco se puder me ajudar.....

[26] Comentário enviado por rootkit em 07/11/2006 - 15:12h

Este problema normalmente ocorre quando você está com kernel 2.4 instalado, e tentando migrar de stable para testing, ele precisa remover o e2fsprogs para depois atualizar o kernel, alguns outros pacotes e instalar uma versão mais nova do e2fsprogs, como este é um pacote VITAL para o sistema, ele só é removido se você digitar lá no apt "Yes, make this i do" ou algo do tipo (ele te diz na hoar o que deve ser digitado), para depois proceder com o restante da isntalação e atualização dos pacotes.

[27] Comentário enviado por Falinus em 07/11/2006 - 16:14h

entaum....consegui resolver akele problema....agora estou com dificuldade pra subir o servico amavis....tah relatando o seguinte erro:
Starting amavisd: The value of variable $myhostname is "debian", but should have been
a fully qualified domain name; perhaps uname(3) did not provide such.
You must explicitly assign a FQDN of this host to variable $myhostname
in amavisd.conf, or fix what uname(3) provides as a host's network name!
(failed).
invoke-rc.d: initscript amavis, action "start" failed.

o q eu poderia fazer....
desde jah agradeco!!

[28] Comentário enviado por fabianotes em 09/01/2007 - 19:28h

cat /etc/lilo.conf| maildrop -d usuario.silva@dominio1.com.br
maildrop: Invalid user specified.
Esse erro e devido ao sock..
tem q alterar o arquivo "/etc/maildropmysql.config" a linha
"socket /var/lib/mysql/mysql.sock" para
"/var/run/mysqld/mysqld.sock" e recompilar o maildrop..

espero ter ajudado


[29] Comentário enviado por fabianotes em 10/01/2007 - 12:10h

ajuda ai ..........

estou meio travado na autenticacao via banco .... nao autentica ....

ix consegui...alterando o arquivo etc/courier/authdaemonrc

a linha "authmodules="authmysql"

[30] Comentário enviado por rootkit em 10/01/2007 - 14:15h

fabianotes,

tenta ativar o log do mysql, e verifica no /var/log/mysql.log se os parametros estao sendo passados corretamente.

[31] Comentário enviado por fabianotes em 10/01/2007 - 15:50h

rootkit ...

to meio enrolado no webmail kra....
ERROR (2): Header may not contain more than a single header, new line detected. (/webmail/inc/inc.php:156)
da esse erro quando tento acessar ...
estou usando ONE-FOR-ALL.

tem alguma dica ..

[32] Comentário enviado por fabianotes em 10/01/2007 - 16:05h

pow desculpa pela pergunta ai rootkit sem pesquizar antes...

consegui ...

ieditei o arquivo inc.php.
/*
Don't remove the fallowing lines, or you will be problems with browser's cache
*/

Header("Expires: Wed, 11 Nov 1998 11:11:11 GMT\r\n".

e romever essas duas aqui:
"Cache-Control: no-cache\r\n".
"Cache-Control: must-revalidate");

coloquei essa linha aqui:

Header("Expires: Wed, 11 Nov 1998 11:11:11 GMT";

[33] Comentário enviado por rootkit em 10/01/2007 - 17:36h

esse é um problema recorrente no uebimiau, o Aldoir Ventura (o desenvolvedor dele) tinha corrigido isso a um tempo atrás, agora o problema voltou a ocorrer.

[34] Comentário enviado por fabianotes em 10/01/2007 - 18:07h

tem um outro problema no thema outlook
ele tenta acessar um arquivo que nao existe ...
o arquivo e o msglist.php.
consegui fazer ele funcionar .. alterando o arquivo de login...
mais ainda alguns erros ... vo deixar por enquando o thema default.

[35] Comentário enviado por fabioitb em 23/01/2007 - 21:50h

Ola me desculpem, mas quando tento colocar o tema do outlook me é mostrada a seguinte mensagem: ERROR (512): Smarty error: unable to read template resource: "outlook/login.htm" (/usr/src/webmail/smarty/Smarty.class.php:589), olhei que o arquivo msglist.php não existia, por isso copiei o messages.php para msglist.php, mas também não funcionou. Contudo o tema default do uebimiau funciona normalmente. Grato desde já pela atenção.

[36] Comentário enviado por fabioitb em 23/01/2007 - 23:05h

Novamente peço ajuda pois, não estou conseguindo enviar mensagens pelo uebimiau. Fiz a alteração sugerida acima para $smtp_server=127.0.0.1, mas não adiantou. Trabalho com multiplos dominios, por enquanto teste, domoro.com.br e monteiros.com.br. O recebimento está ok, somente o envio apresenta erro "Não foi possível enviar o email".
Meu servidor de email é Postfix com LDAP, Cyrus, Amavis e SpamAssassin.
Agradeço novamente
$default_mail_server = "localhost.localdomain";
$one_for_all_login_type = "%user%@%domain%";
$default_protocol = "imap";
$default_port = "143";
$default_folder_prefix = "";

[37] Comentário enviado por rootkit em 24/01/2007 - 06:40h

fabioitb,

Verifique o log do servidor de e-mail, para ver qual o erro apresentado ao tentar enviar o email através do webmail.

Quanto ao erro com o template do outlook, verifique as permissões dos arquivos/diretórios do tema, e se o nome do diretório está correto (verifique maiusculas e minusculas, pois fazem diferença em sistemas linux.)

[38] Comentário enviado por fabioitb em 30/01/2007 - 17:06h

rootkit, obrigado pela dica do template, baixei a versao oetheme-1.0-for_UebiMiau278RC1 e deu certo.
porem o problema de envio continua, e pior olhei, o mail.log e a mensagem é meio vago.
connect from localhost.localdomain[127.0.0.1]
lost connection after RSET from localhost.localdomain[127.0.0.1]
disconnect from localhost.localdomain[127.0.0.1]
outro erro/problema que ocorreu foi a remoção de todas as minhas mensagens da caixa de entrada. Acho que o problema esta no cyrus, pois a separação entre user e o nome de usuario é / e não .
Exemplo:
padrão: user.fabio
utilizado por aqui: user/fabio

[39] Comentário enviado por coffani em 05/04/2007 - 11:38h

Coisa linda amigão... ja ta nos meus favoritos...vlw

[40] Comentário enviado por dcyrillo em 17/04/2007 - 14:56h

Rootkit,

Maravilha esse seu howto, estou apenas com uma dúvida aqui. Resolvi todos os probleminhas que estavam no caminho com seu auxilio e dos outros colegas, assim que eu deixar redondo pretendo posta aqui todas as correções a serem feitas.

O meu problema é na autenticação via smtp (sasl), vou no log e acontece esse erro: warning: SASL authentication failure: cannot connect to saslauthd server:

O engraçado é que o serviço tá de pé, e receber emails estou conseguindo normalmente. O que pode ser isto?

Valeu!!!

[41] Comentário enviado por dcyrillo em 17/04/2007 - 17:48h

Bom já resolvi, era a opção na configuração do postfix (master.cf) eu havia me esquecido de marcar n para tudo na coluna chroot.

Relembrando as correções:
- Adicionar o spamassassin no apt-get na hora da instalação de todos os pacotes;

- Alterar o parâmetro no arquivo /etc/courier/authdaemonrc (authmodulelist = "authmysql")

- Alterar a linha: socket /var/lib/mysql/mysql.sock no arquivo /etc/maildropmysql.config para: socket /var/run/mysqld/mysqld.sock
Lembrando: faça este procedimento antes de compilar o maildrop

- Marcar a tabela chroot para n em todos os serviços dentro do arquivo /etc/postfix/master.cf (no artigo está explicando isso, mas pode ser que alguém passe desapercebido assim como eu)

- Editar o arquivo config.inc.php do postfixadmin conforme suas necessidades antes de executá-lo;

- Realizar as correções do uebmial conforme dicas de colegas acima (editar o inc/inc.php) e outras correções;

- Lembre-se: para enviar email pelo webmail é necessário que o usuario tenha a conta no sistema, nao adianta apenas ter o usuario de email cadastrado no mysql, deve existir o usuario no linux para que ocorra a autenticação e envie normalmente.). Parece uma coisa boba mas eu perdi vários minutos preciosos achando que era algum erro na minha configuração, e quando fui ver resolvi apenas criando o usuario no linux.

Abraço a todos!!!
Parabéns pelo artigo!

[42] Comentário enviado por klouco em 20/04/2007 - 18:46h

e aiii...muito bommm esse artigo...
mais ta dando esse erro!???

mail:/etc/maildrop-1.6.3# ./configure--prefix=/usr--sysconfdir=/etc/maildrop--enable-maildrop-uid=1001--enable-maildrop-gid=1001--enable-syslog=1--enable-maildropmysql--enable-maildirquota
-su: ./configure--prefix=/usr--sysconfdir=/etc/maildrop--enable-maildrop-uid=1001--enable-maildrop-gid=1001--enable-syslog=1--enable-maildropmysql--enable-maildirquota: Arquivo ou diretório não encontrado

[43] Comentário enviado por klouco em 20/04/2007 - 18:49h

mail:/etc/maildrop-1.6.3# ./configure--prefix=/usr--sysconfdir=/etc/maildrop--enable-maildrop-uid=1001--enable-maildrop-gid=1001--enable-syslog=1--enable-maildropmysql--enable-maildirquota
-su: ./configure--prefix=/usr--sysconfdir=/etc/maildrop--enable-maildrop-uid=1001--enable-maildrop-gid=1001--enable-syslog=1--enable-maildropmysql--enable-maildirquota

: Arquivo ou diretório não encontrado

[44] Comentário enviado por rootkit em 21/04/2007 - 04:39h

klouco,

Estão faltando espaços entre os parametros, tenta com:

./configure --prefix=/usr --sysconfdir=/etc/maildrop --enable-maildrop-uid=1001 --enable-maildrop-gid=1001 --enable-syslog=1 --enable-maildropmysql --enable-maildirquota

E eu acredito que deve funcionar sem problemas.

[45] Comentário enviado por klouco em 23/04/2007 - 10:36h

Obrigado rootkit....
Agora ta dando esse erro...algume pode me ajudar...

Já alterar o arquivo "/etc/maildropmysql.config" a linha
"socket /var/lib/mysql/mysql.sock" para
"/var/run/mysqld/mysqld.sock"

e ele dar essa mensagemmm!!!

mail:~# cat /etc/lilo.conf| maildrop -d teste.silva@dominio1.com.br
cat: /etc/lilo.conf: Arquivo ou diretório não encontrado
maildrop: Invalid home directory permissions - world writable.

[46] Comentário enviado por rootkit em 23/04/2007 - 12:36h

klouco,

O primeiro erro é bem simples: você não tem o arquivo /etc/lilo.conf (provavelmente você está usando o grub) tenta fazer o teste trocando /etc/lilo.conf por /boot/grub/menu.lst.

O segundo erro diz respeito às permissões do diretório do maildrop, você alterou alguma coisa para 777 ou 770 na tentativa de colocar o restante para funcionar ? Em caso afirmativo, retorna a permissão para 644 ou 755, conforme o caso...

[47] Comentário enviado por klouco em 23/04/2007 - 12:58h

okkk...

[48] Comentário enviado por klouco em 23/04/2007 - 13:02h

mudei as permissoes como vc me pediu... so que agora da dando esse erro...de permissão


mail:/etc# cat /boot/grub/menu.lst| maildrop -d teste.silva@dominio1.com
maildrop: Invalid home directory permissions - world writable.

[49] Comentário enviado por rebinat em 27/04/2007 - 09:15h

queriam que me ajudassem..

deu tudo certo mas nao consigo enviar email pelo webmail... ja tentei varias coisas.. tntei tb criar a conta no sistema como falaram acima,,

mas deu erro.. tentei usuario@dominio1.com.br mas diz que pode ter incompatibilidade com o samba e nao cria...

se alguem conseguiu resolver o problema de envio deemail dauma luz

Obrigado

Luiz Henrique

[50] Comentário enviado por gzanatta00 em 30/04/2007 - 10:08h

amigo eu uso Debian 3.1 so que nao criou o arquivo /etc/courier/authmysqlrc

n o diretorio os unicos arquivos q tem sao esses:
authdaemonrc authmodulelist authmysqlrc.dpkg-dist imapd.cnf imapd-ssl pop3d.cnf pop3d-ssl
authdaemonrc~ imapd imapd.pem pop3d pop3d.pem quotawarnmsg

Obrigado

[51] Comentário enviado por gzanatta00 em 30/04/2007 - 13:46h

quando executo o comando maildrop -v
aparece: -bash: maildrop: command not found

[52] Comentário enviado por fajo em 02/05/2007 - 21:33h

rootkit

Eu já usei o script anterior com Debian Sarge, com algumas correções, ficou uma maravilha, só q agora estou precisando configurar um servidor de email no Debian Etch, já testei o mesmo script, com pouquíssimas modificações tb funcionou, mas, não a parte do postfixadmin, deu um erro no mysql, será q esse atual funcionará no Etch?

Obrigado

[53] Comentário enviado por dcyrillo em 14/05/2007 - 13:13h

Bom,

Respondendo a pergunta do colega acima:

Funciona sim no Debian Etch, acabei de fazer utilizando o mesmo howto, mas é claro, com as modificações que precisam ser feitas para o mesmo funcionar (até no sarge) conforme comentários acima.

A única coisa que deu problema no Etch foi na hora do SASL autenticar dava acesso negado, o que eu fiz que resolveu foi dar permissao na pasta /var/run/saslauthd e criar também o arquivo nesse local:
/etc/postfix/sasl/smtpd.conf , com o conteúdo abaixo:

pwcheck_method: saslauthd


De resto, com as correções, funciona tanto no Sarge quanto no Etch.

Abraço!

[54] Comentário enviado por valerio em 22/06/2007 - 16:43h

Galera,

Tudo Bom?

É a primeira vez que participo no site, e gostaria que fosse para contribuir, mas estou com um problema com o Webimiau. Fiz todas as configurações necessárias em todos os arquivos no meu CENTOS, mas aparece todo o código php dessa forma abaixo quando acesso pelo browser:

security=true; $smarty->secure_dir=array("./"); $smarty->compile_dir = $temporary_directory; $smarty->assign("umLanguageFile",$selected_language.".txt"); $smarty->assign("umEmail",$f_email); $jssource = " "; //$smarty->debugging = true; $smarty->assign("umServerType",strtoupper($mail_server_type)); switch(strtoupper($mail_server_type)) { case "DETECT": break; case "ONE-FOR-EACH": $aval_servers = count($mail_servers); $smarty->assign("umAvailableServers",$aval_servers); if(!$aval_servers) die("You must set at least one server in \$mail_servers, please review your config.php"); if ($aval_servers == 1) { $strServers = "@".$mail_servers[0]["domain"]." "; } else { $strServers = "\r"; for($i=0;$i<$aval_servers;$i++) { $sel = ($i == $six)?" selected":""; $strServers .= "@".$mail_servers[$i]["domain"]."\r"; } $strServers .= "\r"; } $smarty->assign("umServer",$strServers); break; case "ONE-FOR-ALL": break; default: die("Unknown server mode, please see config.php"); } $smarty->assign("umUser",$f_user); $smarty->assign("umPass",$f_pass); $smarty->assign("umJS",$jssource); $avallangs = count($languages); if($avallangs == 0) die("You must provide at least one language"); $avalthemes = count($themes); if($avalthemes == 0) die("You must provide at least one theme"); $smarty->assign("umAllowSelectLanguage",$allow_user_change_language); $func($textout); if($allow_user_change_language) { $def_lng = (is_numeric($lid))?$lid:$default_language; $langsel = "\r"; foreach($languages as $key => $lang) { $selected = ($lid == $key)?" selected":""; $langsel .= "".$lang["name"]."\r"; } $langsel .= "\r"; $smarty->assign("umLanguages",$langsel); } $smarty->assign("umAllowSelectTheme",$allow_user_change_theme); if($allow_user_change_theme) { $def_tem = (is_numeric($tid))?$tid:$default_theme; $themsel = "\r"; foreach($themes as $key => $theme) { $selected = ($tid == $key)?" selected":""; $themsel .= "".$theme["name"]."\r"; } $themsel .= "\r"; $smarty->assign("umThemes", $themsel); } $smarty->display("$selected_theme/login.htm");

Não sei porque esta ocorrendo isso, já alterei o arquivo index.php e o php.ini, para reconhecer o tag <?php... Mas não resolveu.

Desde já muito abrigado aqueles que tiverem atenção a meu comentário.

sds,
Valério - ES

[55] Comentário enviado por agimenez em 23/08/2007 - 19:16h

Ficou show seu tutorial, podiamos ter mais no mesmo esquema, bem explicado, passo a passo, e com esses comentarios cada um tirando suas dúvidas tá sendo muito útil..

Estou implementando no Debian Etch 4.0, e empaquei na parte 3.10, onde tenho que logar com usuário postfix e da erro de senha;
já rodei as query (como root) para dar permissão, mas mesmo assim não funfo...

na parte:
Vamos agora logar no banco MySQL e inserir um usuário e um domínio para testes, logando-se no MySQL:

# mysql -D postfix -u postfix -pMINHA SENHA
ERROR 1045 (28000): Access denied for user 'postfix'@'localhost' (using password: YES)

se alguém puder ajudar... obrigado.

[56] Comentário enviado por hcs2007 em 24/08/2007 - 12:09h

Galera, estou tendo dificuldade de testar o e-mail, esta apresentando o seguinte erro:
Aug 24 07:35:54 testmail postfix/pickup[9640]: fatal: /etc/postfix/mysql_transport_maps.cf, line 2: missing '=' after attribute name: "mysql_transport_maps.cf"
Aug 24 07:35:55 testmail postfix/qmgr[9641]: fatal: /etc/postfix/mysql_transport_maps.cf, line 2: missing '=' after attribute name: "mysql_transport_maps.cf"
Aug 24 07:35:55 testmail postfix/master[7107]: warning: process /usr/lib/postfix/pickup pid 9640 exit status 1
Aug 24 07:35:55 testmail postfix/master[7107]: warning: /usr/lib/postfix/pickup: bad command startup -- throttling
Aug 24 07:35:56 testmail postfix/master[7107]: warning: process /usr/lib/postfix/qmgr pid 9641 exit status 1
Aug 24 07:35:56 testmail postfix/master[7107]: warning: /usr/lib/postfix/qmgr: bad command startup -- throttling
Aug 24 07:36:55 testmail postfix/pickup[10047]: fatal: /etc/postfix/mysql_transport_maps.cf, line 2: missing '=' after attribute name: "mysql_transport_maps.cf"

Se alguem puder ajudar

[57] Comentário enviado por rootkit em 24/08/2007 - 12:56h

agimenez: aparentemente a senha que você está informando está incorreta, tente verificar se está digitando a senha certa;

hcs2007: faça o que o arquivo de log diz: adicione no arquivo /etc/postfix/mysql_transport_maps.cf na linha 2 um caracter =

[58] Comentário enviado por agimenez em 27/08/2007 - 11:52h

rootkit, valeu, mas não consegui, o que tentei fazer e deu certo foi;
entrei no msyql como root e fiz a seguinte alteração;

update mysql.user set password=password('SENHA') where user = 'postfix' and host='localhost';

flush privileges;

[59] Comentário enviado por agimenez em 28/08/2007 - 15:24h

Pessoal,

problemas para testar o maildrop:

cat /etc/lilo.conf| maildrop -d usuario.silva@dominio1.com.br
maildrop: Invalid user specified.

Já alterar o arquivo "/etc/maildropmysql.config" a linha
"socket /var/lib/mysql/mysql.sock" para "/var/run/mysqld/mysqld.sock" e tb já recompilar o maildrop..

Continua dando o mesmo erro... alias no teste: maildrop -v

da essa mensagem;

maildrop 2.0.2 Copyright 1998-2005 Double Precision, Inc.
GDBM extensions enabled.
Courier Authentication Library extension enabled.
Maildir quota extension enabled.
This program is distributed under the terms of the GNU General Public
License. See COPYING for additional information.

Alguém poderia me ajudar??

[60] Comentário enviado por rootkit em 28/08/2007 - 19:12h

agimenez,

no resultado do seu maildrop -v, ele mostra que não tem suporte ao MySQL, você seguiu as instruções como recomendadas no artigo ? Tenta recompilar ele.

No teste com o maildrop, se o suporte ao MySQL não estiver ativado, ele não vai conseguir verificar no banco se o usuário existe, e realmente vai retornar esta mensagem de erro.

Um outro detalhe, é que se voce não tiver o dominio1.com.br cadastrado no seu servidor, ele também te retornará o mesmo erro.

Espero ter ajudado.

rootkit

[61] Comentário enviado por gzanatta00 em 08/09/2007 - 19:56h

para os amigos q estao patinando no:
cat /etc/lilo.conf| maildrop -d usuario.silva@dominio1.com.br
maildrop: Invalid user specified.

pegue a senha do usuario postfix, e tente logar, no meu caso
mysql -u postfix -psenha

se der erro , é a senha do postfix q ta errada... patinei bastante pra descobrir
depois vi q era so questao de logica.... qq o maildrop/postfix ira fazer... ira buscar o usuario q esta dentro do mysql....
se nao for este o problema...pode ter certeza q é alguma coisa entre Postfix <====> mysql q ta dando erro
pois ele nao encontra o usuario

recomentacao
entra:
mysql -u root -psenhadoroot

use mysql;
delete from user where User = 'postfix';

apos isso crie o usuario novamente

espero ter ajudado

[62] Comentário enviado por gzanatta00 em 08/09/2007 - 20:08h

verefiquem o usuario maildrop tbem

[63] Comentário enviado por rafanis em 18/10/2007 - 09:45h

Rootkit, estou tendo problemas no teste para enviar e-mail com anexo utilizando o nail. Ex.: nail -s "teste" -a /etc/maildrop-1.6.3.tar.bz2 teste.email@dominio1.com.br --> quando aperto enter ele não faz nada e nem gera nenhum log no /var/log/mail.log. Sabe o que pode estar acontecendo?!

[64] Comentário enviado por rafanis em 18/10/2007 - 13:12h

Qual pacote foi instalado nesse tutorial para rodar o comando mail?!

[65] Comentário enviado por dguss em 28/10/2007 - 21:27h

Um erro ao utilizar o tema Outlook:

ERROR (2): Invalid argument supplied for foreach() (/correio/folder_list.php:5)

Como proceder? Agradeço a ajuda

[66] Comentário enviado por lipecys em 24/01/2008 - 18:53h

Valew o artigo amigo, já foi pro meus favoritos.

[67] Comentário enviado por mbp em 02/02/2008 - 12:32h

Olá, na realização das configurações me esbarrei o POSTFIXADMIN, não consigo encontrar a versão utilizada no tutorial e a versão mais recente dele sugere tabelas diferentes das utilizadas no decorrer do tutorial. Gostaria que me enviassem a versão utilizada do POSTFIXADMIN (postfixadmin-2.1.0).

Antes de mais nada, agradeço.

Marlon Bernardes.
Pode enviar para marlonbernardes@gmail.com.

[68] Comentário enviado por emilioeiji em 24/03/2008 - 18:00h

Mto bom o Artigo...

Mas ainda estou patinando aqui

kvimail:~# cat /etc/passwd | maildrop -d teste@dominio1.com.br
Invalid user specified.

Estou utilizando o debian etch, já segui todas as dicas... mas o erro continua...

abraços

[69] Comentário enviado por carlosrfjunior em 11/04/2008 - 17:38h

Boa tarde!!!

Desinstalei o maildrop 2.0.2 e suas dependecias para usar a versão 1.6.3, mas quando executo o comando maildrop -v aparece a versão 2.0.2. Como posso resolver isso, estou usando Debian 4.0

[70] Comentário enviado por josinaldo em 14/05/2008 - 11:14h

Rootkit,

Terminei a configuração do serviço, mas na horaa de tentar o acesso via browser dar o seguinte retorno de erro: ERROR (2): Header may not contain more than a single header, new line detected. (/webmail/inc/inc.php:156).

Aguardo um retorno. Um abraço.

[71] Comentário enviado por dcyrillo em 14/05/2008 - 14:54h

Ao amigo acima: Já fez as correções conforme os comentários? Viu que tem que editar o arquivo inc.php e remover algumas linhas? Então, faz isso e segue direitinho que resolve.

Uma dica: quem quiser que funcione a criação do Maildir do usuário automaticamente, tem que copiar os dois scripts (adduser.sh e userdel.sh) para o /var/www e depois utilizar o visudo, adicionando as seguintes linhas:

visudo

Adicionar:

www-data ALL=NOPASSWD: /var/www/adduser.sh
www-data ALL=NOPASSWD: /var/www/userdel.sh

Abraço!

[72] Comentário enviado por josinaldo em 15/05/2008 - 10:32h

dcyrllo, exclui as seguintes linhas:

"Cache-Control: no-cache\r\n".
"Cache-Control: must-revalidate");

e acrescentei essa linha aqui:

Header("Expires: Wed, 11 Nov 1998 11:11:11 GMT";

como foi sugerido... Mas continua sem autenticar o usuário...

[73] Comentário enviado por carlosrfjunior em 15/05/2008 - 10:51h

<b>Mude de:</b>

Header("Expires: Wed, 11 Nov 1998 11:11:11 GMT\r\n".
"Cache-Control: no-cache\r\n".
"Cache-Control: must-revalidate");

<b>Mude Para:</b>

Header("Expires: Wed, 11 Nov 1998 11:11:11 GMT\r\n");
Header("Cache-Control: no-cache\r\n");
Header("Cache-Control: must-revalidate\r\n");
Header("Pragma: no-cache");

Carlos R F Júnior
Gestor de TI

[74] Comentário enviado por samuca18 em 26/05/2008 - 16:32h

amigos eu to tendo o seguinte problema na hora do teste de envio de e-mail

maildrop: Unable to open mailbox.

o que pode estar acontecendo? eu ja segui todos os passos já alterei a linha referente as authmysql. o que fazer agora?

[75] Comentário enviado por zorrex em 13/08/2008 - 23:45h

Pessoal, já compilei, recompilei, recompilei de novo... e nada
de jeito nenhum o maildrop se conecta ao mysql, setei no ./configure o --enabel-maildropmysql e o --enable-maildropquota e nada, nenhum dos dois habilita, alguma idéia do que pode ser?


[76] Comentário enviado por robertolink em 19/02/2009 - 10:24h

Amigo suas duas opção de downloads não acham arquivos nenhum.

# wget -c http://high5.net/postfixadmin/download.php?file=postfixadmin-2.1.0.tgz
# wget -c http://umn.dl.sourceforge.net/sourceforge/courier/maildrop-1.6.3.tar.bz2

[77] Comentário enviado por chcdc em 03/02/2010 - 11:54h

pessoal preciso de uma ajuda..


quando vou instalar as dependências do Perl com o Perl-CPAN.

ele começa a instalar e começa a aparecer a letra y

se eu cancelo aparece a mensagem
"yes -- NOT OK
Running make test
Can't test without successful make
Running make install
make had returned bad status, install seems impossible"


e se eu tentar instalar o modulo novamente aparece a seguinte mensagem:


"Running install for module Config::IniFiles
Running make for S/SH/SHLOMIF/Config-IniFiles-2.56.tar.gz
Is already unwrapped into directory /root/.cpan/build/Config-IniFiles-2.56
Has already been processed within this session
Running make test
Can't test without successful make
Running make install
make had returned bad status, install seems impossible"



quem puder ajudar eu agradeço
preciso desse servidor urgente

centos 5.3 - Postfix


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts