Ferramentas de Usuário

Ferramentas de Site


pt:stretch:email:smtp:postfix_relay

5.2.3 Relay SMTP

SMTP Relay

O SMTP Relay permite enviar mensagens de e-mail através da sua conta de e-mail usando seu serviço de e-mail existente.

O servidor SMTP configurado para a rede local poderia, teoricamente, enviar email para qualquer destinatário. Na prática era pouco provável que chegasse ao destino final. Isto porque os fornecedores de acesso à Internet, para lutar contra o envio de email não solicitado (spam), impõem regras muito apertadas para aceitar e reencaminhar emails.

Por outro lado, mesmo que o email chegasse ao destino, uma eventual resposta seria endereçada para o remetente (por exemplo [email protected]) de um domínio que não existe fora da rede local.

Assim, para enviar correio eletrónico para o exterior, deverão ser resolvidas 2 questões:

  • O servidor smtp do nosso fornecedor de acesso Internet (ISP) deve aceitar a ligação do nosso servidor.
  • O endereço do remetente deve ser de um domínio válido, para poder receber respostas.

Para contornar estas questões, nada mais simples do que utilizar então servidores e endereços válidos. Assim, ao enviar emails para o exterior, deverá acontecer o seguinte:

  • O nosso endereço interno ([email protected]) deverá ser alterado (mapeado) para um endereço externo ([email protected]).
  • O nosso servidor deverá enviar o email através (relay) de um servidor SMTP externo (smtp.gmail.com).
  • Para estabelecer a ligação ao servidor relay, o nosso sistema deverá autenticar-se com um utilizador válido.

Neste caso, iremos utilizar o servidor SMTP do Gmail (smtp.gmail.com) e um endereço do Gmail ([email protected]).

Configuração

Mapeamento de endereços

Ao enviar emails para o exterior, os endereços internos ([email protected]) devem ser substituídos por endereços externos ([email protected]).

O postfix deve ser configurado para usar o ficheiro de mapeamento de endereços, o que é feito no ficheiro /etc/postfix/main.cf:

#[...]

#
# address mapping
#
smtp_generic_maps = hash:/etc/postfix/generic

#[...]

O ficheiro com o mapeamento de endereços consiste numa lista de endereços locais e os correspondentes endereços externos. O tamanho da lista não está limitado, podendo ser aumentada para conter os endereços dos diversos utilizadores locais.

O ficheiro está em /etc/postfix/generic:

#
# Generic mapping for outgoing SMTP mail
#
[email protected]    [email protected]

Sempre que o ficheiro /etc/postfix/generic for alterado, a base de dados correspondente deve ser também regenerada:

root@server:# postmap /etc/postfix/generic

Servidores de relay

Em segundo lugar, devermos indicar a lista dos servidores externos que iremos usar como relay e os respetivos parâmetros de ligação no ficheiro /etc/postfix/sender_relay:

#
# sender dependent relay map
#
@gmail.com       [smtp.gmail.com]:587

A configuração do postfix para usar os servidores smtp intermédios (relay) é feita no ficheiro /etc/postfix/main.cf:

# [...]

#
# sender dependent relay map
#
sender_dependent_relayhost_maps = hash:/etc/postfix/sender_relay

# [...]

Sempre que o ficheiro /etc/postfix/sender_relay for alterado, a base de dados correspondente deve ser também regenerada:

root@server:# postmap /etc/postfix/sender_relay

Credenciais de acesso

Os parâmetros de autenticação no servidor smtp que vai atuar como relay estão guardados no ficheiro /etc/postfix/sasl/sasl_passwd:

smtp.gmail.com        pinguim.ribeiro:myGmailPassword

Por segurança, o ficheiro /etc/postfix/sasl/sasl_passwd deve estar protegido, sendo só acessível por root:

root@server:# chmod 600 /etc/postfix/sasl/sasl_passwd

Sempre que o ficheiro /etc/postfix/sasl/sasl_passwd for alterado, a base de dados correspondente deve ser também regenerada:

root@server:# postmap /etc/postfix/sasl/sasl_passwd

Ligações seguras ao servidor relay

Em seguida, iremos configurar uma ligação encriptada (tls) e autenticada (sasl_auth) cujas credenciais estão guardada no ficheiro de parâmetros de autenticação (/etc/postfix/sasl/sasl_passwd):

# [...]

#
# SASL SUPPORT FOR SERVERS
#
smtp_use_tls = yes
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl/sasl_passwd
smtp_sasl_security_options = noanonymous
smtp_sasl_tls_security_options = noanonymous

#[...]

Verifique se o ficheiro de configuração do postfix não contém incorreções:

root@server:~# postfix check
root@server:~# 

Reiniciar o postfix:

root@server:~# systemctl restart postfix

Referências

pt/stretch/email/smtp/postfix_relay.txt · Última modificação em: 2024-02-15 01:05 por 127.0.0.1