Postfix Stagger / Rate Limit Outbound Mail

1

Temos um servidor que envia nossa newsletter semanal para os assinantes. Para evitar que pessoas como Hotmail ou Yahoo bloqueiem o site, devido ao envio de muitos e-mails simultâneos para eles, existe uma maneira de escalonar e-mails enviados por email? do postfix?

Tenha em mente que eu não quero que o servidor de e-mails pare de enfileirar e-mails ou aceitar novas mensagens. Basta adiar a entrega se houver mais de 3-4 mensagens por domínio de destino / ipaddress ou algo semelhante.

Observação: Eu não quero um Sender Throttle, conforme descrito em uma pergunta semelhante, aqui . Eu estou procurando mais por um throttle destinatário, mas não tive sorte em descobrir como fazê-lo com os serviços PolicyD ou Anvil, e queria saber se alguém realizou essa tarefa.

    
por GruffTech 20.08.2009 / 18:27

5 respostas

5

Você pode usar o truque de erros:

main.cf:

transport_maps = hash:/etc/postfix/transport
deadbeats_destination_concurrency_limit = 50

master.cf:

deadbeats unix - - n - - smtp -o smtp_connect_timeout=5 -o smtp_helo_timeout=5 smtp_connect_timeout=2

transport.cf:

hotmail.com             deadbeats:
yahoo.com               deadbeats:
earthlink.net           deadbeats:
freemail.com.au         deadbeats:
    
por 20.08.2009 / 20:21
2

Deverá ler:

deadbeats    unix    -    -    n    -    -    smtp 
    -o smtp_connect_timeout=5 
    -o smtp_helo_timeout=5 
    -o smtp_connect_timeout=2

E você deve reiniciar o Postfix

    
por 20.04.2010 / 00:32
2

Para complementar a postagem de rkthkr, você precisará executar o postmap no arquivo de transporte ( man transport (5) )

postmap /etc/postfix/transport.cf
    
por 20.04.2010 / 20:54
1

você também pode adicionar

main.cf

deadbeats_destination_recipient_limit = 5

por ter 5 destinatários por sessão

    
por 21.08.2009 / 10:27
0

Tenho certeza que o master.cf sugerido pelo rkthr é de

deadbeats unix - - n - - smtp -o smtp_connect_timeout=5 -o smtp_helo_timeout=5 smtp_connect_timeout=2

tem o parâmetro 'smtp_connect_timeout' erroneamente listado duas vezes. Se por algum motivo você quisesse listá-lo duas vezes, você precisaria de outro '-o' como descrito na resposta do user40991.

    
por 10.01.2011 / 22:13