[megoldva] Exim4 MySQL Maildir

Fórumok

Sziasztok!

A címben említett dologgal az lenne a problémám, hogy csak mailbox-ba kapom meg a leveleket.
System wide-módon szeretném beállítani a maildir-t, mint a dc_localdelivery='maildir_home' tenné, de itt virtuális userek lennének, Mysql táblában tárolva.

    A következőket már végig csináltam:

CREATE TABLE domains (
userid char(128) NOT NULL default ”,
KEY userid (userid)
) ENGINE=MyISAM;

CREATE TABLE users ( id char(128) NOT NULL default ”, crypt char(128) NOT NULL default ”, clear char(128) NOT NULL default ”, name char(128) NOT NULL default ”, uid int(10) unsigned default ‘8’, gid int(10) unsigned default ‘8’, home char(255) NOT NULL default ”, maildir char(255) NOT NULL default ”, quota char(255) NOT NULL default ”, KEY id (id) ) ENGINE=MyISAM;

INSERT INTO users (id, crypt, clear, name, uid, gid, home, maildir, quota) VALUES (‘johnnie@example.com’, ENCRYPT(‘johnniepass’), ‘johnniepass’, ‘johnnie’, 8, 8, ‘/usr/local/vdomains/example.com/users/johnnie’, ‘/usr/local/vdomains/example.com/users/johnnie/Maildir/’, ”);

Itt különösen ügyeltem a Maildir/-re.

Configuring Courier

File: /etc/courier/authdaemonrc
Set: authmodulelist="authmysql"

File: /etc/courier/authmysqlrc
Set:

MYSQL_SERVER localhost
MYSQL_USERNAME mail
MYSQL_PASSWORD secret
MYSQL_SOCKET /var/run/mysqld/mysqld.sock
MYSQL_DATABASE mail
MYSQL_USER_TABLE users
MYSQL_CRYPT_PWFIELD crypt
MYSQL_UID_FIELD uid
MYSQL_GID_FIELD gid
MYSQL_LOGIN_FIELD id
MYSQL_HOME_FIELD home
MYSQL_NAME_FIELD name

Ezek is rendben lennének.

A domaineket még jól kezeli:

domainlist local_domains = localhost:january.randomsequence.com:mysql;SELECT userid FROM domains WHERE userid='$domain';

A virtuális usereket beállítottam.
New File: /etc/exim4/conf.d/router/999_exim4-config_mysql_user

virtual_user:
driver = redirect
allow_fail
allow_defer
data = ${lookup mysql{ SELECT maildir FROM users WHERE id='${local_part}@${domain}' }}
directory_transport = address_directory

virtual_catchall_user:
driver = redirect
allow_fail
allow_defer
data = ${lookup mysql{ SELECT maildir FROM users WHERE id='*@${domain}' }}
directory_transport = address_directory

És ezt is beállítottam, természetesen a saját adataimmal.

Edit File: /etc/exim4/conf.d/transport/35_exim4-config_address_directory

This transport is used for handling file addresses generated by alias

or .forward files if the path ends in "/", which causes it to be treated

as a directory name rather than a file name.

address_directory:
debug_print = "T: address_directory for $local_part@$domain"
driver = appendfile
envelope_to_add = true
return_path_add = true
check_string = ""
escape_string = ""
maildir_format = true
mode = 0600
ser = mail
group = mail

Mindemellett még a config-maildir-home-ban a
directory = /var/vmail/${domain}/${local_part}/Maildir/ is be lett állítva.

És mégis mailboxba kapom a leveleket.

Vajon mit kell még megadnom?
A mysql_servers is be van állítva.

Hozzászólások

Már meg is lett oldva.
Az user amivel próbáltam lokális user is volt.
Azért meghagyom, hátha valaki hasznát veszi!