Unexistent user
    Christian Schulte 
    cs at schulte.it
       
    Sat Apr 26 19:04:48 EDT 2003
    
    
  
dimon at intellinetinc.com wrote:
>Quoting Igor Brezac <igor at ipass.net>:
>
>  
>
>>If you have define(`_VIRTUSER_STOP_ONE_LEVEL_RECURSION_', `1')dnl and a
>>mailertable entry for domain.com, this will work.
>>
>>    
>>
>
>I did that and that's what I've got:
>
>Mar 31 16:45:21 mail sm-mta[90664]: h2VNjL2r090664: SYSERR(root): rewrite: map 
>macro not found
>
If you
define(`_VIRTUSER_STOP_ONE_LEVEL_RECURSION_', `true')dnl
you also have to
define(`_NEED_MACRO_MAP_',`1')dnl
I only needed that for sendmail-8.12.9. All other things seem to be ok. 
Of course my setup differs from yours. Here is the main difference from 
my sendmail.mc. I copied the needed m4-files for debian to the right 
places and now build sendmail.cf and submit.cf myself.
bash-2.05a$ cat sendmail-8.12.9/cf/cf/sendmail.mc
define(`_USE_ETC_MAIL_')dnl
VERSIONID(`$Id: sendmail.mc, v 8.12.3-4 2003-04-24 02:30:20 cowboy Exp $')
OSTYPE(`debian')dnl
DOMAIN(`debian-mta')dnl
LOCAL_CONFIG
FEATURE(`masquerade_envelope')dnl
FEATURE(`always_add_domain')dnl
FEATURE(`use_cw_file')dnl
FEATURE(`use_ct_file')dnl
FEATURE(`redirect')dnl
FEATURE(`nouucp', `reject')dnl
FEATURE(`mailertable')dnl
FEATURE(`virtusertable')dnl
FEATURE(`dnsbl')dnl
FEATURE(`smrsh')dnl
include(`/etc/mail/tls/starttls.m4')dnl
define(`confLOCAL_MAILER', `cyrusv2')dnl
define(`confSEVEN_BIT_INPUT', `false')dnl
define(`confEIGHT_BIT_HANDLING', `mime')dnl
define(`confCHECK_ALIASES', `true')dnl
define(`_VIRTUSER_STOP_ONE_LEVEL_RECURSION_', `true')dnl
define(`_NEED_MACRO_MAP_',`1')dnl
MAILER_DEFINITIONS
MAILER(cyrusv2)dnl
MAILER(smtp)dnl
In order to use
define(`confLOCAL_MAILER', `cyrusv2')dnl
correctly (...make virtusertable and aliases expand correctly...) I have 
to patch cf/m4/proto.m4! This patch  (changes two lines and adds one 
line) influences heavily and makes sendmail recognize user at domain.tld a 
local user. I attached it ! It works for sendmail-8.12.9 but you should 
be warned that it changes the internal representation of sendmails local 
users to user at machinename or user at domain! After that I put all domains 
which are to be delivered locally into /etc/mail/local-host-names and 
have the full routing in virtusertable and aliases.
These two:
define(`_VIRTUSER_STOP_ONE_LEVEL_RECURSION_', `true')dnl
define(`_NEED_MACRO_MAP_',`1')dnl
have a huge influence on the meaning of the virtusertable. Here it goes:
virtusertable:
@cyrus-virtual-domain    otheruser at cyrus-virtual-domain
@local-domain.tld    localuser at cyrus-virtual-domain
LHS:
cyrus-virtual-domain and local-domain.tld are both local domains. They 
are both configured in local-host-names file
RHS:
These are both email accounts! They are both POP/IMAP logins also
If you do not make the above two definitions the behaviour is as follows:
-Mail arrives for something at local-domain.tld
-gets rewritten to  localuser at cyrus-virtual-domain
-gets rewritten to otheruser at cyrus-virtual-domain
-endlessly gets rewritten to otheruser at cyrus-virtual-domain
Does not work! So at some place you now change your virtusertable to:
@cyrus-virtual-domain    otheruser at cyrus-virtual-domain
@local-domain.tld    localuser at cyrus-virtual-domain
otheruser at cyrus-virtual-domain    otheruser at cyrus-virtual-domain
But that does not change the behaviour in rewriting!
-Mail arrives for something at local-domain.tld
-gets rewritten to  localuser at cyrus-virtual-domain
-gets rewritten to otheruser at cyrus-virtual-domain
-endlessly gets rewritten to otheruser at cyrus-virtual-domain
And now you have to add:
define(`_VIRTUSER_STOP_ONE_LEVEL_RECURSION_', `true')dnl
to your sendmail.mc which does exactly what it is named after! It 
influences rewriting in virtusertable to stop if an entry does recurse 
to itself which is not standard behaviour! In sendmail-8.12.9 one now 
has to also add
define(`_NEED_MACRO_MAP_',`1')dnl
to get it working correctly ! Hope this is helpful...
--Christian--
-------------- next part --------------
--- proto.m4.original	Sun Apr 27 01:00:00 2003
+++ proto.m4	Fri Apr 25 22:00:03 2003
@@ -1098,8 +1098,10 @@
 dnl $H empty (but @$=w.)
 R< > $+ + $* < $+ >	$#_LOCAL_ $: $1 + $2		plussed name?
 R< > $+ < $+ >		$#_LOCAL_ $: @ $1			nope, local address',
-`R$=L < @ $=w . >	$#_LOCAL_ $: @ $1			special local names
-R$+ < @ $=w . >		$#_LOCAL_ $: $1			regular local name')
+`R$=L < @ $=w . >	$#_LOCAL_ $: @ $1`@'$2			secial local names
+R$+ < @ $j . >		$#_LOCAL_ $: $1				leave untouched if @$j
+R$+ < @ $=w . >		$#_LOCAL_ $: $1`@'$2			regular local name')
+
 
 ifdef(`_MAILER_TABLE_', `dnl
 # not local -- try mailer table lookup
    
    
More information about the Info-cyrus
mailing list