mail problems
hi, i recently installed the cyrus mail system and am having a few problems... pop3 based service is working fine, however only with clear text passwords (which is not ideal) i have SSL installed, and have instructed it to tunnel an SSL connection to the POP and IMAP servers, however i cannot connect to the server and recieve mail when i enable SSL on my mail client. any pointers? thanks dylan
Create mailbox: permission denied
wvg, if you are not subscribed to the info-cyrus list, please do so. Your problem is not with SASL, but your imap setup. I think it is time to take this back to the list now that we have better defined the problem. List: please excuse the length of this message, it started out with: for some reason i can not make a user mail box mailbox with cyrus2 any ideas and progressed from there. To summarize: The cyrus user authenticates fine (see the results of imtest and entries in /var/log/messages), but can not create mailboxes. The system: freebsd 4.7 cyrus-imapd 2.1.11 cyrus-sasl 2.?.? (wvg, could you supply the list with this info?) the system uses saslauthd for authentication. Among the admins in /etc/imapd.conf is cyrus. The user used mkimap (as cyrus) to create everything, but is unable to create mailboxes. A plain user can authenticate using imtest and issue commands to the imap server, but (of course) no mailbox exists. wvg, is cyrus soppesed to checkpiont so much my log is full of those enteries This is controlled by the checkpoint setting in the EVENTS section of /etc/cyrus.conf, which in your case is set to 30 minutes (the default), seeems like the same error i get with cyradm do you think i should change the permissions back to cyrus and group mail (pretty sure i already tried that a few times but i can try agian) or does having cyrus in the mail group have the same affect i also read some where that i should add daemeon to the mail group as i have done already. i do not like messing around with groups and permissions and modes in case it still does not work and i forget to change things back it just gets messey. xxx.xxx.xx.net ~ $imtest -u cyrus -a cyrus localhost S: * OK xxx.xxx.xx.net Cyrus IMAP4 v2.1.11 server ready C: C01 CAPABILITY S: * CAPABILITY IMAP4 IMAP4rev1 ACL QUOTA LITERAL+ MAILBOX-REFERRALS NAMESPACE UIDPLUS ID NO_ATOMIC_RENAME UNSELECT CHILDREN MULTIAPPEND SORT THREAD=ORDEREDSUBJECT THREAD=REFERENCES IDLE AUTH=DIGEST-MD5 AUTH=CRAM-MD5 S: C01 OK Completed C: A01 AUTHENTICATE DIGEST-MD5 S: + bm9uY2U9IjhnQktPMWNJTWVTVnJndC9NUlM1emN2bE4reFdZZGsrcUo1alRYOVd6Qmc9IixyZWFsbT0idjIwLnZ4di4yeS5uZXQiLHFvcD0iYXV0aCxhdXRoLWludCxhdXRoLWNvbmYiLGNpcGhlcj0icmM0LTQwLHJjNC01NixyYzQsZGVzLDNkZXMiLG1heGJ1Zj00MDk2LGNoYXJzZXQ9dXRmLTgsYWxnb3JpdGhtPW1kNS1zZXNz Please enter your password: C: dXNlcm5hbWU9ImN5cnVzIixyZWFsbT0idjIwLnZ4di4yeS5uZXQiLG5vbmNlPSI4Z0JLTzFjSU1lU1ZyZ3QvTVJTNXpjdmxOK3hXWWRrK3FKNWpUWDlXekJnPSIsY25vbmNlPSJ4ODdMTFFka2cvQlluRVZVR1dISitjTnQyQlVWSlN3OFA1Y3RiRFpKRmswPSIsbmM9MDAwMDAwMDEscW9wPWF1dGgtY29uZixjaXBoZXI9InJjNCIsbWF4YnVmPTEwMjQsZGlnZXN0LXVyaT0iaW1hcC9sb2NhbGhvc3Qudnh2LjJ5Lm5ldCIscmVzcG9uc2U9NDBiMzVmNTA2NmI1YzJkZGRhZmVkNGFjNjkyOGEzMjY= S: + cnNwYXV0aD1iN2QxNzRmMWQ5NGE1NTExM2UxNmNmNGQ5NjBlYTVkNw== C: S: A01 OK Success (privacy protection) Authenticated. Security strength factor: 128 . create user.rmvg . NO Permission denied here is /var/log/messages Jan 29 13:48:46 v20 ctl_cyrusdb[6067]: checkpointing cyrus databases Jan 29 13:48:46 v20 ctl_cyrusdb[6067]: done checkpointing cyrus databases Jan 29 14:18:46 v20 ctl_cyrusdb[6094]: checkpointing cyrus databases Jan 29 14:18:46 v20 ctl_cyrusdb[6094]: done checkpointing cyrus databases Jan 29 14:27:07 v20 imapd[6108]: can't access srvtab file /etc/srvtab: No such file or directory Jan 29 14:27:07 v20 imapd[6108]: OTP unavailable because can't read/write key database /etc/opiekeys Jan 29 14:27:12 v20 imapd[6108]: no user in db Jan 29 14:27:12 v20 imapd[6108]: login: localhost.vxv.2y.net[127.0.0.1] cyrus DIGEST-MD5 User logged is cyrus soppesed to checkpiont so much my log is full of those enteries there is still no /var/log/imapd,log entries thanks but is still need some more advice i am really glad this list exists because i have been banging my head agiant the wall now for sometime adn have gianed nothing on my own your help is much apperciated. On Wed, 29 Jan 2003, Mike O'Rourke wrote: OK, from the imtest, it seems as though all of the SASL stuff is working, so you have a problem in the cyrus-imapd setup. You could try to create the mailbox without using cyradm as indicated on the list previously: imtest -u cyrus -a cyrus localhost and after you successfully authenticate as cyrus, . create user.rmvg this should respond with OK completed The mailbox is then there. If this works, it looks like you have a problem with cyradm or Perl. If it responds with NO and a reason, there is a problem with the cyrus databases created with the mkimap command. Let me know. Mike. wvg [EMAIL PROTECTED] 01/29/03 10:26am seems wierd since i set the permissions to cyrus and the group to mail like they told me to in the confige-install file. does this have something to do with ./mkimap. now they are user cyrus and group cyrus there was no user dir so i created one as the cyrus user now /var/spool/imap looks like this. drwxr-x--- 2 cyrus cyrus 512 Jan 3 20:31
Re: mail problems
On Thu, 30 Jan 2003, dylan wrote: hi, i recently installed the cyrus mail system and am having a few problems... pop3 based service is working fine, however only with clear text passwords (which is not ideal) i have SSL installed, and have instructed it to tunnel an SSL connection to the POP and IMAP servers, however i cannot connect to the server and recieve mail when i enable SSL on my mail client. any pointers? you could start by trying to connect to your IMAPs/POPs server with $ openssl s_client -host hostname.domain -port 993 and $ openssl s_client -host hostname.domain -port 995 to determine if the problem is with your server or your client. what does your /etc/cyrus.conf look like ? -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- Piet RUYSSINCKe-mail: [EMAIL PROTECTED] Unix Systeem Administratie tel: +32 9 264 4733 Directie Informatie- en Communicatietechnologie (ICT) fax: +32 9 264 4994 Universiteit Gent (RUG) Krijgslaan 281, gebouw S9 - 9000 Gent, Belgie -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- Please avoid sending me Word or PowerPoint attachments See http://www.fsf.org/philosophy/no-word-attachments.html
cyradm - urgent!
Hello all, i've been installing cyradm, the perl module perl::imap (or so...) and still: cyradm does not work! i tried also to recompile but no help. The effect is, if i call cyradm, i just get on the next promptline, nothing at all happesn... My system: Red Hat 8.0 Cyrus: 2.1.11 Sasl : 2.0.17 any idea?? Thx in advance for any input... regards, Roger
Re: cyradm - urgent!
Grosswiler Roger schrieb: Hello all, i've been installing cyradm, the perl module perl::imap (or so...) and still: cyradm does not work! i tried also to recompile but no help. The effect is, if i call cyradm, i just get on the next promptline, nothing at all happesn... My system: Red Hat 8.0 Cyrus: 2.1.11 Sasl : 2.0.17 any idea?? Thx in advance for any input... I'm maintaining Cyrus RPMs. Look at http://home.teleport.ch/simix/ BTW, if you want to use RPMs, don't install them on a system where you compiled and installed by hand. Using a clean RedHat 8.0 is the best I can recommend. Simon regards, Roger
getting user quota..
I've got one question.. how to set unit size in getquota command?? when i telnet my imap server, login, and type: admin getquota user.username i got: * QUOTA user.username (STORAGE 1344 1200) but when i execute from the shell: cat /isp/cyrus/var/imap/quota/u/user.username i got 1376789 1200 I would like to got 1376789 inteed of 1344 when i telnet to my imap server.. Have got any idea ?? Thanks in advance.. Andrzej Kwiatkowski
CYRADM: badlogin: OTP [SASL(-13): user not found: no OTP secret indatabase] BUT sasldblistuser2 proves passwd is set
Dear all, Please help in this issue: Trying set up mailboxes via cyradm # cyradm --user cyrus localhost always ends in # cyradm: cannot authenticate to server with as cyrus I get /v/l/imapd.conf: Jan 30 12:14:00 helium imapd[17700]: accepted connection Jan 30 12:14:01 helium imapd[17700]: badlogin: localhost[127.0.0.1] OTP [SASL(-13): user not found: no OTP secret in database] But sasldblistuser2 shows: # sasldblistusers2 cyrus@helium: userPassword cyrus@helium: cmusaslsecretOTP What can I do? I have cyrus-sasl-2.1.10, cyrus-imapd-2.1.11 and openssl-0.9.7.
RE: getting user quota..
quota usage in bytes.. quota limit in kilobytes.. -- Original message -- From: Andrzej Kwiatkowski [EMAIL PROTECTED] To: [EMAIL PROTECTED] Date: Thursday 30 January 2003 19:31:29 Subject: getting user quota.. I've got one question.. how to set unit size in getquota command?? when i telnet my imap server, login, and type: admin getquota user.username i got: * QUOTA user.username (STORAGE 1344 1200) but when i execute from the shell: cat /isp/cyrus/var/imap/quota/u/user.username i got 1376789 1200 I would like to got 1376789 inteed of 1344 when i telnet to my imap server.. Have got any idea ?? Thanks in advance.. Andrzej Kwiatkowski ___ ORENDA Mail - http://www.orenda.com.my/
RE: getting user quota..
On Thu, 30 Jan 2003, Hafiz Malik wrote: quota usage in bytes.. quota limit in kilobytes.. I know... but how can i setup to see all values in bytes ?? Andrzej Kwiatkowski
Re: getting user quota..
On Thu, 30 Jan 2003, Andrzej Kwiatkowski wrote: On Thu, 30 Jan 2003, Hafiz Malik wrote: quota usage in bytes.. quota limit in kilobytes.. I know... but how can i setup to see all values in bytes ?? Change the source, I believe... -- One disk to rule them all, One disk to find them. One disk to bring them all and in the darkness grind them. In the Land of Redmond where the shadows lie. -- The Silicon Valley Tarot Henrique Holschuh
Re: getting user quota..
Henrique de Moraes Holschuh wrote: On Thu, 30 Jan 2003, Andrzej Kwiatkowski wrote: On Thu, 30 Jan 2003, Hafiz Malik wrote: quota usage in bytes.. quota limit in kilobytes.. I know... but how can i setup to see all values in bytes ?? Change the source, I believe... If you change the source to use bytes instead of Kb for the QUOTA commands, you will make the server non compliant with RFC 2087. -- Kenneth Murchison Oceana Matrix Ltd. Software Engineer 21 Princeton Place 716-662-8973 x26 Orchard Park, NY 14127 --PGP Public Key--http://www.oceana.com/~ken/ksm.pgp
exim and cyrus
I don't know, what exim and cyrus are donig. I fetch my mail with fetchmail. That works fine. Exim can deliver the mail to the local mailfolder. I can read them with mutt on the server! imapd is running on the machine. I can access to the users mailbox peter from a remote machine. I can put new mails into the folder or mkdir. So cyrus seems to work. I think there is a problem between exim and cyrus. This is the part of my exim.conf, which works fine for the local mailbox # local_delivery: driver = appendfile group = mail mode = 0660 mode_fail_narrower = false envelope_to_add = true return_path_add = true file = /var/spool/mail/${local_part} When I comment these lines and write instead this: ### local_delivery: driver = pipe command = /usr/sbin/cyrdeliver -m peter peter return_path_add = true return_output = true prefix = user = cyrus mails are not delivered the the mailbox peter. Why not? This is a part of my exim log: # 2003-01-30 13:42:12 18eE1E-0006K6-00 = [EMAIL PROTECTED] H=localhost [127.0.0.1] P=esmtp S=1198 [EMAIL PROTECTED] 2003-01-30 13:42:12 18eE1E-0006K6-00 = peter peter@localhost D=localuser T=local_delivery 2003-01-30 13:42:12 18eE1E-0006K6-00 Completed Seems to be ok. In cyrus mail.err are no entries at this time and no entries, which could be affected by the delivery from exim. My question is now, is there any logfile for the delivery from cyrus? What could be wrong? Where is my mistake? Thank you for your answer! Greetings Peter
Re: CYRADM: badlogin: OTP [SASL(-13): user not found: no OTP secret indatabase] BUT sasldblistuser2 proves passwd is set
Dennis Leist wrote: Dear all, Please help in this issue: Trying set up mailboxes via cyradm # cyradm --user cyrus localhost Try: # cyradm --user cyrus --auth login localhost always ends in # cyradm: cannot authenticate to server with as cyrus I get /v/l/imapd.conf: Jan 30 12:14:00 helium imapd[17700]: accepted connection Jan 30 12:14:01 helium imapd[17700]: badlogin: localhost[127.0.0.1] OTP [SASL(-13): user not found: no OTP secret in database] But sasldblistuser2 shows: # sasldblistusers2 cyrus@helium: userPassword cyrus@helium: cmusaslsecretOTP Did you specifically tell saslpasswd2 to use ony 'helium' as the realm, or is the hostname on this machine not fully qualified? By default, Cyrus appends the fully qualified hostname to the userid when looking up the secret in sasldb2. If you have a mismatch in realms, it won't find the secret. -- Kenneth Murchison Oceana Matrix Ltd. Software Engineer 21 Princeton Place 716-662-8973 x26 Orchard Park, NY 14127 --PGP Public Key--http://www.oceana.com/~ken/ksm.pgp
Re: getting user quota..
Ken Murchison wrote: Henrique de Moraes Holschuh wrote: On Thu, 30 Jan 2003, Andrzej Kwiatkowski wrote: On Thu, 30 Jan 2003, Hafiz Malik wrote: quota usage in bytes.. quota limit in kilobytes.. I know... but how can i setup to see all values in bytes ?? Change the source, I believe... If you change the source to use bytes instead of Kb for the QUOTA commands, you will make the server non compliant with RFC 2087. Actually, I'm wrong. The quotas are implementation defined, so the units can be whatever you like as long as you're consistent. -- Kenneth Murchison Oceana Matrix Ltd. Software Engineer 21 Princeton Place 716-662-8973 x26 Orchard Park, NY 14127 --PGP Public Key--http://www.oceana.com/~ken/ksm.pgp
Re: mail problems
thanks for the ideas: using openssl from the host machine worked fine, however when i try to connect via SSL from my client, it tells me that the certificate is not valid. (outlook express 5.04 Mac) i am stumped... here is my /etc/impad.conf (i dont have a /etc/cyrus.conf): # Debian Cyrus imapd.conf # See imapd.conf(5) for more information # Configuration directory configdirectory: /var/lib/cyrus # Which partition to use for default mailboxes defaultpartition: default partition-default: /var/spool/cyrus/mail # News setup partition-news: /var/spool/cyrus/news newsspool: /var/spool/news # Uncomment the following and add the space-separated users who # have admin rights admins: admin # No anonymous logins allowanonymouslogin: no # Minimum time between POP mail fetches in minutes popminpoll: 1 # umask used by Cyrus programs umask: 077 on 03.1.30 1:31 AM, Piet Ruyssinck at [EMAIL PROTECTED] wrote: On Thu, 30 Jan 2003, dylan wrote: hi, i recently installed the cyrus mail system and am having a few problems... pop3 based service is working fine, however only with clear text passwords (which is not ideal) i have SSL installed, and have instructed it to tunnel an SSL connection to the POP and IMAP servers, however i cannot connect to the server and recieve mail when i enable SSL on my mail client. any pointers? you could start by trying to connect to your IMAPs/POPs server with $ openssl s_client -host hostname.domain -port 993 and $ openssl s_client -host hostname.domain -port 995 to determine if the problem is with your server or your client. what does your /etc/cyrus.conf look like ? -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- Piet RUYSSINCKe-mail: [EMAIL PROTECTED] Unix Systeem Administratie tel: +32 9 264 4733 Directie Informatie- en Communicatietechnologie (ICT) fax: +32 9 264 4994 Universiteit Gent (RUG) Krijgslaan 281, gebouw S9 - 9000 Gent, Belgie -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- Please avoid sending me Word or PowerPoint attachments See http://www.fsf.org/philosophy/no-word-attachments.html
deliver db problem
I am running Cyrus 2.1.11 (Solaris 9, mboxlist/seen=skiplist, sub=flat, duplicate/tls=db3_nosync), and periodically sieve stops working after the server has been up a couple of weeks. Upon further investigation, I find it is some problem with the deliver.db file, as running ctl_deliver -d results in ctl_deliver: unable to init duplicate delivery database. Stopping and restarting master fixes the problem (perhaps because it runs ctl_cyrusdb -r?), and ctl_deliver -d dumps the database properly after this. No error messages appear in the logs (even logging at debug level) during normal operation, but trying to run ctl_deliver -d logs DBERROR: opening /var/imap/deliver.db: Not enough space. There is 39G free swap space (out of 40G), and the machine has 8G RAM. Has anyone else seen this problem? What can I do to get more information about what is causing it? -- John A. Tamplin Unix System Administrator Emory University, School of Public Health +1 404/727-9931
Trouble using cyrdeliver
I'm trying to set up procmail as my LDA so I can use SpamAssassin's per-user SQL prefs feature. I'm having trouble getting cyrdeliver to actually deliver the mail. If anyone could tell me what's going wrong here I'd appreciate it. $ zcat sample-nonspam.txt.gz | /usr/sbin/cyrdeliver -m user.chilts couldn't connect to lmtpd: Success 421 4.3.0 deliver: couldn't connect to lmtpd In the logs: cyrus/lmtpd[22390]: connection from localhost [127.0.0.1] preauth'd as postman cyrus/deliver[22389]: lmtpengine do_auth: could not sasl_setprop the security properties -- Chris Hilts [EMAIL PROTECTED]
sendmail+cyrus+spamassassin
I'm running RedHat 7.3 and I've got sendmail and cyrus-imapd working great. I'm also using sieve for some server-side sorting of messages and I've set up squirrelmail so I can access it all over the web. Oh, and I'm using a couple dns blacklists with sendmail to keep most spam from even getting in. The next piece that I'd like to play around with is integrating spamassassin (SA) in to identify the spam that does get through. The stuff that I've read has me somewhat perplexed in how to get this done. Does sendmail call SA before sending the message to cyrus? Does cyrus run SA? Is it something completely else? Anyway, how do I get SA to run in this configuration? Gordon
Re: sendmail+cyrus+spamassassin
-- Gordon [EMAIL PROTECTED] is rumored to have mumbled on Donnerstag, 30. Januar 2003 13:20 Uhr -0500 regarding sendmail+cyrus+spamassassin: The next piece that I'd like to play around with is integrating spamassassin (SA) in to identify the spam that does get through. The stuff that I've read has me somewhat perplexed in how to get this done. Does sendmail call SA before sending the message to cyrus? Does cyrus run SA? Is it something completely else? Anyway, how do I get SA to run in this configuration? There are many ways to achieve this. We do it with miltrassassin: http://www.digitalanswers.org/check_local/miltrassassin.html However, you should also look into amavisd-new which couples this with viruschecking: http://www.ijs.si/software/amavisd/ -- Sebastian Hagedorn M.A. - RZKR-R1 (Flachbau), Zi. 18, Robert-Koch-Str. 10 Zentrum für angewandte Informatik - Universitätsweiter Service RRZK Universität zu Köln / Cologne University - Tel. +49-221-478-5587 msg10727/pgp0.pgp Description: PGP signature
Re: CYRADM: badlogin: OTP [SASL(-13): user not found: no OTP secret indatabase] BUT sasldblistuser2 proves passwd is set
Ken Murchison schrieb: Dennis Leist wrote: Dear all, Please help in this issue: Trying set up mailboxes via cyradm # cyradm --user cyrus localhost Try: # cyradm --user cyrus --auth login localhost This leads to: IMAP Password: Login failed: generic failure at /usr/lib/perl/5.6.1/Cyrus/IMAP/Admin.pm line 114 cyradm: cannot authenticate to server with login as cyrus always ends in # cyradm: cannot authenticate to server with as cyrus I get /v/l/imapd.conf: Jan 30 12:14:00 helium imapd[17700]: accepted connection Jan 30 12:14:01 helium imapd[17700]: badlogin: localhost[127.0.0.1] OTP [SASL(-13): user not found: no OTP secret in database] But sasldblistuser2 shows: # sasldblistusers2 cyrus@helium: userPassword cyrus@helium: cmusaslsecretOTP Did you specifically tell saslpasswd2 to use ony 'helium' as the realm, I added cyrus with: # saslpasswd2 -c cyrus and # saslpasswd2 -u helium.epag.net -c cyrus. Another account with FQDN: # saslpasswd2 -c -u helium.epag.net cyrus didn't help. or is the hostname on this machine not fully qualified? The host is fully qualified. By default, Cyrus appends the fully qualified hostname to the userid when looking up the secret in sasldb2. If you have a mismatch in realms, it won't find the secret.
Re: sendmail+cyrus+spamassassin
Make sure you also take a look at Mailscanner; at least with sendmail it is quite easy and transparent to get running, and might scale better than a milter solution. It also provides the ability to virus scan at the same time: http://www.mailscanner.info/ Steve Sebastian Hagedorn wrote: -- Gordon [EMAIL PROTECTED] is rumored to have mumbled on Donnerstag, 30. Januar 2003 13:20 Uhr -0500 regarding sendmail+cyrus+spamassassin: The next piece that I'd like to play around with is integrating spamassassin (SA) in to identify the spam that does get through. The stuff that I've read has me somewhat perplexed in how to get this done. Does sendmail call SA before sending the message to cyrus? Does cyrus run SA? Is it something completely else? Anyway, how do I get SA to run in this configuration? There are many ways to achieve this. We do it with miltrassassin: http://www.digitalanswers.org/check_local/miltrassassin.html However, you should also look into amavisd-new which couples this with viruschecking: http://www.ijs.si/software/amavisd/
Re: Per-Domain-Quota in 2.2 with virtual domains turned on ?
Ken Murchison wrote: I just committed support for per-domain quotas which works for all domains except for the default domain (the code to make it work for the default domain would be particularly crufty). To set a domain quota, do something like the following in cyradm: sq @domain.tld 1024 To try this out, either do an update from CVS or apply the following (relatively small) patches: http://bugzilla.andrew.cmu.edu/cvsweb/src/cyrus/imap/mailbox.c.diff?r1=1.134.4.14r2=1.134.4.15 http://bugzilla.andrew.cmu.edu/cvsweb/src/cyrus/imap/mboxlist.c.diff?r1=1.198.2.29r2=1.198.2.30 Sorry for not answering a longer time. I did not have the time to concentrate on cyrus the last days. I just updated from cvs and started looking at the domain quota. Could it be that the quota binary does not support the -f option for virtdomains correctly ? For me quota does not report anything for mailboxes for which cyradm displays data and so I think quota cannot fix also ?! Actually I wrote a patch last night to get rid of mkimap -d! I added a new switch to imap/imapoptions which is called virtdomains_autoconfig and defaults to disabled. If enabled the function mailbox_create() in mailbox.c creates the configdirectory/domain/d/domain/... and the sievedir/domain/d/domain/ directories if compiled with USE_SIEVE and if the domain does not already exist. For me this patch compiles without warnings and seems to work but because I am a java programmer and are used to thinking in an objectoriented manner I do not have *the* 100% C knowledge. Mainly I do not know if the pointers buffers etc I used are used and initialized correctly or whatever. So this here needs definetley review and it would be great if someone could point out some errors I did or write some comments to this. --Christian-- schulte-22:31:03:~/cyrus-cvs/cyrus-imapd-2_2/imap diff -c imapoptions.original imapoptions *** imapoptions.originalDo Jan 30 22:28:27 2003 --- imapoptions Do Jan 30 22:30:20 2003 *** *** 546,551 --- 546,557 { virtdomains, 0, SWITCH } /* Enable virtual domain support */ + { virtdomains_autoconfig, 0, SWITCH } + /* Automatically configure the configdirectory tree. The default is +to run tools/mkimap -d for every new domain. Enabling this causes +automatic configuration of the configdirectory tree without the need of +tools/mkimap -d */ + /* .SH SEE ALSO .PP schulte-22:48:49:~/cyrus-cvs/cyrus-imapd-2_2/imap diff -c mailbox.c.original mailbox.c *** mailbox.c.original Do Jan 30 22:23:22 2003 --- mailbox.c Do Jan 30 22:18:18 2003 *** *** 1938,1944 --- 1938,1977 return (stat(quota_path, sbuf) != -1); } + /* creates directories a..z within a given path */ + int mailbox_virtdomains_createaz(char *path){ + char *a=XX; + char alpha[60]=a:b:c:d:e:f:g:h:i:j:k:l:m:n:o:p:q:r:s:t:u:v:w:x:y:z; + char *p; + int save_errno; + struct stat sbuf; + + p=path+strlen(path); + a=strtok(strdup(alpha), :); + strcpy(p,a); + if (mkdir(path, 0755) == -1 errno != EEXIST) { +save_errno = errno; + if (stat(path, sbuf) == -1) { + errno = save_errno; + syslog(LOG_ERR, IOERROR: creating directory %s: %m, path); + return IMAP_IOERROR; + } + } + while((a=strtok(NULL, :))){ + strcpy(p,a); + if (mkdir(path, 0755) == -1 errno != EEXIST) { + save_errno = errno; + if (stat(path, sbuf) == -1) { + errno = save_errno; + syslog(LOG_ERR, IOERROR: creating directory %s: %m, path); + return IMAP_IOERROR; + } + } + } + return 0; + } + int mailbox_create(const char *name, char *path, const char *acl, *** *** 1948,1953 --- 1981,1994 { int r; char *p=path; + char cfgdir[MAX_MAILBOX_PATH]; + #ifdef USE_SIEVE + char sievedir[MAX_MAILBOX_PATH]; + #endif /* USE_SIEVE */ + char *myname=strdup(name); + char *myp=myname; + char *my2p; + char letter[2]; char quota_root[MAX_MAILBOX_PATH]; int hasquota; char fnamebuf[MAX_MAILBOX_PATH]; *** *** 1977,1983 return IMAP_IOERROR; } } ! zeromailbox(mailbox); mailbox.quota.fd = -1; --- 2018,2109 return IMAP_IOERROR; } } ! ! /* Create the domain also under the configdirectory if virtdomains_autoconfig. */ ! if(config_getswitch(IMAPOPT_VIRTDOMAINS_AUTOCONFIG)){ ! strcpy(cfgdir, config_getstring(IMAPOPT_CONFIGDIRECTORY)); ! myp=strchr(myp, '!'); ! // Only do something if there is an '!' character in the mailbox name ! if(myp){ ! *myp='\0'; ! strcat(cfgdir,/domain/); ! strncpy(letter, myname, 1); ! strcat(cfgdir,letter); ! strcat(cfgdir,/); !