O postfix não suporta a ligação de scripts na entrega. Para contornar isso, você pode configurar um crontab
para executar o script especial. Este script irá:
- Configurando o túnel SSH
- Fila de descarga.
Primeiro, defina sender_dependent_relayhost_maps com o valor do lado direito como sua porta de túnel (por exemplo, porta 2525).
#/etc/main.cf
sender_dependent_relayhost_maps = hash:/etc/postfix/sshtunnel
#/etc/postfix/sshtunnel
domain2.com smtp:[127.0.0.1]:2525
Quando o túnel não estiver conectado, o postfix irá temporário adiar o email devido a Connection refused
-error. Então você não se preocupa em perder um email.
Em seguida, configure o crontab para executar o script acima. Aqui o pseudo-script para atingir esses objetivos. Pequena modificação de este script original .
#!/bin/sh
#setup ssh tunnel. modify the parameter for your needs
ssh -L 2525:localhost:25 [email protected]
# Start mail deliveries.
/usr/sbin/sendmail -q
# Allow deliveries to start.
sleep 10
# Loop until all messages have been tried at least once.
while mailq | grep '^[^ ]*\*' | grep domain2.com >/dev/null
do
sleep 10
done