Enviando email do comsole usando Postfix Gmail com smtp-relay no ubuntu
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
- Instalar os Pacontes (Programas e dependências)
- Editar o arquivo /etc/postfix/main.cf
- Editar o arquivo /etc/postfix/generic
- Editar o arquivo /etc/postfix/sasl_passwd
- Criar os certificados no diretório /etc/postfix/certs/
- Usar o comando postmap para o postfix criar seu banco de dados padrão.
- Enviar um email pelo console para testar.
- 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/

21/07/08 às 6:18
Funcionou 100%…tava a dois dias virando a net atras disso..obrigado!
25/11/08 às 10:17
Parabéns pelo tutorial, funcionou perfeitamente de acordo com as minhas necessidades.
19/12/08 às 22:18
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.
30/01/09 às 13:07
Show de bola! Excelente tutorial!
27/02/09 às 15:27
Excelente tutorial.
Tenho a mesma dúvida que o Cleber… Se alguem souber a resposta, ficarei muuuito agradecido.
5/03/09 às 14:58
Belo tutorial cara…muito obrigado.
7/03/09 às 18:49
cara, vc salvou a minha vida!
hehhee
me add no msn breno@strondabh.com.br
vamos manter contato sempre preciso de ajudas.
falow
12/03/09 às 17:37
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.
20/04/09 às 15:42
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
21/04/09 às 6:54
Ja consegui.
Obrigado pela ajuda e pelo tutorial (y).
30/06/09 às 0:24
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!!!
19/07/09 às 12:19
Realmente seu hownto é muito bom , me ajudou muito mesmo
Obrigado!!!!
5/08/09 às 3:00
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
17/08/09 às 15:58
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
26/08/09 às 1:50
Show de bola!!!
Valew
23/09/09 às 11:51
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!
7/01/10 às 0:41
Cara, afuder!

Ajudou pacas.