Stefano Bagnara schrieb: > Looking at the virtualusertable query I see that if I only add the rule > user=bago > domain=% > [EMAIL PROTECTED] > > It will never alias any recipient: neither [EMAIL PROTECTED] nor > [EMAIL PROTECTED] > > If I instead add another generic mapping referring to the domain like: > user=nonexistinguser > domain=somedomain > [EMAIL PROTECTED] > (yes, this does not change anything, but I need to add it to make the > previous work) > > Then a message to [EMAIL PROTECTED] will be rewritten to > [EMAIL PROTECTED] > > This is the query: > -- > SELECT VirtualUserTable.target_address > FROM VirtualUserTable, VirtualUserTable as VUTDomains > WHERE > (VirtualUserTable.user like ? OR VirtualUserTable.user like '\%') > AND > (VirtualUserTable.domain like ? OR > (VirtualUserTable.domain like '\%' AND VUTDomains.domain like ?)) > ORDER BY > concat(VirtualUserTable.user,'@',VirtualUserTable.domain) desc > LIMIT 1 > --- > And the key/guilty part is the self-join and the "AND > VUTDomains.domain like ?" > > This mean that domain=% will match any domain already used in another > rule. This is not documented anywhere and I also think this is not an > intended behaviour. > > Was this hack used to try to alias only local domains? > Should we change it to consider % valid for any local domain > (specified in servernames) even if not used in other mapping rules and > document it this way? > Do we need to introduce a new wildcard to specify ANY domain (even the > non local)? > > On the other side the XMLVirtualUserTable seems to have not such > behaviour and to always rewrite any domain, even remote one or domains > not used in other mapping rules. > > So what is the intended behaviour? I think that is really bad that XML > and JDBC behave differently wrt this issue. > > My preference is: > 1) use the XML behaviour by default when using % > 2) optionally introduce later a new wildcart to match only local > domains (this can be already achieved by using HostIsLocal matcher for > the virtual users table. > > This means: remove the self join and the where condition on VUTDomains > from JDBCVirtualUserTable. > > WDYT? > > Stefano > >
This make sense to me. Optional we could also check in mailetContext.isLocalServer(domain) for local domains. +1 bye Norman --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
