So has anybody an idea if I can get the functionallity I want? I know that I could put all the logic from the hash table into the tcp table but that sounds ugly..
Simon Effenberg <sa...@schuldeigen.de> schrieb: >Sorry the mistake was only in my example.. pardon me. The transport >file has no @ prefix in my configuration. (And if I disable the tcp >table the transport file works like expected). > > > >Jeroen Geilman <jer...@adaptr.nl> schrieb: >>On 11/09/2013 02:33 PM, Simon Effenberg wrote: >>> On Sat, 09 Nov 2013 14:21:51 +0100 >>> Jeroen Geilman <jer...@adaptr.nl> wrote: >>> >>>> On 11/9/2013 2:13 PM, Simon Effenberg wrote: >>>>> On Sat, 9 Nov 2013 07:54:30 -0500 (EST) >>>>> wie...@porcupine.org (Wietse Venema) wrote: >>>>> >>>>>> transport_maps can use hash tables AND tcp tables. transport_maps >>>>>> queries each table in the specified order, and stops when a >result >>>>>> is found. When no result is found, Postfix uses >default_transport. >>>>>> >>>>>> Wietse- >>>>> >>>>> I got this but so it's impossible to do something like that: >>>>> >>>>> main.cf: >>>>> transport_maps = hash:/etc/postfix/transport, >>tcp:[127.0.0.1]:2527 >>>>> >>>>> transport: >>>>> >>>>> @domain1.tld smtp:[internal.relay] >>>>> @domain2.tld smtp:[external.relay] >>>>> >>>>> master.cf: >>>>> 127.0.0.1:2527 inet n n n - 0 spawn >>>>> user=nobody argv=/etc/postfix/random.rb >>>>> >>>>> random.rb: >>>>> #!/usr/bin/env ruby >>>>> >>>>> TRANSPORTS = [ 'smtp1:', 'smtp2:', 'smtp3:' ] >>>>> >>>>> while line = STDIN.readline >>>>> puts "200 #{TRANSPORTS[rand(TRANSPORTS.size)]}" >>>>> end >>>>> >>>>> >>>>> If I'll try to send a mail to "x...@domain1.tld" this won't use >>>>> smtp:[internal.relay] but one of 'smtp1:', 'smpt2:' or 'smtp3:' >>>>> >>>> No. x...@domain1.tld matches the first line in >>/etc/postfix/transport. >>>> >>>> You seem terminally confused about how maps are used. >>>> Each map type has specific documentation on how it is queried, but >>no >>>> map determines WHEN it is queried. You define that in >>transport_maps. >>> That's not how it works in my 2.9 postfix version.. trivial-rewrite >>is >>> doing the following (regarding to -vv logs): >>> >>> 1. search for x...@domain1.tld >>> >>> 1. in transport which has NO match >>> 2. asking the tcp_table which HAS a match >> >>This is incorrect. >> >>As documented: >> >>*TABLE SEARCH ORDER* >> With lookups from indexed files such as DB or DBM, or from >> networked tables such as NIS, LDAP or SQL, patterns are >> tried in the order as listed below: >> >> /user+extension@domain transport/:/nexthop/ >> Deliver mail for/user+extension@domain/ through >> /transport/ to/nexthop/. >> >> /user@domain transport/:/nexthop/ >> Deliver mail for/user@domain/ through/transport/ to >> /nexthop/. >> >> * **domain transport**:**nexthop* >> Deliver mail for/domain/ through/transport/ >to/nex-/ >> /thop/. >> >> /.domain transport/:/nexthop/ >> Deliver mail for any subdomain of/domain/ through >> /transport/ to/nexthop/. This applies only when the >>string*transport_maps >><http://www.postfix.org/postconf.5.html#transport_maps>* is not >>listed in the*par >><http://www.postfix.org/postconf.5.html#parent_domain_matches_subdomains>-* >>*ent_domain_matches_subdomains >><http://www.postfix.org/postconf.5.html#parent_domain_matches_subdomains>* >> configuration set- >> ting. Otherwise, a domain name matches itself and >> its subdomains. >> >> *** /transport/:/nexthop/ >> The special pattern*** represents any address (i.e. >> it functions as the wild-card pattern, and is >> unique to Postfix transport tables). >> >> >>@domain.tld will never match anything in transport(5). >> >>Your transport map is incorrectly formed. >> >>-- >>J. > >-- >Diese Nachricht wurde von meinem Android-Mobiltelefon mit K-9 Mail >gesendet. -- Diese Nachricht wurde von meinem Android-Mobiltelefon mit K-9 Mail gesendet.