25 messages in net.sourceforge.lists.courier-usersRe: [courier-users] Can't log in via ...
FromSent OnAttachments
James HomuthMar 26, 2007 2:56 am 
Bernd WurstMar 26, 2007 3:52 am 
Bernd WurstMar 26, 2007 3:54 am 
James HomuthMar 26, 2007 3:57 am 
Bernd WurstMar 26, 2007 4:02 am 
James HomuthMar 26, 2007 5:08 am 
Gordon MessmerMar 26, 2007 8:25 am 
James HomuthMar 26, 2007 8:48 am 
Gordon MessmerMar 26, 2007 9:34 am 
James HomuthMar 26, 2007 5:51 pm 
Gordon MessmerMar 26, 2007 9:57 pm 
Bernd WurstMar 26, 2007 10:35 pm 
James HomuthMar 27, 2007 3:19 am 
Gordon MessmerMar 27, 2007 6:46 am 
James HomuthMar 27, 2007 8:52 am 
Bernd WurstMar 27, 2007 10:29 am 
James HomuthMar 28, 2007 3:39 pm 
Bernd WurstMar 28, 2007 10:42 pm 
James HomuthMar 31, 2007 4:21 am 
James HomuthMar 31, 2007 4:25 am 
Bernd WurstMar 31, 2007 6:54 am 
James HomuthMar 31, 2007 7:32 am 
Bernd WurstMar 31, 2007 7:42 am 
James HomuthMar 31, 2007 9:05 am 
James HomuthMar 31, 2007 9:12 am 
Actions with this message:
Paste this link in email or IM:
Paste this link in email or IM:
Atom feed for this thread
Paste this URL into your reader:
Subject:Re: [courier-users] Can't log in via courier-pop3Actions...
From:James Homuth (jam@the-jdh.com)
Date:Mar 28, 2007 3:39:51 pm
List:net.sourceforge.lists.courier-users

At 01:29 PM 3/27/2007, you wrote:

Hi.

Am Dienstag, 27. März 2007 schrieb James Homuth:

MYSQL_HOME_FIELD /home/vmail

A **FIELD** is not a value. If you give a value here, quote it!

# MYSQL_WHERE_CLAUSE email='$(local_part)@$(domain)'

Are you kidding?

You stated that your SQL query has this appended. So why is there a # in front of the line?

I will no longer try to figure out if you don't cooperate. :-(

Please provide:

1. full authmysqlrc file (except credentials!), uncensored and unshortened and uninterpreted. Just copy, remove password and attach to your message.

2. some lines from mysql-query-log made with the configuration you attached in step 1 that show the mysql-query authdaemon issues.

Shouldn't be too hard to provide this, I hope. :)

Config file attached.

70 Connect mail_admin@localhost on 70 Init DB mail 70 Query SELECT email, password, "", 5000, 5000, /home/vmail/$(domain)/$(local_part)/, "", "", "", "" FRO M users WHERE email = "jam@nova.the-jdh.com" 70 Quit

##VERSION: $Id: authmysqlrc,v 1.17 2004/04/20 01:38:17 mrsam Exp $ # # Copyright 2000-2004 Double Precision, Inc. See COPYING for # distribution information. # # Do not alter lines that begin with ##, they are used when upgrading # this configuration. # # authmysqlrc created from authmysqlrc.dist by sysconftool # # DO NOT INSTALL THIS FILE with world read permissions. This file # might contain the MySQL admin password! # # Each line in this file must follow the following format: # # field[spaces|tabs]value # # That is, the name of the field, followed by spaces or tabs, followed by # field value. Trailing spaces are prohibited.

##NAME: LOCATION:0 # # The server name, userid, and password used to log in.

MYSQL_SERVER 127.0.0.1 MYSQL_USERNAME mail_admin MYSQL_PASSWORD removed ##NAME: MYSQL_SOCKET:0 # # MYSQL_SOCKET can be used with MySQL version 3.22 or later, it specifies the # filesystem pipe used for the connection # # MYSQL_SOCKET /var/run/mysqld/mysqld.sock

##NAME: MYSQL_PORT:0 # # MYSQL_PORT can be used with MySQL version 3.22 or later to specify a port to # connect to.

MYSQL_PORT 0

##NAME: MYSQL_OPT:0 # # Leave MYSQL_OPT as 0, unless you know what you're doing.

MYSQL_OPT 0

##NAME: MYSQL_DATABASE:0 # # The name of the MySQL database we will open:

MYSQL_DATABASE mail

##NAME: MYSQL_USER_TABLE:0 # # The name of the table containing your user data. See README.authmysqlrc # for the required fields in this table. MYSQL_USER_TABLE users

##NAME: MYSQL_CRYPT_PWFIELD:0 # # Either MYSQL_CRYPT_PWFIELD or MYSQL_CLEAR_PWFIELD must be defined. Both # are OK too. crypted passwords go into MYSQL_CRYPT_PWFIELD, cleartext # passwords go into MYSQL_CLEAR_PWFIELD. Cleartext passwords allow # CRAM-MD5 authentication to be implemented.

MYSQL_CRYPT_PWFIELD password

##NAME: MYSQL_CLEAR_PWFIELD:0 # # # MYSQL_CLEAR_PWFIELD password

##NAME: MYSQL_DEFAULT_DOMAIN:0 # # If DEFAULT_DOMAIN is defined, and someone tries to log in as 'user', # we will look up 'user@DEFAULT_DOMAIN' instead. # # # DEFAULT_DOMAIN example.com

##NAME: MYSQL_UID_FIELD:0 # # Other fields in the mysql table: # # MYSQL_UID_FIELD - contains the numerical userid of the account # MYSQL_UID_FIELD 5000

##NAME: MYSQL_GID_FIELD:0 # # Numerical groupid of the account

MYSQL_GID_FIELD 5000

##NAME: MYSQL_LOGIN_FIELD:0 # # The login id, default is id. Basically the query is: # # SELECT MYSQL_UID_FIELD, MYSQL_GID_FIELD, ... WHERE id='loginid' #

MYSQL_LOGIN_FIELD email

##NAME: MYSQL_HOME_FIELD:0 #

MYSQL_HOME_FIELD /home/vmail/$(domain)/$(local_part)/ #MYSQL_MAILDIRFIELD Maildir

##NAME: MYSQL_NAME_FIELD:0 # # The user's name (optional)

#MYSQL_NAME_FIELD name

##NAME: MYSQL_MAILDIR_FIELD:0 # # This is an optional field, and can be used to specify an arbitrary # location of the maildir for the account, which normally defaults to # $HOME/Maildir (where $HOME is read from MYSQL_HOME_FIELD).

# You still need to provide a MYSQL_HOME_FIELD, even if you uncomment this # out. # # MYSQL_MAILDIR_FIELD maildir ##NAME: MYSQL_DEFAULTDELIVERY:0 # # Courier mail server only: optional field specifies custom mail delivery # instructions for this account (if defined) -- essentially overrides # DEFAULTDELIVERY from ${sysconfdir}/courierd # # MYSQL_DEFAULTDELIVERY defaultdelivery

##NAME: MYSQL_QUOTA_FIELD:0 # # Define MYSQL_QUOTA_FIELD to be the name of the field that can optionally # specify a maildir quota. See README.maildirquota for more information # MYSQL_QUOTA_FIELD quota

##NAME: MYSQL_AUXOPTIONS:0 # # Auxiliary options. The MYSQL_AUXOPTIONS field should be a char field that # contains a single string consisting of comma-separated "ATTRIBUTE=NAME" # pairs. These names are additional attributes that define various per-account # "options", as given in INSTALL's description of the "Account OPTIONS" # setting. # # MYSQL_AUXOPTIONS_FIELD auxoptions # # You might want to try something like this, if you'd like to use a bunch # of individual fields, instead of a single text blob: # # MYSQL_AUXOPTIONS_FIELD
CONCAT("disableimap=",disableimap,",disablepop3=",disablepop3,",disablewebmail=",disablewebmail,",sharedgroup=",sharedgroup) # # This will let you define fields called "disableimap", etc, with the end result # being something that the OPTIONS parser understands.

##NAME: MYSQL_WHERE_CLAUSE:0 # # This is optional, MYSQL_WHERE_CLAUSE can be basically set to an arbitrary # fixed string that is appended to the WHERE clause of our query # MYSQL_WHERE_CLAUSE email = '$(local_part)@$(domain)'

##NAME: MYSQL_SELECT_CLAUSE:0 # # (EXPERIMENTAL) # This is optional, MYSQL_SELECT_CLAUSE can be set when you have a database, # which is structuraly different from proposed. The fixed string will # be used to do a SELECT operation on database, which should return fields # in order specified bellow: # # username, cryptpw, clearpw, uid, gid, home, maildir, quota, fullname, options # # The username field should include the domain (see example below). # # Enabling this option causes ignorance of any other field-related # options, excluding default domain. # # There are two variables, which you can use. Substitution will be made # for them, so you can put entered username (local part) and domain name # in the right place of your query. These variables are: # $(local_part), $(domain), $(service) # # If a $(domain) is empty (not given by the remote user) the default domain # name is used in its place. # # $(service) will expand out to the service being authenticated: imap, imaps, # pop3 or pop3s. Courier mail server only: service will also expand out to # "courier", when searching for local mail account's location. In this case, # if the "maildir" field is not empty it will be used in place of # DEFAULTDELIVERY. Courier mail server will also use esmtp when doing # authenticated ESMTP. # # This example is a little bit modified adaptation of vmail-sql # database scheme: # # MYSQL_SELECT_CLAUSE SELECT CONCAT(popbox.local_part, '@', popbox.domain_name),
\ # CONCAT('{MD5}', popbox.password_hash), \ # popbox.clearpw, \ # domain.uid, \ # domain.gid, \ # CONCAT(domain.path, '/', popbox.mbox_name), \ # '', \ # domain.quota, \ # '', \ # CONCAT("disableimap=",disableimap,",disablepop3=", \ # disablepop3,",disablewebmail=",disablewebmail, \ # ",sharedgroup=",sharedgroup) \ # FROM popbox, domain \ # WHERE popbox.local_part = '$(local_part)' \ # AND popbox.domain_name = '$(domain)' \ # AND popbox.domain_name = domain.domain_name

##NAME: MYSQL_ENUMERATE_CLAUSE:0 # # {EXPERIMENTAL} # Optional custom SQL query used to enumerate accounts for authenumerate, # in order to compile a list of accounts for shared folders. The query # should return the following fields: name, uid, gid, homedir, maildir # # Example: # MYSQL_ENUMERATE_CLAUSE SELECT CONCAT(popbox.local_part, '@',
popbox.domain_name), \ # domain.uid, \ # domain.gid, \ # CONCAT(domain.path, '/', popbox.mbox_name), \ # '' \ # FROM popbox, domain \ # WHERE popbox.local_part = '$(local_part)' \ # AND popbox.domain_name = '$(domain)' \ # AND popbox.domain_name = domain.domain_name

##NAME: MYSQL_CHPASS_CLAUSE:0 # # (EXPERIMENTAL) # This is optional, MYSQL_CHPASS_CLAUSE can be set when you have a database, # which is structuraly different from proposed. The fixed string will # be used to do an UPDATE operation on database. In other words, it is # used, when changing password. # # There are four variables, which you can use. Substitution will be made # for them, so you can put entered username (local part) and domain name # in the right place of your query. There variables are: # $(local_part) , $(domain) , $(newpass) , $(newpass_crypt) # # If a $(domain) is empty (not given by the remote user) the default domain # name is used in its place. # $(newpass) contains plain password # $(newpass_crypt) contains its crypted form # # MYSQL_CHPASS_CLAUSE UPDATE popbox \ # SET clearpw='$(newpass)', \ # password_hash='$(newpass_crypt)' \ # WHERE local_part='$(local_part)' \ # AND domain_name='$(domain)' #