outbound_mail.toml: ----------------------------------- [outbound_mail] default_source_group = "fallback" # Use mta4 for all other domains [[outbound_mail.routing_rules]] recipient_domain_pattern = "*.gmail.com" source_group = "google" [[outbound_mail.routing_rules]] recipient_domain_pattern = "*.googlemail.com" source_group = "google" [[outbound_mail.routing_rules]] recipient_domain_pattern = "*.outlook.com" source_group = "outlook" [[outbound_mail.routing_rules]] recipient_domain_pattern = "*.hotmail.com" source_group = "outlook" [[outbound_mail.routing_rules]] recipient_domain_pattern = "*.live.com" source_group = "outlook" [[outbound_mail.routing_rules]] recipient_domain_pattern = "*.yahoo.com" source_group = "yahoo" [[outbound_mail.routing_rules]] recipient_domain_pattern = "*.ymail.com" source_group = "yahoo" [[outbound_mail.routing_rules]] recipient_domain_pattern = "*.rocketmail.com" source_group = "yahoo" ------------------------------------------------------ kumomta.toml ------------------------------------------------------- [source_group."google"] members = ["vmta1", "vmta2"] [source_group."outlook"] members = ["vmta3", "vmta4"] [source_group."yahoo"] members = ["vmta5", "vmta6"] [source_group."fallback"] members = ["vmta7", "vmta8", "vmta9", "vmta10", "vmta11", "vmta12"] -------------------------------------------------------- init.lua: ---------------------------------------------------- kumo.on("get_outbound_source_group", function(txn) local rcpt_domain = txn:get("recipient_domain") or "" rcpt_domain = rcpt_domain:lower() kumo.log.info("Recipient domain: " .. rcpt_domain) if rcpt_domain:match("gmail%.com$") or rcpt_domain:match("googlemail%.com$") then kumo.log.info("Routing to group: google") return "google" elseif rcpt_domain:match("outlook%.com$") or rcpt_domain:match("hotmail%.com$") or rcpt_domain:match("live%.com$") then kumo.log.info("Routing to group: outlook") return "outlook" elseif rcpt_domain:match("yahoo%.com$") or rcpt_domain:match("ymail%.com$") then kumo.log.info("Routing to group: yahoo") return "yahoo" else kumo.log.info("Routing to group: fallback") return "fallback" end end) ---------------------------------------------------