Gmail + Postfix = Relay SMTP Autenticado
Autor: Ensina Linux by Fábio Vieira | Publicado: 2012-07-21T10:02:00-03:00


Bom dia galera!



Estava precisando que meu Script de Monitoramento de Espaço em Disco enviasse e-mails de um cliente que não possui um servidor Linux dedicado para função.



Como o cliente não possuia IP Fixo para configurar um servidor de e-mails, decidi configurar o Postfix para enviar e-mail usando o SMTP do Gmail.



Vamos às configurações:





Instale os pacotes e dependências.# apt-get install libsasl2-2 libsasl2-modules sasl2-bin mutt postfix openssl





Depois de instalar os pacotes e dependências edite o arquivo/etc/default/saslauthd e altere a opção Start de “NO” para “YES”.# vi /etc/default/saslauthd





Feita a alteração reinicie o serviço.# /etc/init.d/saslauthd restart





Agora vamos entrar no diretório do Postfix.# cd /etc/postfix





Vamos salvar o arquivo original de configuração do Postfix.# mv main.cf main.cf.bkp





&nbsp;Agora vamos criar um novo:# vi main.cf&nbsp;





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





Agora vamos criar o arquivo generic dentro do diretório do Postfix /etc/postfix Para criar o arquivo:# vi generic





Este arquivo terá o seguinte conteúdo.



# Confs&nbsp;

root@servidor seuemail@gmail.com&nbsp;

root@servidor.localdomain seuemail@gmail.com





Onde servidor é o nome do computador. Pra saber o nome da máquina basta digitar o comando hostname.

Precisamos criar também o arquivo que contém usuário e senha da sua conta no Gmail. Este arquivo se chamará sasl_passwd Este também no mesmo diretório /etc/postfix

# nano sasl_passwd





Inserir o conteúdo:[smtp.gmail.com]:587 seuemail@gmail.com :suasenha





Precisamos agora criar os certificados que validam o servidor no Gmail. Antes de criar os certificados vamos criar um diretório chamado certs dentro de /etc/postfix&nbsp;

# mkdir certs





Depois de criado entrar neste diretório com o comando cd&nbsp;

# cd certs





Agora que estamos dentro do diretório certs rodar os três comandos nesta ordem:

1º comando:# openssl dsaparam 1024 -out dsa1024.pem



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



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





Depois de gerar os certificados vamos associar os arquivos com o comando:# postmap /etc/postfix/sasl_passwd;postmap /etc/postfix/generic;postmap /etc/postfix/main.cf





Terminamos as configurações, agora vamos reiniciar o serviço Postfix.# /etc/init.d/postfix restart





Vamos fazer o teste enviando e-mail via linha de comando.# echo “Teste Postfix” | mutt -s “teste de envio pelo console” e-mail@seuemail.com.br





Para ver os logs do servidor de e-mail Postfix basta usar este comando:# tail -f /var/log/mail.log





Se aparecer nos logs algo informando que não existe o arquivos aliases.db basta rodar estes comandos:# cd /etc # newaliases





Espero ter colaborado.






Abraços,

Fábio Vieira
System and Network Admin Linux and Windows

E-mail: ensinalinux@gmail.com
Website: www.winlinuxtecnologia.com
Tel.: (41) 9893-870