Envio de emails do console usando Postfix+Gmail com SMTP-RELAY

De Wiki Hackstore

Configurando o Postfix

Compile o postfix:

echo "mail-mta/postfix berkdb pam sasl ssl" >> /etc/portage/package.use
emerge postfix


Inicie o sasl_auth:

/etc/init.d/saslauthd start
rc-update add saslauthd default

Configure o postfix:

vi /etc/postfix/main.cf

Adicione as seguintes linhas no fim do arquivo:

#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 -f

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 para finalizar, configure o alias do root:

echo "seulogin@gmail.com" > /root/.forward

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/messages

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


Pronto, já pode enviar emails autenticados. :D


Referências:

http://www.mktecnologia.net.br/index.php?option=com_content&view=article&id=14:enviando-emails-do-console-usando-postfix-gmail-com-smtp-relay&catid=3:servidores&Itemid=6