Delivering to user@domain versus user@host.domain

Don Doumakes doumakes at loganet.net
Tue May 27 22:31:09 EDT 2003


On 2003.05.24 06:03:46 -0500 Christian Schulte wrote:
> Here is the patch to proto.m4! Added one line and changed two. I got
> this from someone on this list here a few months ago and it solved all
> my problems but be warned that this heavily influences sendmail and 
> may
> leed to trouble. I am using it since months without any problems 
> though....
> In order to make this work be sure that your cyrusv2 mailer definition
> contains S=EnvFromSMTP/HdrFromL, R=EnvToL/HdrToL because local names 
> now
> have @domain in them and local mailer can use the rewriting rules
> EnvToL/HdrToL
> If you plan to use virtusertable feature this also has a huge 
> influence.
> You definetely want to
> 
> define(`_VIRTUSER_STOP_ONE_LEVEL_RECURSION_', `true')dnl
> 
> and do routing in virtusertable like
> 
> account at domain   account at domain
> anotherone at domain   anotherone at domain
> @domain   thirdone at domain
> 
> with account at domain,anotherone at domain,thirdone at domain all beeing
> mailboxes with theire logins.
> 
> If you get the error map macro not found or something like that you 
> also
> have to
> 
> define(`_NEED_MACRO_MAP_',`1')dnl
> 
> to get onelevel-recursion working!
> 
> This is all I needed to get it up and running! Hope this helps....
> 
> --Christian
> 
> 
> *** /root/sendmail-8.12.9/cf/m4/proto.m4 Fri Mar 28 18:20:53 2003
> 
> --- /home/schulte/sendmail-8.12.9/cf/m4/proto.m4	Fri Apr 25 
> 22:00:03 2003
> ***************
> *** 1098,1105 ****
>  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')
> 
>  ifdef(`_MAILER_TABLE_', `dnl
>  # not local -- try mailer table lookup
> --- 1098,1107 ----
>  dnl $H empty (but @$=w.)
>  R< > $+ + $* < $+ >	$#_LOCAL_ $: $1 + $2		plussed name?
>  R< > $+ < $+ >		$#_LOCAL_ $: @ 
> $1			 nope, local address',
> ! `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

Good, getting closer!  My sendmail.mc now is:

# divert(-1)
#
#	(C) Copyright 2000 by Carnegie Mellon University
#
#	This sample mc file is for a site that uses the Cyrus IMAP 
server
#	exclusively for local mail. This requires Sendmail 8.10 or 
later.
#
# $Id: cyrusv2.mc,v 1.4 2001/08/23 23:26:56 leg Exp $

divert(0)dnl
VERSIONID(`cyrus v2 sample configuartion')

OSTYPE(linux)
define(`confBIND_OPTS',`-DNSRCH -DEFNAMES')
define(`confTO_IDENT',`0')

dnl setting cyrus as the trusted user will make it easier to pass
dnl Sendmail's safefile checks.  however, it means that someone with the
dnl "cyrus" password could easily become root.
dnl define(`confTRUSTED_USER', `cyrus')

define(`confLOCAL_MAILER', `cyrusv2')

define(`_VIRTUSER_STOP_ONE_LEVEL_RECURSION_')dnl
define(`_NEED_MACRO_MAP_', `1')dnl

dnl if you aren't using Sendmail 8.12, you might need to remove
dnl the following feature.
FEATURE(`preserve_local_plus_detail')
FEATURE(`nocanonify')
FEATURE(`virtusertable')
FEATURE(`use_cw_file')
FEATURE(`always_add_domain')
MAILER(`cyrusv2')
MAILER(`local')
MAILER(`smtp')

MAILER_DEFINITIONS
Mcyrusv2,    P=[IPC], F=lsDFMnqA@/:|SmXz, E=\r\n,
	S=EnvFromSMTP/HdrFromSMTP, R=EnvToSMTP, T=DNS/RFC822/X-Unix,
	A=FILE /var/imap/socket/lmtp

LOCAL_RULE_0
Rbb + $+ < @ $=w . >	$#cyrusv2 $: + $1



And the bounce message is:

   ----- The following addresses had permanent fatal errors -----
testuser at cannibals.org
     (reason: 501 5.5.4 Syntax error in parameters)

    ----- Transcript of session follows -----
... while talking to localhost:
>>> DATA
<<< 501 5.5.4 Syntax error in parameters
554 5.0.0 Service unavailable
<<< 503 5.5.1 No recipients


Googled extensively but didn't find anyone with previous experience 
with this error.

-- 
Don Doumakes                    http://loganet.net/~doumakes/blog

How to send plain text email, and why you should:
http://www.expita.com/nomime.html




More information about the Info-cyrus mailing list