First I'd like to thank all the developers and contributors to dovecot. I've been using it for many years, and deeply appreciate your fine work. :) dovecot --version 2.2.22 (fe789d2) I have a working installation with postfix and dovecot, and I want to add sieve to it, so I am trying to configure postfix to use lmtp instead of 'virtual' for its delivery service. However it is ignoring that request, and for every message I get "status=sent (delivered to maildir)" and it shows up in my Inbox. On my mail host I have 1 normal user, let's say the username is 'myuser'. I have postfix configured to accept mail for several different domains, and each domain has a lot of different mail usernames (I use this for mailing lists and such). I use the virtual_maps feature of postfix, and have a map file that looks like this: abuse at dougbarton.us myuser hostmaster at dougbarton.us myuser dougb at dougbarton.us myuser ... All of this works great, and mail for all the different usernames and domains gets delivered into my one real user's Maildir, and I can see the mail with my IMAP clients. I've configured sieve in dovecot, and I can see the socket for lmtp in /var/spool/postfix/private/. I can also see the managesieve port in netstat, and I can use a sieve client to connect to it and edit scripts, etc. So according to all the tutorials I've read my next step is this in postfix' main.cf: virtual_transport = lmtp:unix:private/dovecot-lmtp which I did, and postfix restarts with no errors. But, it seems to avoid lmtp altogether, and as I mentioned above it delivers straight to my Maildir Inbox every time. I do have a sieve file, and the ~/dovecot.sieve symlink exists. I created a very simple filter: require ["fileinto", "imap4flags"]; if header :contains "Subject" "test" { fileinto "Junk"; } which my sieve client says is correct syntax. Still no joy. :-/ Any thoughts or suggestions are welcome. (And sorry this is so long, but based on my extensive searches it seems my configuration is a bit unique, so I explained it in some length.) Doug
chaouche yacine
2017-Mar-15 17:16 UTC
Postfix Ignoring lmtp, delivering straight to maildir
Hello Doug, First off since this is a postfix configuration problem I beleive it would be better suited in the postfix mailing list. The way I understand it is that you are editing the virtual transport map when you should be changing the local transport map because you are delivering to a normal, system user, not a virtual user. Try and see if that works for you. ? -- Yassine. On Wednesday, March 15, 2017 6:12 PM, Doug Barton <dougb at dougbarton.us> wrote: First I'd like to thank all the developers and contributors to dovecot. I've been using it for many years, and deeply appreciate your fine work. :) dovecot --version 2.2.22 (fe789d2) I have a working installation with postfix and dovecot, and I want to add sieve to it, so I am trying to configure postfix to use lmtp instead of 'virtual' for its delivery service. However it is ignoring that request, and for every message I get "status=sent (delivered to maildir)" and it shows up in my Inbox. On my mail host I have 1 normal user, let's say the username is 'myuser'. I have postfix configured to accept mail for several different domains, and each domain has a lot of different mail usernames (I use this for mailing lists and such). I use the virtual_maps feature of postfix, and have a map file that looks like this: abuse at dougbarton.us myuser hostmaster at dougbarton.us myuser dougb at dougbarton.us myuser ... All of this works great, and mail for all the different usernames and domains gets delivered into my one real user's Maildir, and I can see the mail with my IMAP clients. I've configured sieve in dovecot, and I can see the socket for lmtp in /var/spool/postfix/private/. I can also see the managesieve port in netstat, and I can use a sieve client to connect to it and edit scripts, etc. So according to all the tutorials I've read my next step is this in postfix' main.cf: virtual_transport = lmtp:unix:private/dovecot-lmtp which I did, and postfix restarts with no errors. But, it seems to avoid lmtp altogether, and as I mentioned above it delivers straight to my Maildir Inbox every time. I do have a sieve file, and the ~/dovecot.sieve symlink exists. I created a very simple filter: require ["fileinto", "imap4flags"]; if header :contains "Subject" "test" { ? fileinto "Junk"; } which my sieve client says is correct syntax. Still no joy. :-/ Any thoughts or suggestions are welcome. (And sorry this is so long, but based on my extensive searches it seems my configuration is a bit unique, so I explained it in some length.) Doug
I considered sending to the postfix list instead, and would be happy to do that if it's more appropriate. In regards to your suggestion, I've tried local_transport and mailbox_transport, but both result in mail bouncing because "User doesn't exist." I've added my virtual_maps file to local_recipient_maps, and that still doesn't work. I did get the expected result with local_transport though (delivered to lmtp). So I'll keep poking that a bit. Thanks! Doug On 03/15/2017 10:16 AM, chaouche yacine wrote:> Hello Doug, > First off since this is a postfix configuration problem I beleive it would be better suited in the postfix mailing list. The way I understand it is that you are editing the virtual transport map when you should be changing the local transport map because you are delivering to a normal, system user, not a virtual user. Try and see if that works for you. > -- Yassine. > > > On Wednesday, March 15, 2017 6:12 PM, Doug Barton <dougb at dougbarton.us> wrote: > > > First I'd like to thank all the developers and contributors to dovecot. > I've been using it for many years, and deeply appreciate your fine work. :) > > dovecot --version > 2.2.22 (fe789d2) > > I have a working installation with postfix and dovecot, and I want to > add sieve to it, so I am trying to configure postfix to use lmtp instead > of 'virtual' for its delivery service. However it is ignoring that > request, and for every message I get "status=sent (delivered to > maildir)" and it shows up in my Inbox. > > On my mail host I have 1 normal user, let's say the username is > 'myuser'. I have postfix configured to accept mail for several different > domains, and each domain has a lot of different mail usernames (I use > this for mailing lists and such). I use the virtual_maps feature of > postfix, and have a map file that looks like this: > > abuse at dougbarton.us myuser > hostmaster at dougbarton.us myuser > dougb at dougbarton.us myuser > ... > > All of this works great, and mail for all the different usernames and > domains gets delivered into my one real user's Maildir, and I can see > the mail with my IMAP clients. > > I've configured sieve in dovecot, and I can see the socket for lmtp in > /var/spool/postfix/private/. I can also see the managesieve port in > netstat, and I can use a sieve client to connect to it and edit scripts, > etc. > > So according to all the tutorials I've read my next step is this in > postfix' main.cf: > > virtual_transport = lmtp:unix:private/dovecot-lmtp > > which I did, and postfix restarts with no errors. But, it seems to avoid > lmtp altogether, and as I mentioned above it delivers straight to my > Maildir Inbox every time. > > I do have a sieve file, and the ~/dovecot.sieve symlink exists. I > created a very simple filter: > > require ["fileinto", "imap4flags"]; > > if header :contains "Subject" "test" > { > fileinto "Junk"; > } > > which my sieve client says is correct syntax. Still no joy. :-/ > > Any thoughts or suggestions are welcome. (And sorry this is so long, but > based on my extensive searches it seems my configuration is a bit > unique, so I explained it in some length.) > > Doug > > > >
Looks like this is a dovecot problem after all. :) I can get Postfix to deliver to lmtp, but it's telling it to deliver to a fully qualified 'user at domain.tld' address. Postfix says that it can't find that user, and that turns out to be the case. dovecot: auth: Debug: master in: USER#0112#011user at domain.tld#011service=lmtp So I read up on that error, and it looked like I needed to do this in auth-system.conf.ext userdb { driver = passwd override_fields = username_format=%n } But that didn't work, same error. So how do I convince dovecot that user at domain.tld is really local Unix account named "user" ?? Doug
And the answer is, auth_username_format=%n in dovecot.conf. On 03/16/2017 01:04 AM, Doug Barton wrote:> Looks like this is a dovecot problem after all. :) > > I can get Postfix to deliver to lmtp, but it's telling it to deliver to > a fully qualified 'user at domain.tld' address. Postfix says that it can't > find that user, and that turns out to be the case. > > dovecot: auth: Debug: master in: > USER#0112#011user at domain.tld#011service=lmtp > > So I read up on that error, and it looked like I needed to do this in > auth-system.conf.ext > > userdb { > driver = passwd > override_fields = username_format=%n > } > > But that didn't work, same error. > > So how do I convince dovecot that user at domain.tld is really local Unix > account named "user" ?? > > Doug