Site menu Fazendo relay com Postfix em servidores SMTP autenticados
e-mail icon
Site menu

Fazendo relay com Postfix em servidores SMTP autenticados

e-mail icon

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

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 contrária 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:senha" > /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 parâmetros 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 número IP do servidor SMTP. O Postfix às vezes se confunde com entradas de DNS, e isso economiza muita dor de cabeça.

e-mail icon