Postfix Ignoring lmtp, delivering straight to maildir
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@dougbarton.us myuser hostmaster@dougbarton.us myuser dougb@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
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@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@dougbarton.us myuser hostmaster@dougbarton.us myuser dougb@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@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@dougbarton.us myuser hostmaster@dougbarton.us myuser dougb@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
On Wed, 15 Mar 2017 10:31:17 -0700, Doug Barton stated:
I considered sending to the postfix list instead, and would be happy to do that if it's more appropriate.
If you do decide to submit your problem to Postfix, and I think you should, please follow the directions at http://www.postfix.com/DEBUG_README.html, and more specifically http://www.postfix.com/DEBUG_README.html#mail. Nothing pisses off Postfix members more than posting what "YOU" think the main.cf and master.cf are rather than what Postfix is actually interpreting it to be. Include your Postfix version and OS. That includes including actual log entries, not just a one line snippet.
Also, be sure to explain exactly what it is you want to accomplish. They are not mind readers.
Good luck.
-- Jerry
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@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@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@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@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@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@domain.tld is really local Unix account named "user" ??
Doug
participants (3)
-
chaouche yacine
-
Doug Barton
-
Jerry