On Sun, Jul 18, 2010 at 1:40 PM, Brandon Lamb <brandonlamb@gmail.com> wrote:
Or is it possible that Exim looks up mail field as a home directory from the database? I think this error happens before dovecot-lda is even run (it's chdiring before running it).
But I thought exim just pipes the mail to dovecot-lda and then dovecot-lda looks up the user info, home and mail location and actually writes the file, exim doesnt do any database lookups or am I totally in the dark?
OH! Well damn, look I have a router_home_directory, so... hm, do I assume exim passes this to dovecot-lda somehow as an environment variable or something?
I swear I looked at this like 50 times last night...
router_pop: debug_print= "R: dovecot_deliver for $local_part@$domain" driver = accept transport = dovecot_deliver local_parts = mysql; SELECT username FROM SQL_AUTH LEFT JOIN (SQL_POP) ON (SQL_POP.user_id = SQL_AUTH.user_id) WHERE username = '${quote_mysql:$local_part}' AND domain = (SELECT IF( STRCMP('', '${quote_mysql:$domain}'), '${quote_mysql:$domain}', 'olypen.com') ) AND SQL_POP.status != 'disabled' router_home_directory = ${lookup mysql {SELECT SQL_POP.maildir FROM SQL_AUTH LEFT JOIN (SQL_POP) ON (SQL_POP.user_id = SQL_AUTH.user_id) WHERE username = '${quote_mysql:$local_part}' AND domain = '${quote_mysql:$domain}' LIMIT 1}} user = 8 group = 8
Look its MAGIC! Removed the route_home_directory line and BAM! I have my mail! Dood you rock! I seriously need to buy one of those dinner bells to ring at work for stuff like this that has been a 5 hour struggle =P
You may want to add some hint about this on the wiki, something to the effect of watching whether your router passes a home directory if you are expecting the userdb field to be used, etc