LINUX.ORG.RU
ФорумAdmin

Courier-IMAP + MySQL


0

0

Поднял exim + mysql 
дамп таблици с юзерами 

REATE TABLE `users` (
  `id` varchar(64) NOT NULL default '',
  `passwd` varchar(64) NOT NULL default '',
  `uid` int(10) unsigned default '800',
  `gid` int(10) unsigned default '100',
  `mbox_host` varchar(128) NOT NULL default 'xxx.xx',
  `shell` varchar(32) character set latin1 collate latin1_bin default '/sbin/nologin',
  `home` varchar(128) character set latin1 collate latin1_bin default '',
  `quota` tinyint(4) default '15',
  `active` enum('Y','N') default 'Y',
  `start_date` date NOT NULL default '0000-00-00',
  `expire_date` date NOT NULL default '2030-00-00',
  PRIMARY KEY  (`id`,`mbox_host`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

INSERT INTO `users` (`id`, `passwd`, `uid`, `gid`, `mbox_host`, `shell`, `home`, `quota`, `active`, `start_date`, `expire_date`) VALUES ('baldden', '123', 93, 12, 'user.dtv.kz', '/sbin/nologin', '/var/spool/mail/user.dtv.kz/baldden', 15, 'Y', '0000-00-00', '2030-00-00');

Как теперь связать эту таблицу с Courier-IMAP , что писать в конфиге у меня 
/usr/lib/courier-imap/etc/authmysqlrc
MYSQL_SERVER            192.168.231.11
MYSQL_USERNAME          root
MYSQL_PASSWORD         xxxx
MYSQL_PORT              3306
MYSQL_OPT               0
MYSQL_DATABASE          exim
MYSQL_USER_TABLE        users
MYSQL_CLEAR_PWFIELD     passwd
MYSQL_UID_FIELD         '93'
MYSQL_GID_FIELD         '12'
MYSQL_LOGIN_FIELD       id
#MYSQL_HOME_FIELD        '/'
#MYSQL_NAME_FIELD        id
MYSQL_MAILDIR_FIELD     home


в логах пишет maillog
May 26 17:05:13 collector pop3d: Connection, ip=[::ffff:127.0.0.1]
May 26 17:05:32 collector authdaemond: received auth request, service=pop3, authtype=login
May 26 17:05:32 collector authdaemond: authmysql: trying this module
May 26 17:05:32 collector authdaemond: SQL query: SELECT id, "", passwd, '93', '12', home, home, "", "", "" FROM users WHERE id = "baldden@user.dtv.kz"
May 26 17:05:32 collector authdaemond: zero rows returned
May 26 17:05:32 collector authdaemond: no password available to compare
May 26 17:05:32 collector authdaemond: authmysql: REJECT - try next module
May 26 17:05:32 collector authdaemond: FAIL, all modules rejected
May 26 17:05:32 collector pop3d: LOGIN FAILED, user=baldden@user.dtv.kz, ip=[::ffff:127.0.0.1]
May 26 17:25:31 collector pop3d: LOGOUT, ip=[::ffff:127.0.0.1]
May 26 17:25:31 collector pop3d: Disconnected, ip=[::ffff:127.0.0.1]


посоветуйте, что написать в конфиге Courier-IMAP
anonymous

Re: Courier-IMAP + MySQL

Можно для начала попробовать:
1. authtest baldden
2. authtest baldden@user.dtv.kz

И что в логах?

anonymous ()
Ответ на: Re: Courier-IMAP + MySQL от anonymous

Re: Courier-IMAP + MySQL

[root@collector sbin]# ./authtest baldden
Authentication succeeded.

     Authenticated: baldden  (uid 93, gid 12)
    Home Directory: /var/spool/mail/user.dtv.kz/baldden
           Maildir: /var/spool/mail/user.dtv.kz/baldden
             Quota: (none)
Encrypted Password: (none)
Cleartext Password: 123
           Options: (none)
[root@collector sbin]# ./authtest baldden@user.dtv.kz
Authentication FAILED: Operation not permitted


maillog
May 26 17:58:10 collector authdaemond: received userid lookup request: baldden
May 26 17:58:10 collector authdaemond: authmysql: trying this module
May 26 17:58:10 collector authdaemond: SQL query: SELECT id, "", passwd, '93', '12', home, home, "", "", "" FROM users WHERE id = "baldden"
May 26 17:58:10 collector authdaemond: Authenticated: sysusername=<null>, sysuserid=93, sysgroupid=12, homedir=/var/spool/mail/user.dtv.kz/baldden, address=baldden, fullname=<null>, maildir=/var/spool/mail/user.dtv.kz/baldden, quota=<null>, options=<null>
May 26 17:58:10 collector authdaemond: Authenticated: clearpasswd=123, passwd=<null>



May 26 17:58:27 collector authdaemond: received userid lookup request: baldden@user.dtv.kz
May 26 17:58:27 collector authdaemond: authmysql: trying this module
May 26 17:58:27 collector authdaemond: SQL query: SELECT id, "", passwd, '93', '12', home, home, "", "", "" FROM users WHERE id = "baldden@user.dtv.kz"
May 26 17:58:27 collector authdaemond: zero rows returned
May 26 17:58:27 collector authdaemond: authmysql: REJECT - try next module
May 26 17:58:27 collector authdaemond: FAIL, all modules rejected

anonymous ()
Ответ на: Re: Courier-IMAP + MySQL от anonymous

Re: Courier-IMAP + MySQL

[root@collector sbin]# telnet 127.0.0.1 110 Trying 127.0.0.1... Connected to localhost.localdomain (127.0.0.1). Escape character is '^]'. +OK Hello there. user baldden +OK Password required. pass 123 -ERR Maildir invalid (no 'cur' directory) Connection closed by foreign host.

maillog May 26 18:22:30 collector pop3d: Connection, ip=[::ffff:127.0.0.1] May 26 18:22:37 collector authdaemond: received auth request, service=pop3, authtype=login May 26 18:22:37 collector authdaemond: authmysql: trying this module May 26 18:22:37 collector authdaemond: SQL query: SELECT id, "", passwd, '93', '12', home, home, "", "", "" FROM users WHERE id = "baldden" May 26 18:22:37 collector authdaemond: authmysql: sysusername=<null>, sysuserid=93, sysgroupid=12, homedir=/var/spool/mail/user.dtv.kz/baldden, address=baldden, fullname=<null>, maildir=/var/spool/mail/user.dtv.kz/baldden, quota=<null>, options=<null> May 26 18:22:37 collector authdaemond: authmysql: clearpasswd=123, passwd=<null> May 26 18:22:37 collector authdaemond: Authenticated: sysusername=<null>, sysuserid=93, sysgroupid=12, homedir=/var/spool/mail/user.dtv.kz/baldden, address=baldden, fullname=<null>, maildir=/var/spool/mail/user.dtv.kz/baldden, quota=<null>, options=<null> May 26 18:22:37 collector authdaemond: Authenticated: clearpasswd=123, passwd=<null> May 26 18:22:37 collector pop3d: LOGIN, user=baldden, ip=[::ffff:127.0.0.1] May 26 18:22:37 collector pop3d: scancur opendir("cur"): No such file or directory

anonymous ()
Ответ на: Re: Courier-IMAP + MySQL от anonymous

Re: Courier-IMAP + MySQL

[root@collector sbin]# telnet 127.0.0.1 110
Trying 127.0.0.1...
Connected to localhost.localdomain (127.0.0.1).
Escape character is '^]'.
+OK Hello there.
user baldden
+OK Password required.
pass 123
-ERR Maildir invalid (no 'cur' directory)
Connection closed by foreign host.


maillog
May 26 18:22:30 collector pop3d: Connection, ip=[::ffff:127.0.0.1]
May 26 18:22:37 collector authdaemond: received auth request, service=pop3, authtype=login
May 26 18:22:37 collector authdaemond: authmysql: trying this module
May 26 18:22:37 collector authdaemond: SQL query: SELECT id, "", passwd, '93', '12', home, home, "", "", "" FROM users WHERE id = "baldden"
May 26 18:22:37 collector authdaemond: authmysql: sysusername=<null>, sysuserid=93, sysgroupid=12, homedir=/var/spool/mail/user.dtv.kz/baldden, address=baldden, fullname=<null>, maildir=/var/spool/mail/user.dtv.kz/baldden, quota=<null>, options=<null>
May 26 18:22:37 collector authdaemond: authmysql: clearpasswd=123, passwd=<null>
May 26 18:22:37 collector authdaemond: Authenticated: sysu-sername=<null>, sysuserid=93, sysgroupid=12, homedir=/var/spool/mail/user.dtv.kz/baldden, address=baldden, fullname=<null>, maildir=/var/spool/mail/user.dtv.kz/baldden, quota=<null>, options=<null>
May 26 18:22:37 collector authdaemond: Authenticated: clearpasswd=123, passwd=<null>
May 26 18:22:37 collector pop3d: LOGIN, user=baldden, ip=[::ffff:127.0.0.1]
May 26 18:22:37 collector pop3d: scancur opendir("cur"): No such file or directory


у меня почему то exim сам создал maildir  и в нем нет папок , я так понял Courier ищет папку cur

anonymous ()
Ответ на: Re: Courier-IMAP + MySQL от anonymous

Re: Courier-IMAP + MySQL

>> /authtest baldden
Authentication succeeded.

Это хорошо.

>> ./authtest baldden@user.dtv.kz
Authentication FAILED: Operation not permitted

У Вас в authmysqlrc нет

DEFAULT_DOMAIN user.dtv.kz

anonymous ()
Ответ на: Re: Courier-IMAP + MySQL от anonymous

Re: Courier-IMAP + MySQL

И еще покажите вывод mysql-

# mysql -u root -p
use mail; или какая у Вас база
далее посмотрите, что получилось у Вас после insert-a
select * from users;



anonymous ()
Ответ на: Re: Courier-IMAP + MySQL от anonymous

Re: Courier-IMAP + MySQL

в общем меня устраивает что ./authtest baldden
работает

сейчас следующая проблема
указал полный путь в таблице до maildir
/var/spool/mail/user.dtv.kz/baldden/Maildir

создал в Maildir папку cur и все работает, но теперь прикол, когда приходит письмо exim создает новую папку в /var/spool/mail/user.dtv.kz/baldden/Maildir

как это безобразие остановить

anonymous ()
Ответ на: Re: Courier-IMAP + MySQL от anonymous

Re: Courier-IMAP + MySQL

mysql> select * from users;
+---------+--------+------+------+-------------+---------------+----------------
-----------------------------+-------+--------+------------+-------------+
| id      | passwd | uid  | gid  | mbox_host   | shell         | home                                        | quota | active | start_date | expire_date |
+---------+--------+------+------+-------------+---------------+----------------
-----------------------------+-------+--------+------------+-------------+
| baldden | 123    |   93 |   12 | user.dtv.kz | /sbin/nologin | /var/spool/mail/user.dtv.kz/baldden/Maildir |    15 | Y      | 0000-00-00 | 2030-00-00  |
+---------+--------+------+------+-------------+---------------+----------------
-----------------------------+-------+--------+------------+-------------+
1 row in set (0.00 sec)

anonymous ()
Ответ на: Re: Courier-IMAP + MySQL от anonymous

Re: Courier-IMAP + MySQL

угу теперь все ок, кроме exim кладет новое письмо в /var/spool/mail/user.dtv.kz/baldden/Maildir а Courier-IMAP новые письма ищет в /var/spool/mail/user.dtv.kz/baldden/Maildir/cur

anonymous ()
Ответ на: Re: Courier-IMAP + MySQL от anonymous

Re: Courier-IMAP + MySQL

Запись в поле maildir ( в вашем случае home ) должна заканчиваться слешем /

т. е : /var/spool/mail/user.dtv.kz/baldden/

anonymous ()
Ответ на: Re: Courier-IMAP + MySQL от anonymous

Re: Courier-IMAP + MySQL

И еще
Запись в поле home у Вас
>> /var/spool/mail/user.dtv.kz/baldden/Maildir

А insert Вы сказали:
INSERT INTO `users` (`id`, `passwd`, `uid`, `gid`, `mbox_host`, `shell`, `home`, `quota`, `active`, `start_date`, `expire_date`) VALUES ('baldden', '123', 93, 12, 'user.dtv.kz', '/sbin/nologin', '/var/spool/mail/user.dtv.kz/baldden', 15, 'Y', '0000-00-00', '2030-00-00');

Еще раз запись в поле maildir должна заканчиваться /


anonymous ()
Ответ на: Re: Courier-IMAP + MySQL от anonymous

Re: Courier-IMAP + MySQL

сделал  /var/spool/mail/user.dtv.kz/baldden/Maildir/

все равно exim кладет письмо  /var/spool/mail/user.dtv.kz/baldden/Maildir/
а  /var/spool/mail/user.dtv.kz/baldden/Maildir/cur

надо что то в exim менять, а что не знаю

anonymous ()
Ответ на: Re: Courier-IMAP + MySQL от anonymous

Re: Courier-IMAP + MySQL

трабла была с тем что не собрал exim с SUPPORT_MAILDIR=YES, пересобрал, теперь все ок.

спасибо за помощь с Courier-IMAP!

anonymous ()
Ответ на: Re: Courier-IMAP + MySQL от anonymous

Re: Courier-IMAP + MySQL

следующая проблема. добил второй хост, как заставить Courier делать запрос типа

SELECT id, "", passwd, '513', '12', home, 'Maildir', "", "", "" FROM users WHERE id ='baldden' AND mbox_host = 'test.vas.kz'

а не просто SELECT id, "", passwd, '513', '12', home, 'Maildir', "", "", "" FROM users WHERE id ='baldden'

пробую 

MYSQL_SERVER            10.10.10.1
MYSQL_USERNAME          root
MYSQL_PASSWORD          gfhjkm
MYSQL_PORT              3306
MYSQL_OPT               0
MYSQL_DATABASE          exim

MYSQL_USER_TABLE        users
MYSQL_CLEAR_PWFIELD     passwd

DEFAULT_DOMAIN          test.vas.kz
MYSQL_SELECT_CLAUSE SELECT id, "", passwd, '513', '12', home, 'Maildir', "", "", "" FROM users WHERE id ='$(local_part)' AND mbox_host = '$(domain)'


он в домайн подставляет только значение DEFAULT_DOMAIN          test.vas.kz, как сделать чтобы он брал домен с "мыла" ?

anonymous ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.