virtual domain mailbox cross contamination
Andrew Morgan
morgan at orst.edu
Mon Aug 13 15:37:20 EDT 2007
On Mon, 13 Aug 2007, Adam D wrote:
> Sorry in my haste and excitement I totally forgot to include the log
> output when it worked.
>
>
> Working settings
>
> main.cf:
> virtual_transport = cyrus:unix:/var/run/cyrus/socket/lmtp
> mailbox_transport = cyrus:unix:/var/run/cyrus/socket/lmtp
>
> master.cf:
> lmtp unix - - n - - lmtp
> cyrus unix - n n - - lmtp
>
>
> log output:
> postfix/lmtp[13234]: A09EB3142: to=<user at domain2.tld>,
> relay=host.domain2.tld[/var/run/cyrus/socket/lmtp], delay=1047,
> delays=1047/0/0/0.02, dsn=2.1.5, status=sent (250 2.1.5 Ok)
>
>
> I have noticed in another setting using
> main.cf
> virtual_transport = cyrus
> mailbox_transport = cyrus
>
> master.cf
> cyrus unix - n n - - pipe
> flags=R user=cyrus argv=/usr/sbin/cyrdeliver -e -r${sender} -m
> ${extension} ${user}
>
> log output
> postfix/pipe[13248]: E56476E010: to=<user at domain1.tld>,
> orig_to=<user1 at host.domain1.tld>, relay=cyrus, delay=0.6,
> delays=0.3/0.25/0/0.05, dsn=2.0.0, status=sent (delivered via cyrus service)
>
> The end 'status=sent...' is quite different. I am assuming it is
> because the different protocols used to deliver the message to cyrus?
>From the manpage for Postfix's pipe(8):
${extension}
This macro expands to the extension part of
a recipient address. For example, with an
address user+foo at domain the extension is
foo.
${mailbox}
This macro expands to the complete local
part of a recipient address. For example,
with an address user+foo at domain the mailbox
is user+foo.
${recipient}
This macro expands to the complete recipient
address.
${user}
This macro expands to the username part of a
recipient address. For example, with an
address user+foo at domain the username part is
user.
When you used the original service definition for "cyrus" provided with
Postfix, it does not pass the domain/realm to cyrdeliver because it is
only using ${user}.
If you want to continue using cyrdeliver, you can replace ${user} with
${recipient}.
However, the recommended delivery method for Cyrus with Postfix is "lmtp".
Postfix's lmtp client will correctly transmit the full user at domain to
Cyrus. You may run into problems with delivery to the local lmtp socket
due to permissions or the Postfix chroot, but these problems can be
resolved in a few different ways.
It looks like you have already managed to get it working...
Andy
More information about the Info-cyrus
mailing list