diff --git a/README.autocreate-cyrus-2.3 b/README.autocreate-cyrus-2.3 deleted file mode 100644 index 7a7087e..0000000 --- a/README.autocreate-cyrus-2.3 +++ /dev/null @@ -1,211 +0,0 @@ -Cyrus IMAP autocreate Inbox patch ----------------------------------- - -NOTE : This patch has been created at the University of Athens. For more info, as well -as more patches on Cyrus IMAPD server, please visit http://email.uoa.gr/ - -The design of Cyrus IMAP server does not predict the automatic creation of users' -INBOX folders. The creation of a user's INBOX is considered to be an external task, -that has to be completed as part of the user email account creation procedure. -Hence, to create a new email account the site administrator has to: - - a) Include the new account in the user database for the authentication procedure - (e.g. sasldb, shadow, mysql, ldap). - b) Create the corresponding INBOX folder. - -Alternatively, the user, if succesfully authenticated, may create his own INBOX folder, -as long as the configuration of the site allows it (see "autocreatequota" in imapd.conf). -Unlike what not careful readers may think, enabling the "autocreatequota" option, doesn't -lead to the automatic INBOX folder creation by Cyrus IMAP server. -In fact, "autocreate" means that the IMAP clients are allowed to automatically create -the user INBOX. - -This patch adds the functionality of automatic creation of the users' INBOX folders into -the Cyrus IMAP server. It is implemented as two features, namely the "create on login" -and "create on post". - - - -Create on login -=============== -This feauture provides automatic creation of a user's INBOX folder when all of the -following requirements are met: - -i) The user has succesfully passed the authentication procedure. - -ii) The user's authorisation ID (typically the same as the user's -authentication ID) doesn't belong to the imap_admins or admins -accounts (see imapd.conf). - -iii) The "autocreatequota" option in the imap configuration file -has been set to a non zero value. - -iv) The corresponding to the user's authorisation ID INBOX folder -does not exist. - -The user's first login is the most typical case when all four requirements are met. -Note that if the authenticated ID is allowed to proxy to another account for which -all of the above requirements are met, the corresponding INBOX folder for that account -will be created. - - - -Create on post -============== -This feauture provides automatic creation of a user's INBOX folder when all of the -following requirements are met. - -i) An email message addressed to the user has been received. - -ii) The recipient is not any of the imap_admins or admins accounts. -Note that passing emails to admins or imap_admins accounts from -the MTA to LMTP should be avoided in any case. - -iii) The recipient's INBOX does not exist. - -iv) The "autocreatequota" option in the imap configuration file -has been set to a non zero value. - -v) The "createonpost" option in the imap configuration file -has been switched on. - - -Besides the automatic creation of INBOX folder, additional functionalities are -provided: - - (A) Automatic creation of INBOX subfolders controlled by "autocreateinboxfolders" -configuration option. eg - -autocreateinboxfolders: sent|drafts|spam|templates - - (B) Automatic subscription of INBOX subfolders controlled by "autosubscribeinboxfolders" -configuration option. eg - -autosubscribeinboxfolders: sent|spam - -Obviously, only subscription to subfolders included in the "autocreateinboxfolder" -list is meaningful. - - (C) Automatic subscription to shared folders (bulletin boards). The user gets -automatically subscribed to the shared folders declared in the "autosubscribesharedfolders" -configuration option in imapd.conf. -eg autosubscribesharedfolders: public_folder | public_folder.subfolder - -In order the above action to succeed, the shared folder has to pre-exist the INBOX creation -and the user must have the appropriate permissions in order to be able to subscribe to the -shared folder. - -* A new config option has been added. 'autosubscribe_all_sharedfolders' is a yes/no -option. When set to yes, the user is automatically subscribed to all shared folders one -has permission to subscribe to. Please, note that when this option is set to yes, then -'autosubscribesharedfolders' option is overriden. - - (D) Automatic creation of a predefined default sieve script. - -This is very useful when a default sieve script is used for every user. Usually, a -default anti-spam script may me be written in a file and copied to each user -sieve scripts upon the INBOX creation. The imapd.conf options that have been added -are 'autocreate_sieve_script', 'autocreate_sieve_compiledscript' and -'generate_compiled_sieve_script'. - -autocreate_sieve_script configuration option refers to the full path of the file -that contains the sieve script. The default value is null and if no file is defined, -then no default script is created upon INBOX creation. (The feature is disabled) -eg autocreate_sieve_script: /etc/default_sieve_script - -autocreate_sieve_compiledscript configuration option refers to the full path of the -file that contains the bytecode compiled sieve script. If this filename is defined -in imapd.conf and the file exists, then it is automatically copied in the user's sieve -directory. If it is not defined, then a bytecode sieve script gets on the fly compiled -by the daemon. -eg autocreate_sieve_compiledscript: /etc/default_sieve_script.bc - -generate_compiled_sieve_script is a boolean option that triggers the compilation of the -source sieve script to bytecode sieve script. The file that the bytecode script will -be saved is pointed by autocreate_sieve_compiledscript. - -Ways of compiling a sieve script : -1. Compile a sieve script using the standard sievec utility, distributed by CMU -2. Compile a sieve script using the compile_sieve utility, released by UoA. This - tool is almost identical to the sievec utility, with the difference that it - reads the input and output file from autocreate_sieve_script and - autocreate_sieve_compiledscript options in imapd.conf -3. Let cyrus create a compiled sieve script using a source script. Cyrus can be - instructed to save the compiled script any time a compiled script does not exist. - -NOTES : -1. In order this functionality to work, the following requirements must have been met: - - 'sieveusehomedir' option must be 'no' in the configuration (default). - - 'sievedir' option must have a valid value. -2. Currently, this patch checks the validity of the source script while generating a - bytecode compiled script, but not the validity of the bytecode sieve script file. - The administrator should make sure that the provided files contain a valid sieve - script as well as the compiled script is updated every time the source script changes. - - - (E) The administrator may control for which users and/or groups may the INBOXes -automatically be created. The autocreate_users option restricts the groups -for which the patch will create the mailboxes. - -The default value of autocreate_users is anyone. So, if not set at all, the patch will -work for all users. However, one may set: - -autocreate_users: user1 user2 group:group1 group:group2 - -In that case, the INBOX will be created only for user1, user2 and the users that belong -to group1 and group2. - -More refined control per service is provided by the options imap_autocreate_users, -pop3_autocreate_users and lmtp_autocreate_users. These options override the -autocreate_users option and offer per service control. - -Example: -One may want to restrict the create on post functionality only for a specific group -of users. To achieve this, the following lines must be added in the imapd.conf file: - -createonpost: yes -lmtp_autocreate_users: group:groupname - - - -Issues to be considered -======================= - -I) In order to use the create on post feauture one should be absolutely sure that: -a) The MTA checks the validity of the email recipient before sending the email to -LMTP. This is an RFC821 requirement. This usually expands to "the mta should be -able to use the account database as user mailbox database". -b) Only authorised accounts/services can talk to LMTP. - -II) Especially in the case of imap logins, the current patch implementation checks -for the INBOX folder existence upon login, causing an extra mailbox lookup in most -of the cases. -A better approach would be to chase the "IMAP_MAILBOX_NONEXISTENT" error code and -check if the error is associated with an INBOX folder. However, this would mess up -Cyrus code. The way it was implemented may not have been the most performance -optimised, but it produces a much cleaner and simple patch. - - - -Virtual Domains Support -======================= - -Virtual domains are supported by all versions of the patch for cyrus-imapd-2.2.1-BETA and -later. However, it is not possible to declare different INBOX subfolders to be created or -shared folders to be subscribed to for every domain. - - - -Things to be done -================= - -1. Support MUPDATE - -It is within the developers' intentions to support the mupdate protocol, but serious -design issues on future cyrus releases have to resolved first. - -2. Select different attributes (quota, partition, sieve filter, etc) depending on the group -a user belongs to. - -For more information and updates please visit http://email.uoa.gr/projects/cyrus/autocreate - diff --git a/README.autosievefolder b/README.autosievefolder deleted file mode 100644 index 3482bb1..0000000 --- a/README.autosievefolder +++ /dev/null @@ -1,42 +0,0 @@ -Cyrus IMAP autosievefolder patch ----------------------------------- - -NOTE : This patch has been created at the University of Athens. For more info, as well -as more patches on Cyrus IMAPD server, please visit http://email.uoa.gr - - - When the lmtpd daemon receives an email message prior to delivering it to the -INBOX folder of the user, checks if the user has specified sieve filters. If the -user has specified sieve filters the filters are evaluated. If the message matches -any of the filters the action that is specified in the filter is executed. If the action -is FileInto it is stored in the subfolder specified in the filter. If the -subfolder doesn't exist then the message is sent to the INBOX folder of the user. - - With this patch if the folder doesn't exist AND the name of the subfolder is -specified in the autosievefolders option, OR the anysievefolder is set to -yes in the cyrus-imap configuration file then the subfolder is created and the mail -is stored there. - - -Check the following options of the imapd.conf file -================================================== - -* anysievefolder : It must be "yes" in order to permit the autocreation of any -INBOX subfolder requested by a sieve filter, through the "fileinto" action. (default = no) -* autosievefolders : It is a "|" separated list of subfolders of INBOX that will be -automatically created, if requested by a sieve filter, through the "fileinto" -action. (default = null) - i.e. autosievefolders: Junk | Spam - -WARNING: anysievefolder, takes precedence over autosievefolders . Which means that if -anysievefolder is set to "yes", cyrus will create any INBOX subfolder requested, no-matter what the value of autosievefolders is. - - -Things to be done -================= - -1. Support cyrus wildcards in the autosievefolders option. - - -For more information and updates please visit http://email.uoa.gr/projects/cyrus/autosievefolder - diff --git a/cyrus-imapd.spec b/cyrus-imapd.spec index 8402be3..d28c412 100644 --- a/cyrus-imapd.spec +++ b/cyrus-imapd.spec @@ -20,8 +20,6 @@ Source0: ftp://ftp.cyrusimap.org/cyrus-imapd/%{name}-%{version}.tar.gz Source1: cyrus-imapd.logrotate Source2: cyrus-imapd.imap-2.3.x-conf Source3: cyrus-imapd.pam-config -Source4: http://email.uoa.gr/projects/cyrus/autocreate/README.autocreate-cyrus-2.3 -Source5: http://email.uoa.gr/projects/cyrus/autosievefolder/README.autosievefolder Source7: cyrus-imapd.sysconfig Source8: cyrus-imapd.cvt_cyrusdb_all Source9: cyrus-imapd.magic @@ -120,7 +118,7 @@ one running the server. %patch6 -p1 -b .libdb %patch8 -p1 -b .debugopt -install -m 644 %{SOURCE4} %{SOURCE5} %{SOURCE11} doc/ +install -m 644 %{SOURCE11} doc/ # only to update config.* files automake -a -f -c || :