First shutdown cyrus-imapd.

The current directory structure for user jon_doecom is like this (with
hashimapspool: off)

seendb: /var/lib/imap/user/j/jon_doecom.seen
subdb: /var/lib/imap/user/j/jon_doecom.sub
spool: /var/spool/imap/user/jon_doecom/
quota: /var/lib/imap/quota/j/user.jon_doecom
sieve: /var/lib/imap/sieve/j/jon_doecom/

For the virtual domain support to find everything.. The directory
structures need to be like this.. (mapping jon_doecom -> [EMAIL PROTECTED])

seendb: /var/lib/imap/domain/d/doe.com/user/j/jon.seen
subdb: /var/lib/imap/domain/d/doe.com/user/j/jon.sub
spool: /var/spool/imap/domain/doe.com/user/jon/
quota: /var/lib/imap/domain/d/doe.com/quota/j/user.jon
sieve: /var/lib/imap/sieve/domain/d/doe.com/j/jon/

Now a few files need to have their data updated as well.
the mailboxes.db needs to be dumped by using the ctl_mboxlist 9which
needs to be run as the cyrus user).. Now i'm assuming Simon Matter's RPM
here.. you may have to find the ctl_mboxlist program on  your system..

su - cyrus
/usr/lib/cyrus-imapd/ctl_mboxlist -d > mailboxes.txt

Then you need to edit the mailboxes.txt file so that it goes from this

user.jon_doecom default jon_doecom      lrswipcda       
user.jon_doecom.somefolder      default jon_doecom      lrswipcda       

To this

doe.com!user.jon        default [EMAIL PROTECTED]       lrswipcda       
doe.com!user.jon.somefolder     default [EMAIL PROTECTED]       lrswipcda       

Note that there are tabs between everything not spaces. and a trailing
tab at the end of the line, and an exlamation mark between the domain
and the user.

Next you will have to update the jon_doecom.sub file (renaming to
jon.sub in the new directory) so that it goes from this

user.jon_doecom
user.jon_doecom.somefolder

To this

doe.com!user.jon
doe.com!user.jon.somefolder

Once all that is done for all the users.. set the virtdomains: userid in
imapd.conf and start up cyrus-imapd.

You will probably have to fix up your SQL database so that the full
username ([EMAIL PROTECTED]) is stored in the username field.. OR split it up
into username and domain.. then you'll have to change your query to use
%p for the part before the @ and %r for the part after the @.. Make sure
you are using the 2.1.17 release of cyrus-sasl as well.

If you follow all of the instructions above,every should go smoothly,
with a few exceptions.. domains that begin with a number do not end up
in a numbered hash directory.. ie..
3somesite.tld does not go in a 3/3somesite.tld.. it actually goes into
the q directory q/3somesite.tld.. I haven't investigated that much
further to figure out where all of the numbers go..

If you adept at perl programming you may download my partially started
conversion script here
http://svn.outoforder.cc/svn/mailserver/trunk/cyrus-spool.pl
Note it currently doesn't actually make any changes.. it only shows what
would be done. It still has a bit of work to do before it's finished.

On Tue, 2004-03-23 at 01:36, Paul Dorneanu wrote:
> Hello Edward,
> 
> finally someone answered to my problem.
> 
> Here's what I have:
> configdirectory: /var/lib/imap
> partition-default: /var/spool/imap
> sievedir: /var/lib/imap/sieve
> sendmail: /usr/sbin/sendmail
> lmtpsocket: /var/spool/postfix/lmtp
> 
> admins: cyrus
> allowanonymouslogin: no
> sieveuserhomedir: no
> hashimapspool: no
> allowplaintext: yes
> servername: ns1.holman.net
> 
> sasl_pwcheck_method: auxprop
> sasl_sql_engine: mysql
> sasl_sql_hostnames: 127.0.0.1
> sasl_sql_user: user
> sasl_sql_passwd:  ***
> sasl_sql_database: mail_db
> sasl_sql_select: select password from users where username='%u'
> sasl_sql_verbose: yes
> sasl_verbose: yes
> sasl_mysql_verbose: yes
> sasl_mech_list: PLAIN
> 
> tls_cert_file: /usr/share/ssl/certs/cyrus-imapd.pem
> tls_key_file: /usr/share/ssl/certs/cyrus-imapd.pem
> tls_ca_file: /usr/share/ssl/certs/ca-bundle.crt
> 
> deleteright: c
> poptimeout: 3
> verbose: yes
> 
> ---------------------------
> I use something like user_domaintld and I want to be able to have 
> [EMAIL PROTECTED]
> 
> An update script will be great. Although, I did not found what there is 
> to convert.
> 
> Thanks for the help.
> 
> 
> Edward Rudd wrote:
> 
> >Oh yeah. this is a fun problem to solve..
> >I went through this on my systems a few weeks ago..
> >you need to move all your mailboxes around, quota files, subscription
> >files, and sieve scripts, update the mailboxes.db, and update each users
> >.sub (subscription) file. And of course this all depends on how you have
> >your mailboxes currently setup.
> >  
> >
> 
-- 
Edward Rudd <[EMAIL PROTECTED]>
Website http://outoforder.cc/

---
Home Page: http://asg.web.cmu.edu/cyrus
Wiki/FAQ: http://cyruswiki.andrew.cmu.edu
List Archives/Info: http://asg.web.cmu.edu/cyrus/mailing-list.html

Reply via email to