Por Luiz
Antonio Cassetari Vieira Filho
Uma técnica interessante para acelerar o envio de e-mails em redes de pequeno porte, ou quando se tem algum servidor caseiro que envie mensagens de e-mail esporadicamente, é usar um servidor smtp apenas para o relay das mensagens de saída. Entretanto é muito "estressante" para o servidor local enviar as mensagens diretamente ao destinatário que pode estar a muitos roteadores de distancia, alem de muitos provedores estarem bloqueando ips de adsl e modems para o envio de mensagems, com a intenção de previnir spams. Para isso pode se configurar o postfix para que ele faça relay diretamente no smtp do seu provedor de internet, assim as mensagens irão chegar no postfix, e ele os enviará diretamente para o smtp do seu provedor, que se encarregará da entrega final. No entanto esbarramos em um problema.
Alguns provedores estão usando senhas no smtp, o que inviabiliza a simples configuração de um relay no postfix. Esse artigo tem por intenção, simplificar as configurações necessárias no postfix para implementar essa situação. Usaremos o conectiva linux 9 como distribuição, mas não deve ser muito dificil implementar isso em outra distribuição. O artigo presume que o postfix será utilizado única e exclusivamente para o relay de e-mails, e não terá nenhuma conta valida para o recebimento, mas isso pode ser facilmente adaptado, caso a situação contraria exista. O qmail também pode ser usado com a finalidade de fazer relay em um smtp autenticado. Mas isso já é assunto para um outro artigo ;)
1: Se o postfix ainda não estiver instalado, instale ele com o comando
# apt-get install postfix
2: Instale a biblioteca sasl2, necessário para o funcionamento da autenticação. Provavelmente já está instalado, mas...
# apt-get install sasl2
3: Instale o pacote sasl2-plug-plain necessário para autenticação.
# apt-get install sasl2-plug-plain
4: Crie um arquivo com a senha do servidor smtp, com o formato
servidor_smtp login:senha
Exemplo:
# echo "smtp.terra.com.br usuario:senhalegal" > /etc/postfix/sasl_passwd
5: Como esse arquivo mantém a senha em texto puro, é bom deixar ele seguro, mudando suas permissões.
# chown root.root /etc/postfix/sasl_passwd
# chmod 600 /etc/postfix/sasl_passwd
6: Crie o banco de dados para o postfix
# postmap hash:/etc/postfix/sasl_passwd
7: Edite o /etc/postfix/main.cf, alterando/criando/mudando os paremetros para:
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options =
8: Adicione o servidor do seu provedor no /etc/postfix/main.cf, com o parametro
relayhost = servidor_smtp
9: Inicie ou "reloadeie" o servidor postfix
# service postfix reload
10: Teste o servidor mandando um e-mail, quando o e-mail chegar veja o source dele. Seu servidor deve aparecer nele ;) Dica 1: O tail é seu amigo, use-o.
# tail -f /var/log/maillog
Dica 2: Se por algum motivo muito estranho, o servidor recusar sua senha, tente usar diretamente o numero ip do servidor smtp. O postfix as vezes se confunde com entradas de dns, e isso economiza muita dor de cabeça.
Links:
http://www.g2ctech.com/artigos/relay-email.html
http://postfix.state-of-mind.de/patrick.koetter/smtpauth/smtp_auth_mailservers.html