Limitar la velocidad de envío de correos salientes con Mailman y Exim

Muchos proveedores de servicios de Internet (ISPs) tienen límites sobre la cantidad de correos electrónicos recibidos en un periodo de tiempo; no respetarlos reducirá la reputación del remitente.

Mailman 2 no soporta limitación de velocidad (throttling), aunque existen algunos parches no oficiales que añaden esta funcionalidad. Exim soporta limitar la tasa de correos entrantes, pero no los correos salientes, aunque es posible hacerlo con una configuración algo compleja.

La solución sencilla es limitar la tasa de correos que pasan de Mailman a Exim, de modo que Mailman los reintente más tarde.

Esta es la configuración de Mailman:

 
DELIVERY_RETRY_WAIT = minutes(15)
 

Aquí indicamos a Mailman que reintente enviar los correos retrasados cada 15 minutos. Este es el tiempo mínimo posible, ya que el proceso de reintento solo se ejecuta cada 15 minutos. El valor por defecto es 1 hora.

Esta es la configuración de Exim:

 
acl_smtp_rcpt = acl_check_rcpt

[…]

acl_check_rcpt:
[…]
defer hosts = +relay_from_hosts
ratelimit = 75 / 15m / per_rcpt / $domain
message = Rate limit exceeded for $domain: \
$sender_rate/$sender_rate_period \
(max $sender_rate_limit)
 

Aquí estamos indicando a Exim que no acepte más de 75 correos cada 15 minutos para un dominio determinado. Como se mencionó anteriormente, 15 minutos es el mínimo posible para Mailman. El valor 75 depende de cuántos correos estés enviando: revisa los logs de Exim, identifica el dominio al que envías más correos y ajusta este valor en consecuencia.