Chaque message accepté arrive dans une file planifiée (scheduled queue) dont la clé est (tenant, campaign, destination_domain). Chaque file a son propre throttle, son calendrier de nouvelles tentatives et son pool d'IP sources.
Définissez la configuration des files dynamiquement :
kumo.on('get_queue_config', function(domain, tenant, campaign, routing_domain)
-- Defaults
local cfg = {
max_age = '24h',
retry_interval = '20m',
max_retry_interval = '4h',
max_connection_rate = '5/s',
}
-- Gmail tightening
if domain == 'gmail.com' or domain:match('%.googlemail%.com$') then
cfg.max_connection_rate = '20/s'
cfg.max_message_rate = '250/s'
end
-- Microsoft 365 tightening
if domain:match('%.protection%.outlook%.com$') then
cfg.max_connection_rate = '4/s'
cfg.max_message_rate = '40/s'
end
return kumo.make_queue_config(cfg)
end)
Les courbes de nouvelles tentatives sont exponentielles par défaut. Réglez retry_interval (première tentative) et max_retry_interval (plafond). Règle empirique en production : 5 min → 30 min → 2 h → 4 h, âge maximal de 24 à 48 h.
Connectez-vous pour garder une trace de ce que vous avez lu.