logoJulio Cardoso Tutoriais e Dicas


Enviando email do comsole usando Postfix Gmail com smtp-relay no ubuntu

Postado em Linux (OS) Network(Servidores) Por Julio em 2/06/08

Esse tutorial eu irei explicar como você pode enviar emails diretamente do console usando o postfix e o smtp do gmail.

Bem faz bastante tempo que eu venho querendo aprender sobre servidores de email, bem sempre tem sido difícil estudar a respeito dele , então consegui implementar uma configuração simples dele. na qual vou documentar aqui nesse tutorial,que pode servir para posterior lembrança minha e principalmente compartilhar conhecimento.

Então vamos começar.

Passos usados nesse Tutorial

  1. Instalar os Pacontes (Programas e dependências)
  2. Editar o arquivo /etc/postfix/main.cf
  3. Editar o arquivo /etc/postfix/generic
  4. Editar o arquivo /etc/postfix/sasl_passwd
  5. Criar os certificados no diretório /etc/postfix/certs/
  6. Usar o comando postmap para o postfix criar seu banco de dados padrão.
  7. Enviar um email pelo console para testar.
  8. Analizar o log para ver se deu tudo certo.

Primeiro vamos instalar os pacotes .

sudo apt-get install libsasl2-2 libsasl2-modules sasl2-bin mutt postfix openssl

Vamos entrar no diretório do postfix.

cd /etc/postfix

Vamos mover a conf padrão dele e criar uma vazia.

sudo mv main.cf main.cf-bkp

Cuidado para não criar um arquivo com espaço no final.

sudo touch main.cf

Vamos colocar esse conteúdo abaixo no arquivo main.cf.

sudo kate /etc/postfix/main.cf #para kde
sudo gedit /etc/postfix/main.cf #para gnome
sudo nano /etc/postfix/main.cf #para console

#SMTP relayhost
relayhost = [smtp.gmail.com]:587
## TLS Settings
smtp_tls_loglevel = 1
smtp_tls_CAfile = /etc/postfix/certs/CAcert.pem
smtp_tls_cert_file = /etc/postfix/certs/mycert.pem
smtp_tls_key_file = /etc/postfix/certs/mykey.pem
smtp_use_tls = yes
smtpd_tls_CAfile = /etc/postfix/certs/CAcert.pem
smtpd_tls_cert_file = /etc/postfix/certs/mycert.pem
smtpd_tls_key_file = /etc/postfix/certs/mykey.pem
smtpd_tls_received_header = yes
# configuracao tls
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options = noanonymous
smtp_sasl_tls_security_options = noanonymous
#alias de mapeamento interno para externo
smtp_generic_maps = hash:/etc/postfix/generic

Vamos criar o arquivo ” generic ” e vamos inserir o conteúdo abaixo.

sudo nano /etc/postfix/generic

Coloque esse conteúdo.

root@xjulio.info seulogin@gmail.com
root@c5-teste2.localdomain seulogin@gmail.com

Control + X para sair e depois S.

Vamos criar o arquivo .

/etc/postfix/sasl_passwd

sudo nano /etc/postfix/sasl_passwd .

E colocar esse conteúdo.

[smtp.gmail.com]:587 seulogin@gmail.com:suasenha

Então vamos criar os certificados .

Vamos criar o diretório dos certificados.

sudo mkdir /etc/postfix/certs/

Depois entrar nele.

cd /etc/postfix/certs/

Vamos criar os certificados .

Vamos mudar de usuário.

sudo bash

Depois.

# openssl dsaparam 1024 -out dsa1024.pem

Depois.

# openssl req -x509 -nodes -days 3650 -newkey dsa:dsa1024.pem -out mycert.pem -keyout mykey.pem;ln -s mycert.pem CAcert.pem

Depois.
# openssl req -x509 -new -days 3650 -key /etc/postfix/certs/mykey.pem -out /etc/postfix/certs/mycert.pem;rm dsa1024.pem

Agora vamos dar esse comando .

# postmap /etc/postfix/sasl_passwd;postmap /etc/postfix/generic;postmap /etc/postfix/main.cf

Vamos reiniciar o Postfix.

# /etc/init.d/postfix restart

Vamos Testar se ele está funcionando .

echo "segue a mensagem" | mutt -s "teste de envio pelo console" meuemail@xjulio.info

Olhe no log se deu tudo certo, caso ele acuse algum erro corrija de acordo com a mensagem.

kate /var/log/mail.log #no kde

gedit /var/log/mail.log #no gnome .

Ou usando o comando tail.

tail -f /var/log/mail.log

Referências .

http://pinguimribeiro.wikidot.com/postfix-relay

http://centosbr.org/site/howtos/howto.php?id=74

http://bookmarks.honewatson.com/2008/04/20/postfix-gmail-smtp-relay/

25 respostas para 'Enviando email do comsole usando Postfix Gmail com smtp-relay no ubuntu'

  1. Eduardo Coelho Diz:

    Funcionou 100%…tava a dois dias virando a net atras disso..obrigado!

  2. Fabio Alexandre Diz:

    Parabéns pelo tutorial, funcionou perfeitamente de acordo com as minhas necessidades.

  3. Cleber Diz:

    Oi, funcionou muito bem seu tutorial, Julio. Parabéns.
    Mas tenho uma dúvida que não consegui resolver:
    Quando tenho 2 ou mais contas do GMail, recebo os emails normalmente mas quando envio por qualquer uma delas, o destinatário sempre sai como o inserido no arquivo sasl_passwd.
    Tem como fazer com que cada remetente envie com seu próprio endereço de EMail?
    Muito obrigado.
    Cleber.

  4. Daniel Masina Diz:

    Show de bola! Excelente tutorial! ;)

  5. Filipe Barreto Diz:

    Excelente tutorial.
    Tenho a mesma dúvida que o Cleber… Se alguem souber a resposta, ficarei muuuito agradecido.

  6. erick Diz:

    Belo tutorial cara…muito obrigado.

  7. Breno Alves Diz:

    cara, vc salvou a minha vida!

    hehhee

    me add no msn breno@strondabh.com.br

    vamos manter contato sempre preciso de ajudas.

    falow

  8. Cássio Jose de Jesus Diz:

    Julio,

    Funcionou perfeitamente, e veio como uma luva para mim, pois estou a tempos para fazer isso.

    Vou até tomar a liberdade de publicar isso no meu site.

    Valu pela dica.

  9. rui Diz:

    Ola,
    Vcs não tiverem nenhum problema?
    É que eu não estou a conseguir..

    Penso que modifiquei o necessario mas no log me aparece o seguinte: “certificate verification failed”

    Apr 20 14:20:46 pubuntu postfix/smtp[4602]: certificate verification failed for smtp.gmail.com[74.125.79.109]:587: untrusted issuer /C=ZA/ST=Western Cape/L=Cape Town/O=Thawte Consulting cc/OU=Certification Services Division/CN=Thawte Premium Server CA/emailAddress=premium-server@thawte.com

    Esta msg não apareceu no vc micro??

    Muito obrigado pela ajuda

    Sim aparece, mas mesmo assim a conexão passa por ssl , esse erro não influencia em nada abraços

  10. rui Diz:

    Ja consegui.
    Obrigado pela ajuda e pelo tutorial (y).

  11. Leonardo Pinto Diz:

    Pow cara, olha que conheço algumas coisas em linux, mas a anos tento encontrar um howto SIMPLES como esse e EFICÁS… Ficava sempre a catar por aí um provedor para relay que não exigisse certificados somente para não ter que encarar esse processo, mas você sintetizou bastante. PARABÉNS, foi muito prático e funcional.

    PS: E olhe que usei no CentOS 5.3

    Vida longa!!!

  12. Julio Cesar Diz:

    Realmente seu hownto é muito bom , me ajudou muito mesmo

    Obrigado!!!!

  13. daniel Diz:

    Nossa o envio de email funcionou 100%

    Valeu mesmo!

    A única coisa, é que uso o Mandriva aqui, e o log fica separado:

    bash-3.2# leafpad /var/log/mail/info.log
    bash-3.2# leafpad /var/log/mail/errors.log
    bash-3.2# leafpad /var/log/mail/warnings.log

    como não havia nada em errors.log, fui para caixa de email e hehe tava la :) tnx

  14. Adriano Diz:

    Boa tarde Júlio, venho lhe pedir permissão para mensionar seu blog em um post que estou criando. Posso deixar lá o link para a pessoa configurar o servidor de envio?
    Estou fazendo um post sobre backup programado com envio no email….

    qualquer coisa me mande uma resposta… Abraços velho

    até mais

    Pode sim fique a vontade, abraços

  15. Vinidog Diz:

    Show de bola!!!

    Valew ;-)

  16. Luis Diz:

    Já estou a uma semana tentando usar isso… so que em vez de mandar pro google era pro servidor de e-mails da empresa… vc resolveu meu problema vlw!

  17. Guilherme Arthur Diz:

    Cara, afuder!
    Ajudou pacas.
    ;)

  18. Márcio Rezende Diz:

    Receitinha de ouro !!!
    Valeu muito Sr. Julio !

  19. leandro Diz:

    O meu deu o seguinte erro. pode me ajudar? postfix/error[11990]: B72F14D88A: to=, relay=none, delay=0.11, delays=0.08/0/0/0.02, dsn=4.3.0, status=deferred (mail transport unavailable)

    Obrigado pela ajuda.

  20. Jacenir Freitas Diz:

    Estava quase louco tentando configurar o postfix, e agora descubro esta mina de ouro…Muito obrigado por compatilhar!!!

    Configurado e funcionando Perfeitamente.

    Excelente trabalho.

    Muito, muito obrigado mesmo.

    Abraços.

  21. abuzato Diz:

    Muito bom esse material.
    Só tô com umas duvidas :
    - No debian lenny seria basicamente os mesmos passos ou tem alguma diferença ?
    - Posso usar alguma conta diferente do gmail como eu@minhaempresa.org.br ?

    Olá , Sim é compativel com as versões mais novas do debian . Sim pode usar qualquer domínio .

  22. gtorresit Diz:

    Amigo funcionou certinho aqui comigo…

    uma dúvida somente… se eu for usar uma e-mail do terra por exemplo é só trocar o smtp do gmail p/ o smtp do terra ou precisar trocar tambem a porta 587?

    obrigado e muito bom tuto amigo …

    Sim basta mudar os dados de acordo com a configuração do seu provedor . Abraços Julio

  23. abuzato Diz:

    Julio, tô com um probleminha .
    Dou esses comandos e roda sem erros :
    openssl dsaparam 1024 -out dsa1024.pem
    openssl req -x509 -nodes -days 3650 -newkey dsa:dsa1024.pem -out mycert.pem -keyout mykey.pem;ln -s mycert.pem CAcert.pem

    Mas quando dou este :
    openssl req -x509 -new -days 3650 -key /etc/postfix/certs/mykey.pem -out /etc/postfix/certs/mycert.pem;rm dsa1024.pem

    Depois de preencher os campos ele retorna :

    Country Name (2 letter code) [AU]:BR
    State or Province Name (full name) [Some-State]:Sao Paulo
    Locality Name (eg, city) []:Piracicaba
    Organization Name (eg, company) [Internet Widgits Pty Ltd]:Semae
    Organizational Unit Name (eg, section) []:TI
    Common Name (eg, YOUR name) []:Amelio
    Email Address []:abuzato@semaepiracicaba.org.br
    /etc/postifix/certs/mycert.pem: No such file or directory
    15119:error:02001002:system library:fopen:No such file or directory:bss_file.c:352:fopen(‘/etc/postifix/certs/mycert.pem’,'w’)
    15119:error:20074002:BIO routines:FILE_CTRL:system lib:bss_file.c:354:

    Na pasta certs ele tem criado o CAcert.pem, o mycert.pem e o mykey.pem .
    O que pode ser ??
    Cria o arquivo vasio e dê permissão, esse erro é de permissão. Abraços Julio

  24. Ricardo Diz:

    Valeu cara, muito obrigado. Parabéns pelo tutorial.

  25. Ricado Diz:

    Cara.. no caso isso funciona somente para enviar..
    tem como fazer o postfix baixar as mensagens (do google) para o servidor?
    Esse post está relacionado somente a relay de smtp . abraços Julio

Deixe seu Comentário