Página Inicial > Linux, Tutoriais > Instalando Postfix com MySQL (Debian) – Parte 03

Instalando Postfix com MySQL (Debian) – Parte 03

Até aqui ja configuramos bastante coisa. Na parte 02, você aprendeu a configurar o servidor SMTP a autenticar-se com os usuários no MySQL. Agora vamos fazer a instalação do servidor POP3/IMAP e também aprender como adicionar os usuários para poderem receber e ler os e-mails.

Como este tutorial também ficou grande, para ler, clique no link a seguir.

Para conseguirmos terminar este tutorial, precisamos instalar os pacotes abaixo:
# aptitude install courier-authdaemon courier-authmysql courier-pop courier-pop-ssl courier-imap courier-imap-ssl

1º Passo, configurando o servidor POP3/IMAP:

Vamos editar o arquivo /etc/courier/authdaemonrc e inserir na linha authmodulelist a diretiva authmysql, ficando assim:

authmodulelist="authmysql"

Vamos editar o arquivo /etc/courier/authmysqlrc e inserir as seguintes informações:

MYSQL_SERVER localhost
MYSQL_USERNAME postfix
MYSQL_PASSWORD senha-que-especificou-para-o-usuario-postfix
MYSQL_PORT 0
MYSQL_DATABASE postfix
MYSQL_USER_TABLE usuarios
#MYSQL_CRYPT_PWFIELD (<strong>comente essa linha</strong>)
MYSQL_CLEAR_PWFIELD senha
MYSQL_UID_FIELD 8500
MYSQL_GID_FIELD 8500
MYSQL_LOGIN_FIELD email
MYSQL_HOME_FIELD "/home/gmail"
#MYSQL_NAME_FIELD (<strong>comente essa linha</strong>)
MYSQL_MAILDIR_FIELD CONCAT(SUBSTRING_INDEX(email,'@',-1),'/',SUBSTRING_INDEX(email,'@',1),'/')

Pronto, nosso servidor POP3/IMAP ja está configurado.

Para testar se tudo está funcionando corretamente, faça uma conexão telnet com o pop3 executando o seguinte comando: telnet localhost pop3 (isso se você estiver na mesma máquina.
O resultado deverá ser o seguinte: +OK Hello there.
Caso a mensagem seja de falha, revise o tutorial e suas configurações.

Inserindo usuários/senhas e domínios adicionais no banco de dados

Inserindo os domínios virtuais adicionais

Como eu disse na parte 01 do tutorial, o domínio principal não precisa ser adicionado na tabela de domínios adicionais, no entanto, caso você queira gerenciar mais domínios, será necessários adicioná-los aqui, como também fazer o apontamento correto dos MX no domínio (isso só abordarei se acharem que é necessário).

Para inserir os domínios virtuais adicionais, digite o seguinte no seu console MySQL:

INSERT INTO `dominios` (`dominio`) VALUES ('dominiovirtualadicional.com.br');

Inserindo os usuários/senhas no banco de dados

Para inserir os usuários é simples também, basta digitar o seguinte no seu console MySQL:

Para o dominio principal:

INSERT INTO `usuarios` (`email`,`senha`) VALUES ('conta@dominio.com.br','senhadousuario');

Para os dominios virtuais adicionais:

INSERT INTO `usuarios` (`email`,`senha`) VALUES ('conta@dominiovirtualadicional.com.br','senhadousuario');

Fazendo redirecionamento de e-mails

Sim, você pode fazer redirecionamento de e-mails também!
Para isso digite no console MySQL o seguinte:

Para o domínio principal:

INSERT INTO `redirecionamentos` (`alias`,`destino`) VALUES ('redir@dominio.com.br','seuemail@email.com');

Para os domínios adicionais:

INSERT INTO `redirecionamentos` (`alias`,`destino`) VALUES ('redir@dominiovirtualadicional.com.br','seuemail@email.com');

Instalando e configurando o webmail

Para conseguirmos terminar este tutorial, precisamos instalar o pacote abaixo:
OBS: Para isso, você deverá ter o Apache instalado e configurado!

# aptitude install squirrelmail

Após termos o Squirrel instalado vamos digitar o seguinte:

ln -s /etc/squirrelmail/apache.conf /etc/apache2/conf.d/squirrelmail.conf

Agora configure as opções básicas do Squirrel digitando o comando abaixo:

squirrelmail-configure

Pronto, você poderá acessar seu webmail pelo endereço: http://localhost/squirrelmail.
O usuário e senha será o que você criar pelo MySQL para acessar.

Comandos telnet a serem digitados para criar a mailbox inicial

Entre por telnet no seu servidor digitando:

telnet nomedoservidor 25

Abaixo, veja na tabela a ordem das mensagens que apareceram e o que precisará ser digitado. Siga exatamente como está neste arquivo. Clique aqui para ver.

Após digitar o conteúdo da tabela acima diretamente por telnet, dê uma olhada no log do postfix e veja se o conteúdo é como o abaixo:

Jul 24 21:48:28 myserver postfix/smtpd[9119]: connect from nomedoservidor[127.0.0.1]
Jul 24 21:48:48 myserver postfix/smtpd[9119]: F2C1B47BD: client=nomedoservidor[127.0.0.1]
Jul 24 21:48:52 myserver postfix/cleanup[9144]: F2C1B47BD: message-id=<20040724194842.F2C1B47BD@nomedoservidor>
Jul 24 21:48:52 myserver postfix/qmgr[9117]: F2C1B47BD: from=, size=313, nrcpt=1 (queue active)
Jul 24 21:48:52 myserver postfix/virtual[9148]: F2C1B47BD: to=, relay=virtual, delay=10, status=sent (delivered to maildir)

Caso em “status” esteja como sent (status=sent (delivered to maildir)), o e-mail foi entregue corretamente. Então digite o comando find /home/gmail e a listagem de diretórios e arquivos deverá se parecer com esta:

/home/gmail/dominio.com.br
/home/gmail/dominio.com.br/conta
/home/gmail/dominio.com.br/conta/tmp
/home/gmail/dominio.com.br/conta/cur
/home/gmail/dominio.com.br/conta/new
/home/gmail/dominio.com.br/conta/new/1114511715.V801I7400b.nomedoservidor

Apareceu tudo como escrevi? Então o diretório está criado! Agora o passo é configurar seu cliente para acessar a caixa de e-mail para receber e enviar os e-mails. O usuário neste caso é conta@dominio.com.br e a senha é senhadousuario.

As possibilidades com esse tutorial são ilimitadas. Você pode utilizar somente para acesso próprio, pode oferecer um webmail, pago ou grátis, para os seus amigos, visitantes e etc. O que você precisa é criar um formulário que faça a inserção dentro do banco de dados, assim, os visitantes ou você mesmo poderá cadastrar as contas sem ter de usar o console MySQL.

Então, chegamos ao fim deste tutorial. Espero que tenham gostado e que consigam configurar vários servidores de e-mail Postfix utilizando o MySQL onde pretenderem!

Categories: Linux, Tutoriais Tags: , ,
  • Juarez
    Lincoln,

    Essa parte de inserir usuários não existe uma forma mais "amigável", talvez pelo postfix ou parte gráfica, pq não sei usar corretamente o mysql e fico com receio de inserir alguma informação incorreta
  • @ Juarez:

    Há sim, é como eu disse em pouquinho em cima.
    Só criar um formulário em php que faça a inserção dos dados no MySQL.
    Assim que eu chegar em casa, se sobrar um tempinho, monto um pequeno formulário que insira estes dados e compartilho aqui.

    Abraço.
  • elson
    Ola Boa Noite,

    Segui passo a passo o tutorial mas não consigo enviar e-mail em uma estação usando o oultlook aparece a seguinte mensagem o servidor smtp não responde pode ser algun firewall do linux, essa estação não usa internet precisa de internet nessa estação?

    muito obrigado.
  • @ elson:

    A estação e o servidor estão na mesma rede?

    Se estiverem, não precisa de internet, mas sim de rede local. Dá uma olhada se não tem firewall na máquina travando o acesso na porta 110 (POP) e na porta 25 (SMTP).

    Abraços.
  • thiagobraga
    Meu querido,
    eu tento fazer logon pelo outlook ele da o seguinte erro no server:
    Jun 12 16:26:54 teste pop3d-ssl: Connection, ip=[::ffff:192.168.0.26]
    Jun 12 16:26:55 teste pop3d-ssl: LOGIN FAILED, user=thiago@teste.com.br, ip=[::ffff:192.168.0.26]
    Jun 12 16:27:00 teste pop3d-ssl: Unexpected SSL connection shutdown.
    Jun 12 16:27:00 teste pop3d-ssl: Disconnected, ip=[::ffff:192.168.0.26]

    o que pode ser isso?
    abraços!
  • @ thiagobraga:

    Tente fazer o seguinte como root:
    mkdir /var/run/courier && chown courier:courier /var/run/courier

    Reinicie o courrier e veja se o problema vai continuar.

    Qualquer dúvida, fala aí! :)
  • elson
    Boa Noite amigo

    ja fiz vario teste mas não consigo fazer o outlook conectar toda hora fica pedido senha e não autentica o pop e smtp apararece uma mensangen o servidor samtp não responde, vc tem ideia o que pode ser isso esse numero de ip que vc diz 127.0.0.1 e numero é default o tem que ser o ip da minha rede, e na configuração do courier o arquivo authmysqlrc e tenho que apagar todo couteudo e deixar do jeito que vc descreve no tutorial, no linux o iptables pode esta bloqueado as portas de conexão.

    cara muito obrigado e desculpa o transtorno.
  • thagobraga
    elson,
    meu querido, o courier está com o seguinte erro quando tento reiniciar...

    Starting Courier authentication services: authdaemond/etc/courier/authdaemonrc: line 104: MYSQL_SERVER: command not found
    /etc/courier/authdaemonrc: line 105: MYSQL_USERNAME: command not found
    /etc/courier/authdaemonrc: line 106: MYSQL_PASSWORD: command not found
    /etc/courier/authdaemonrc: line 107: MYSQL_PORT: command not found
    /etc/courier/authdaemonrc: line 108: MYSQL_DATABASE: command not found
    /etc/courier/authdaemonrc: line 109: MYSQL_USER_TABLE: command not found
    /etc/courier/authdaemonrc: line 111: MYSQL_CLEAR_PWFIELD: command not found
    /etc/courier/authdaemonrc: line 112: MYSQL_UID_FIELD: command not found
    /etc/courier/authdaemonrc: line 113: MYSQL_GID_FIELD: command not found
    /etc/courier/authdaemonrc: line 114: MYSQL_LOGIN_FIELD: command not found
    /etc/courier/authdaemonrc: line 115: MYSQL_HOME_FIELD: command not found
    /etc/courier/authdaemonrc: line 117: syntax error near unexpected token `('
    /etc/courier/authdaemonrc: line 117: `MYSQL_MAILDIR_FIELD = CONCAT(SUBSTRING_INDEX(email,.@',-1),./',SUBSTRING_INDEX(email,.@',1),./')'


    eu não entendi... lá emcima no tutorial, ele manda eu ADICIONAR as linhas, mas eu não sei se é pra apagar.. e colocar isso entendeu?
    abraços!
  • @ elson:

    Bom dia!

    O servidor que você montou está no mesmo computador que você está usando pra tentar conectar?
  • @ thagobraga:

    Você precisa remover as linhas somente se estas já existirem no arquivo...
    Se elas ja existirem, você as substitui por essas que estão aqui no blog.

    De qualquer forma, esses erros que estão aparecendo é porque você inseriu no arquivo errado. No arquivo /etc/courier/authdaemonrc você vai procurar a linha authmodulelist e colocar somente authmysql, ficando assim: authmodulelist="authmysql".

    Já no arquivo /etc/courier/authmysqlrc você vai colocar as linhas que estão lá no blog. Toma cuidado com as aspas... Experimente digitar manualmente ao invés de copiar e colar...
  • elson
    não estou tentado conectar de uma estação.
  • @ elson:

    Qual o IP dessa estação e qual o IP de onde instalou o servidor?
  • elson
    IP servidor 192.168.0.100 IP estação 192.168.0.101
  • @ elson:

    Então da estação você precisa colocar que o POP e o SMTP são 192.168.0.100.
    Agora você tem que olhar se o firewall do servidor não está bloqueando né...
  • elson
    A nossa pagina de internet fica hospedada na locaweb é preciso fazer alguma configuração adicional revisei minhas configurações estão corretas do deixo do tutorial mas não comunica pode ser a locaweb bloqueado o acesso?


    valeu obrigado.
  • thiago braga
    Meu querido a minha dúvida é o seguinte:
    como configuro o outlook pra essa solução?
    Desde já fico agradecido!


    abs!
  • thiago braga
    só pra constar o erro que dá no log é esse


    Oct 7 10:53:29 iaweh courierpop3login: Connection, ip=[::ffff:192.168.0.26]
    Oct 7 10:53:29 iaweh courierpop3login: LOGIN FAILED, user=teste@iaweh.com.br, ip=[::ffff:192.168.0.26]
    Oct 7 10:53:29 iaweh courierpop3login: authentication error: Input/output error


    ele envia smtp mas não recebe pop..
    sabe o que pode ser?

    abração
    e obrigado desde já!
  • @ thiago braga:

    Bom dia,

    Dá uma olhada no arquivo de configuração do courier comunicando com o MySQL... pesquisei aqui e provavelmente o problema está neste arquivo... pessoas que tiveram esse erro, a linha onde fica a senha com o MySQL estava errada...

    Confere se a senha do MySQL está correta, se as aspas estão certas (o WordPress dependendo do tema converte as aspas comuns em aspas inglesas), se o usuário está criado e etc...
  • @ elson:

    A LocaWeb pode estar bloqueando o acesso externo...
    Muitas empresas de hospedagem fazem isso.

    Agora, o seu servidor de e-mails tem que ter um IP externo válido pra sua página na LocaWeb conseguir acessá-lo né... Assegure-se disso! :)
  • Paulo
    fiz tudo como no howto... o redireccionamento funciona bem e quando envio um email para uma conta, também... o email +e entregue na mailbox...

    o problema é quado tento fazer autenticação: nem por smtp, nem pop nem no squirrelmail: não reconhece usuários nem por nada...

    Testei em v+arias máquinas e nada...

    Sabe o que se podera estar a passar?

    Estou desesperado... há muito tempo que ando a tentar configurar o meu servidor de email e nada...
blog comments powered by Disqus