Viktor Dukhovni: > On Tue, Nov 29, 2022 at 09:59:47AM -0500, Wietse Venema wrote: > > > In /etc/postfix/master.cf: > > ========================== > > > > smtp1 unix - - n - - smtp > > -o { smtp_bind_address = 1.2.3.1 } > > -o { smtp_helo_name = helo-for-1.2.3.1 } > > > > smtp2 unix - - n - - smtp > > -o { smtp_bind_address = 1.2.3.2 } > > -o { smtp_helo_name = helo-for-1.2.3.2 } > > > > In /etc/postfix/main.cf: > > ======================== > > > > Next an example that supports different warming up ratios for > > different destinations. See "Notes" below for a simpler approach > > when the warming up ratios can be the same for all destinations. > > > > This example uses a nested table, which requires a restriction class. > > smtpd_recipient_restrictions = check_recipient_access > > inline:{ > > { gmail.com = class-gmail } > > { yahoo.com = class-yahoo } > > } > > ...other restrictions... > > > > # To get (90%, 10%), specify one filter 9x and the other filter 1x. > > # The order does not matter. > > restriction_classes = class-gmail, class-yahoo > > class-gmail = check_recipient_access randmap:{filter smtp1:, filter > > smtp2:} > > class-yahoo = check_recipient_access randmap:{filter smtp1:, filter > > smtp2:} > > I didn't suggest approaches based on FILTER because they may not work > correcly with multi-recipient mail, when not all recipients share the > same domain part. "FILTER" is message level, not per-recipient. > > Problems would in practice be rare, but perhaps all the harder to > understand and debug if/when they arise.
And only when different domains have very different warming-up requirements. > A semantically sound solution here would be a table that selectively > (and using a random weight) replaces some MX host names with an > alternative relay. > > This would be a new feature, to support sending sites that are migrating > existing high volume outbound relays to a new location or upstream IP > provider. Indeed, the proposed examples assume that all IP addresses can in some way be made available to one Postfix instance. To warm up a remote IP address, one would use: class-gmail = check_recipient_access randmap:{filter smtp1:, filter smtp2:host:port} class-yahoo = check_recipient_access randmap:{filter smtp1:, filter smtp2:host:port} Where host:port specifies a remote Postfix relay. Wietse