On Wed, 2006-11-15 at 15:36 +0100, Jan Dinger wrote:
> On Wed, 15 Nov 2006 08:03:48 -0500
> David Clymer <david@zettazebra.com> wrote:
>
> > I'm trying to integrate courier-imap with my msyql based virtual
> > domain/user setup.
> >
> > The problem that I am having is that whenever I activate the
> > MYSQL_SELECT_CLAUSE, the database is not queried. A connection to the
> > database server is still established, but no query is made. When NOT
> > using the MYSQL_SELECT_CLAUSE, the database _is_ queried (I'm logging
> > all queries, so it shows up in the mysql query log), but not in the way
> > that I need.
> >
> > This is my authmysqlrc:
> >
> >
> > MYSQL_SERVER mysql.hrcsb.org
> > MYSQL_USERNAME mail
> > MYSQL_PASSWORD ********
> > MYSQL_PORT 3306
> > MYSQL_OPT 0
> > MYSQL_DATABASE mail
> > MYSQL_SELECT_CLAUSE SELECT account.username,\
> > account.crypt_password,\
> > account.password,\
> > account.uid,\
> > account.gid,\
> > CONCAT('/var/mail/', domain.name, '/'),\
> > account.maildir,\
> > account.quota,\
> > '',\
> > ''\
> > FROM account \
> > INNER JOIN domain ON account.domain_id = domain.name \
> > WHERE account.username = '$(local_part)'\
> > AND domain.name = '$(domain)'
> >
> >
> > I'm running debian sarge, and the debian package of courier-{imap,
> > authdaemon,authmysql}. The database is on a remote machine and is
> > running mysql 4.1
> >
> > Any ideas/experience you might have would be very welcome.
> >
> > -davidc
> >
> Hi David,
>
> take a look in this howto http://workaround.org/articles/ispmail-sarge/
>
> ive tested this howto on sarge, etch and sid - no problem
>
Thanks. Unfortunately, my problem is not any of the other portions of
the setup - just a particular configuration issue with
courier-authmysql.
I've worked around the issue so that IMAP (all I want courier for is to
do IMAP) works for one domain, but if I want to support multiple
domains...I'm still screwed.
Since it seems that, for courier, all the field name settings in the
config are merely strings that it slaps together in a certain order, I
can build almost any SQL query I like.
So, in order to join two tables, I set MYSQL_TABLE like so:
MYSQL_TABLE account INNER JOIN domain ON account.domain_id = domain.id
then, I can build the home or maildir path using the domain name, and
set a MYSQL_WHERE_CLAUSE to this:
MYSQL_WHERE_CLAUSE domain.name = 'test.org'
I'm still looking for a solution to the MYSQL_SELECT_CLAUSE issue
though, so further suggestions on that, please share.
-davidc
--
gpg-key: http://www.zettazebra.com/files/key.gpg
Attachment:
signature.asc
Description: This is a digitally signed message part