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/

17 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.
    ;)

Deixe seu Comentário