terça-feira, 19 de julho de 2011

Enviando Emails do console usando Postfix-Gmail com SMTP-RELAY



Fonte: www.xjulio.info/blog/enviando-email-do-comsole-usando-postfix-gmail-com-smtp-relay-no-ubuntu
Autor: Julio Cadorso



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, sempre tem sido difícil estudar a respeito dele, então consegui implementar uma configuração simples. na qual vou documentar aqui nesse tutorial, que pode servir para posterior lembrança minha e principalmente para compartilhar o conhecimento. Então vamos começar. Passos usados nesse Tutorial

  1. Instalar os Pacotes (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:


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

Após instalar tudo edite o seguinte arquivo /etc/default/saslauthd e altere a opção start de "NO" para "YES"

Feito a alteração reinicie o serviço

#/etc/init.d/saslauthd restart

Agora vamos entrar no diretório do Postfix:

cd /etc/postfix

Vamos mover a configuração original do postfix (Caso exista):

#mv main.cf main.cf-bkp

Vamos colocar o conteúdo abaixo em um novo main.cf

#vi /etc/postfix/main.cf

Copie e cole o conteúdo abaixo

#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 descobrir o hostname de seu servidor, digite o seguinte comando:

#hostname

O resultado do comando você usa no arquivo generic. Vamos supor que o hostname seja servidor. Vamos agora criar o arquivo "generic":

#vi /etc/postfix/generic

E inserir o conteúdo abaixo.

root@servidor seulogin@gmail.com
root@servidor.localdomain seulogin@gmail.com

Vamos criar o arquivo sasl_passwd:

#vi /etc/postfix/sasl_passwd

E colocar o seguinte conteúdo:

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

  • Criando os certificados

Vamos criar o diretório dos certificados:

#mkdir /etc/postfix/certs/

Depois...

cd /etc/postfix/certs/

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...

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

E finalmente:

#/etc/init.d/postfix restart

Vamos testar se ele está funcionando enviando um e-mail de teste...

#echo "segue a mensagem" | mutt -s "teste de envio pelo console" email_qualquer@dominio.com.br

Olhe no seus logs se tudo correu bem, caso ele acuse algum erro corrija conforme a mensagem:

#tail -f /var/log/mail.log

Caso no log apareça algo relacionado a não existir o arquivo aliases.db basta seguir os passos abaixo para resolver o problema:

#cd /etc
#newaliases

Nenhum comentário:

Postar um comentário