sendmail and virtual domains and catchalls?

Carl Brewer carl at bl.echidna.id.au
Wed Mar 17 19:26:16 EST 2004



Hello,

I've been trying a number of combinations of configs to
try and get sendmail (8.12.10) to handle virtual domains
and catchall addresses for those virtual domains, but am not
sure if what I'm trying to do can be achieved with sendmail?

Say I have 2 virtual domains and a default.

Call them foo.com, bar.com and bl.echidna.id.au

I have in my imapd.conf :

virtdomains: userid
defaultdomain: bl.echidna.id.au



I have in my sendmail .mc file :

define(`confLOCAL_MAILER', `cyrusv2')
MAILER(cyrusv2)
MAILER(smtp)

(yes, no MAILER(local), if I put that in, nothing works!)

and I've modified the cyrusv2 definition in mailer/cyrusv2.mc


                 # setup for virtual domains, Carl
                 S=EnvFromSMTP/HdrFromSMTP, R=EnvToSMTP E=\r\n,
                 # S=EnvFromSMTP/HdrFromL, R=EnvToL/HdrToL, E=\r\n,

In /etc/mail/mailertables I have

bl.echidna.id.au        	cyrusv2:/var/imap/socket/lmtp
rollcage2.bl.echidna.id.au      cyrusv2:/var/imap/socket/lmtp
foo.com				cyrusv2:/var/imap/socket/lmtp

I've created (using cyradm) 'normal' virtual domain accounts, eg
carl at foo.com, and this works just fine, mail goes happily into that
mailbox and I can see it.  Mail sent to the default domain however
doesn't work :

for mail sent (locally using /bin/mail) to carl at bl.echidna.id.au :

Mar 18 11:11:31 rollcage2 sendmail[4535]: i2I0BVKA004535: from=carl, 
size=42, class=0, nrcpts=1, 
msgid=<200403180011.i2I0BVKA004535 at rollcage2.bl.echidna.id.au>, 
relay=carl at localhost
Mar 18 11:11:32 rollcage2 sendmail[4536]: i2I0BVMx004536: 
from=<carl at rollcage2.bl.echidna.id.au>, size=379, class=0, nrcpts=1, 
msgid=<200403180011.i2I0BVKA004535 at rollcage2.bl.echidna.id.au>, 
proto=ESMTP, daemon=MTA-v4, relay=localhost [127.0.0.1]
Mar 18 11:11:32 rollcage2 sendmail[4535]: i2I0BVKA004535: 
to=carl at bl.echidna.id.au, ctladdr=carl (134/100), delay=00:00:01, 
xdelay=00:00:01, mailer=relay, pri=30042, relay=[127.0.0.1] [127.0.0.1], 
dsn=2.0.0, stat=Sent (i2I0BVMx004536 Message accepted for delivery)
Mar 18 11:11:32 rollcage2 sendmail[4538]: i2I0BVMx004536: 
to=<carl at bl.echidna.id.au>, delay=00:00:01, xdelay=00:00:00, 
mailer=cyrusv2, pri=30379, relay=localhost, dsn=5.1.1, stat=User unknown
Mar 18 11:11:32 rollcage2 sendmail[4538]: i2I0BVMx004536: 
i2I0BWMx004538: DSN: User unknown
Mar 18 11:11:32 rollcage2 sendmail[4538]: i2I0BWMx004538: 
to=<carl at rollcage2.bl.echidna.id.au>, delay=00:00:00, xdelay=00:00:00, 
mailer=cyrusv2, pri=31403, relay=localhost [[UNIX: 
/var/imap/socket/lmtp]], dsn=5.1.1, stat=User unknown
Mar 18 11:11:32 rollcage2 sendmail[4538]: i2I0BWMx004538: 
i2I0BWN0004538: return to sender: User unknown
Mar 18 11:11:32 rollcage2 sendmail[4538]: i2I0BWN0004538: to=postmaster, 
delay=00:00:00, xdelay=00:00:00, mailer=cyrusv2, pri=32427, 
relay=localhost [[UNIX: /var/imap/socket/lmtp]], dsn=5.1.1, stat=User 
unknown
Mar 18 11:11:32 rollcage2 sendmail[4538]: i2I0BWMx004538: Losing 
./qfi2I0BWMx004538: savemail panic
Mar 18 11:11:32 rollcage2 sendmail[4538]: i2I0BWMx004538: SYSERR(root): 
savemail: cannot save rejected email anywhere

That's not good :)

It works fine for mail to carl at foo.com though.

cyradm>lm shows :

user/carl (\HasChildren)
user/carl/Sent (\HasNoChildren)
user/carl/Sent at foo.com (\HasNoChildren)
user/carl/Trash (\HasNoChildren)
user/carl/Trash at foo.com (\HasNoChildren)
user/carl at foo.com (\HasChildren)
user/postmaster (\HasNoChildren)
user/postmaster at foo.com (\HasNoChildren)

I've done something wrong with my setup .. but I don't know
what.  Do I need the MAILER(local) definition in my sendmail.mc
file (doesn't that get overridden by
	define(`confLOCAL_MAILER', `cyrusv2')
?

I can get around that though, if I ditch the default domain and
just have everything as a virtual domain.

what I need to be able to do though, is have some catchalls and aliases,
different for each virtual domain.

for example, I need bar at foo.com to point to carl at foo.com, and I
need <anything>@foo.com to go to catchall at foo.com, and
different catchalls for the other domains.  Google's not been helpful
here (although I may have missed something).

Does/can sendmail's virtusertable provide this kind of thing when used
with cyrusv2?  If so, is there any doco anywhere that explains
how to set it up, or should I ditch sendmail and cut over
to postfix?  (I'd prefer to make this work with sendmail if
possible).

Thanks for any help anyone can provide!

Cyrus is cyrus-imapd-2.2.3 installed from the NetBSD ports collection
O/S is NetBSD 1.6.2 on i386
SASL is cyrus-sasl-2.1.17nb1 installed from the NetBSD ports collection
Sendmail is 8.12.10 installed from the NetBSD ports collection


Carl






---
Home Page: http://asg.web.cmu.edu/cyrus
Wiki/FAQ: http://cyruswiki.andrew.cmu.edu
List Archives/Info: http://asg.web.cmu.edu/cyrus/mailing-list.html




More information about the Info-cyrus mailing list