Bom pessoal, neste post vou abordar a instalação e configuração de um SMTP Relay no Postfix utilizando como servidores de e-mail, Gmail e o Hotmail. O Postfix é um dos servidores de e-mail mais utilizado no mundo e o seu suporte e utilização são estáveis. Porque estou abordando este assunto? é pelo seguinte cenário. Existem algumas aplicações que não possuem suporte nativo para envio de e-mail com tls e ssl. Nisso utilizar um servidor de SMTP Relay para enviar as mensagens para ele facilita nosso gerenciamento e com o Postfix isso se torna viável pois ele irá agir simplesmente encaminhando as mensagens que forem enviadas para ele, conforme configurado.Vamos ao hands-on.
1. Instalação do Postfix no Debian 6
# apt-get install postfix libsasl2-2 ca-certificates libsasl2-modules
2. Configurando o Postfix
Inicialmente o postfix vêm com suas configurações zeradas, nisso você terá que criar o arquivo /etc/postfix/main.cf com as configurações do servidor de e-mail que irá utilizar.
Configuração do main.cf para Gmail:
relayhost = [smtp.gmail.com]:587
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options = noanonymous
smtp_tls_CAfile = /etc/ssl/certs/ca-certificates.crt
smtp_use_tls = yes
relayhost = [smtp.live.com]:587
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options = noanonymous
smtp_tls_CAfile = /etc/ssl/certs/ca-certificates.crt
smtp_use_tls = yes
O próximo passo é definirmos a configuração de usuário e senha no Gmail ou Hotmail. Primeiramente teremos que criar o arquivo /etc/postfix/sasl_passwd e depois configurar de acordo com o servidor de e-mail.
# touch /etc/postfix/sasl_passwd
Editando o arquivo /etc/postfix/sasl_passwd , vamos configurar o mesmo para utilizar o Gmail ou Hotmail :
Gmail:
[smtp.gmail.com]:587 user.name@gmail.com:password
Hotmail:
[smtp.live.com]:587 user.name@hotmail.com:password
Este arquivo /etc/postfix/sasl_passwd deve ter acesso restrito no Linux então precisamos alterar suas permissões e depois gerar um arquivo .db que o Postfix irá ler.
# chmod 400 /etc/postfix/sasl_passwd
# postmap /etc/postfix/sasl_passwd
Pronto agora que seu Postfix está configurado, vamos fazer o Postfix reler as configurações para utilizamos ele como SMTP Relay.
# /etc/init.d/postfix reload
Agora é só testarmos e verificar se está tudo funcionando. Para debugar e verificar o funcionamento do Postfix verique o arquivo de log /var/log/mail.log , segue abaixo um método para debugar este arquivo:
# tail -f /var/log/mail.log
Bom pessoal, para facilitar a configuração vou disponibilizar as configurações do Gmail e Hotmail para download, segue abaixo:
Gmail:
Hotmail:
Também estarei disponibilizando um Cliente de E-mail simplificado para windows para efetuar os testes, segue abaixo:
SMTP Tester:
Bom pessoal, espero que o post possa ter ajudado quem esteja procurando uma solução de SMTP Relay para Plataforma Linux de forma fácil e prática. Qualquer dúvida sobre o post, favor comentar para que possa ajudar. Que a Graça e Paz estejam com todos.
Emerson,
ResponderExcluirFiz o PostFix com conta da msn.com e gmail.com funcionaram perfeitamente, porém utilizando um ferramenta comum como GLPI com email´s do Live Edu da Microsoft no caso o dominio utilizado é fsl.edu.br, não consigo enviar email´s, faço teste com aquele testador funciona bacana, já com email live edu não no GLPI ou qualquer outra ferramenta PHP Mailer acredito, testei no moodle também não vai, alguma dica ?
Bruno,
ResponderExcluirVocê tem uma conta de testes do Live Edu para que possa estar te ajudando na configuração do Postfix? Estou te sugerindo isso para poder debuggar o que está acontecendo e pode identificar aonde está o problema. Encaminhe os dados no meu e-mail emerson.fender@gmail.com , agradeço a compreensão.
muito bom o post, facilimo de mais parabens
ResponderExcluirMeu amigo, estou com problemas. Fiz Passo a Passo da forma que foi mostrada, porem nao esta enviando.
ResponderExcluirUtilizo o Sistema GLPI para HelpDesk aqui da empresa, quando faço o teste no mesmo, ele diz que foi enviado o email para o administrador, so que na verdade nenhum email é enviado.
Olá, tudo funcionou certinho!
ResponderExcluirExiste a possibilidade de "mascarar" o remetente pra ficar diferente do usuário que se autentica no Gmail?
Ou seja, não quero que os destinatários recebam os e-mails que tem como remetente o usuario que está no arquivo /etc/postfix/sasl_passwd.
Att,
Parabéns pelo post.
ResponderExcluirMuito bem explicado.
Att.
Nota mil... Parabéns!!!
ResponderExcluirSucesso Gaudencio...
Belo Post!
ResponderExcluirEstava a Procura disto a um tempo, muito bom se encaixa perfeitamente as minha necessidades.
Parabéns Amigo.
Edvaldo,
ExcluirObrigado por visitar o Blog, que bom ajudou.
Grande Abraço.
Boa Tarde, estou tendo o problema de ter que enviar email de minha aplicação para os usuários, só que são + ou - 1000 emails por dia, utilizo o gmail para serviço de email e ele limita há 250 por dia, como configuro um servidor postfix só para minha aplicação autenticar e enviar os emails por ele ?
ResponderExcluirBoa tarde Pedro,
ExcluirNeste post, está explicando como faz para implementar a instalação e configuração do postfix para autenticar com gmail e outlook, nisso peço que seja um pouco mais específico naquilo que precisa, para que possa te ajudar. Outra pergunta é qual a linguagem que sua aplicação foi desenvolvida? para que possa te ajudar em fonte para utilizar como exemplo.
Att,
Emerson
Boa tarde Emerson! Por favor, pode me ajudar com minha instalação? Está dando erro e não consegui fazer funcionar
ResponderExcluirBoa Tarde William,
ExcluirEm qual etapa está dando problema? Instalação, Configuração ? Pode especificar para que possa te ajudar melhor. Se tem algum log de erro, Pode informar o log aqui nos comentários para auxilia-lo na resolução do problema.
Att,
Emerson
Erro Mensagem: Falha ao enviar email. || Erro Stack Trace: em System.Net.Mail.SmtpClient.Send(MailMessage message)
Excluirem TestaSmtp.Form1.btnTestar_Click(Object sender, EventArgs e)
segue como está meu main.cf:
Excluir# See /usr/share/postfix/main.cf.dist for a commented, more complete version
# Debian specific: Specifying a file name will cause the first
# line of that file to be used as the name. The Debian default
# is /etc/mailname.
#myorigin = /etc/mailname
smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)
biff = no
# appending .domain is the MUA's job.
append_dot_mydomain = no
# Uncomment the next line to generate "delayed mail" warnings
#delay_warning_time = 4h
readme_directory = no
# TLS parameters
smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
smtpd_use_tls=yes
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
# See /usr/share/doc/postfix/TLS_README.gz in the postfix-doc package for
# information on enabling SSL in the smtp client.
smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination
myhostname = JKSMTPRELAY01.grupoest____al.com.br
mydomain = grupo____ural.com.br
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = /etc/mailname
mydestination = grupo____l.com.br, JKSMTPRELAY01, localhost.localdomain, localhost
relayhost = [pod51028.outlook.com]:587
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 10.1.0.0/24
mailbox_command = procmail -a "$EXTENSION"
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = loopback-only
inet_protocols = all
smtpd_sasl_local_domain =
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
broken_sasl_auth_clients = yes
smtpd_recipient_restrictions = permit_sasl_authenticated, permit_mynetworks, reject_unauth_destination
smtpd_tls_auth_only = no
smtp_use_tls = yes
smtp_tls_note_starttls_offer = yes
smtpd_tls_CAfile = /etc/postfix/ssl/cacert.pem
smtpd_tls_loglevel = 1
smtpd_tls_received_header = yes
smtpd_tls_session_cache_timeout = 3600s
#smtpd_tls_cert_file = /etc/postfix/ssl/smtpd.crt
#smtpd_tls_key_file = /etc/postfix/ssl/smtpd.key
#smtpd_tls_session_cache_database = btree:${queue_directory}/smtpd_scache
#smtp_tls_session_cache_database = btree:${queue_directory}/smtp_scache
tls_random_source = dev:/dev/urandom
OBS: COLOQUEI ALGUNS '_' PRA CORTAR PARTE DO TEXTO OK....
Boa noite,
ResponderExcluirGostaria muito de ter uma ajuda vossa, não tem muito haver com o que foi feito em cima.
Acontece que eu não consigo instalar o postfix no debian, o mesmo da a seguinte mensagem:
-----------------------------------------------------------------------------------------
O apcote postfix não está disponivl , mas é refenciado por outro pacote.
Isto pode significar que o pacote está falatando, ficou obsolento ou está disponível somente a partir de outra fonte
E: 0 pacote 'postfix' não tem candidato para instalação
--------------------------------------------------------------------------------------
Agradeço desde já a vossa ajuda.
Desde já obrigado
Excluir