[Dovecot] Variable expansion in LDA vs POP/IMAP
Jason Godsey
jason at godsey.net
Fri May 25 18:20:12 EEST 2007
Stephane Enten wrote:
> Hello all,
>
> I'm trying to understand when exactly the variable substitution
> happens in Dovecot, as I get different results in the LDA and in the POP/IMAP
> server.
>
> Here's my general setup:
> - Postfix MTA, delivers mail via Dovecot LDA
> - users list sits in a database
> - mail directory is stored in the database, but with
> Dovecot variables inside
>
> Delivery works perfectly fine, Dovecot's deliver get a "mail"
> column from the database (that looks like this:
> /mail/01/%2LMd/%2.2LMd/%LMd/mail/%Ln/ ) and expands variables,
> delivers the mail into the maildir's location.
>
> Now if I try to access the mailbox through Dovecot's POP/IMAP server,
> it looks like it gets the right field from the database, but won't expand
> the variables:
>
> May 24 18:31:14 mail1 dovecot: imap-login: Login: user=<XXXXX>, method=PLAIN, rip=127.0.0.1, lip=127.0.0.1, secured
> May 24 18:31:14 mail1 dovecot: IMAP(XXXXX): Effective uid=1021, gid=304, home=
> May 24 18:31:14 mail1 dovecot: IMAP(XXXXX): maildir: data=/mail/01/%2LMd/%2.2LMd/%LMd/mail/%Ln/
> May 24 18:31:14 mail1 dovecot: IMAP(XXXXX): maildir: root=/mail/01/%2LMd/%2.2LMd/%LMd/mail/%Ln, index=/srv/mail/01/%2LMd
> /%2.2LMd/%LMd/mail/%Ln, control=, inbox=
> May 24 18:31:14 wmail1-v dovecot: IMAP(XXXXX): Disconnected
>
> Am I missing something to get the pop/imap part expand those ?
>
>
> ------------------------------------------------------------------------
>
> # /etc/dovecot/dovecot.conf
> log_timestamp: %Y-%m-%d %H:%M:%S
> protocols: pop3 pop3s imap imaps
> disable_plaintext_auth: no
> shutdown_clients: no
> login_dir: /var/run/dovecot/login
> login_executable(default): /usr/lib/dovecot/imap-login
> login_executable(imap): /usr/lib/dovecot/imap-login
> login_executable(pop3): /usr/lib/dovecot/pop3-login
> login_process_per_connection: no
> login_processes_count: 5
> verbose_proctitle: yes
> first_valid_uid: 1000
> mail_debug: yes
> maildir_copy_with_hardlinks: yes
> mail_executable(default): /usr/lib/dovecot/imap
> mail_executable(imap): /usr/lib/dovecot/imap
> mail_executable(pop3): /usr/lib/dovecot/pop3
> mail_plugin_dir(default): /usr/lib/dovecot/modules/imap
> mail_plugin_dir(imap): /usr/lib/dovecot/modules/imap
> mail_plugin_dir(pop3): /usr/lib/dovecot/modules/pop3
> pop3_uidl_format(default):
> pop3_uidl_format(imap):
> pop3_uidl_format(pop3): %08Xu%08Xv
> pop3_client_workarounds(default):
> pop3_client_workarounds(imap):
> pop3_client_workarounds(pop3): outlook-no-nuls oe-ns-eoh
> auth default:
> verbose: yes
> passdb:
> driver: sql
> args: /etc/dovecot/dovecot-sql.conf
> userdb:
> driver: sql
> args: /etc/dovecot/dovecot-sql.conf
> socket:
> type: listen
> client:
> master:
> path: /var/run/dovecot/auth-master
> mode: 384
> user: dovecot
> group: dovecot
>
>
Expansion happens before the query, you didn't include dovecot-sql.conf
so I'm not sure where it's going wrong.
you should NOT be doing select
concat('/mail/01/%2LMd/%2.2LMd/%LMd/mail/%Ln') as maildir
Those expansions work as:
mail_location = /mail/01/%2LMd/%2.2LMd/%LMd/mail/%Ln
More information about the dovecot
mailing list