diff -ruN egroupware.orig/admin/inc/class.uiaccounts.inc.php egroupware/admin/inc/class.uiaccounts.inc.php
--- egroupware.orig/admin/inc/class.uiaccounts.inc.php	2008-11-24 14:42:33.000000000 +0300
+++ egroupware/admin/inc/class.uiaccounts.inc.php	2009-02-11 20:50:37.000000000 +0300
@@ -562,7 +562,7 @@
 				}
 				$userData = array(
 					'account_type'          => 'u',
-					'account_lid'           => $accountPrefix . $_POST['account_lid'],
+					'account_lid'           => $accountPrefix . strtolower($_POST['account_lid']),
 					'account_firstname'     => $_POST['account_firstname'],
 					'account_lastname'      => $_POST['account_lastname'],
 					'account_passwd'        => $_POST['account_passwd'],
@@ -579,7 +579,7 @@
 					'homedirectory'         => $_POST['homedirectory'],
 					'loginshell'            => $_POST['loginshell'],
 					'account_expires_never' => $_POST['never_expires'],
-					'account_email'         => $email
+					'account_email'         => strtolower($email)
 					/* 'file_space' => $_POST['account_file_space_number'] . "-" . $_POST['account_file_space_type'] */
 				);
 
@@ -855,7 +855,7 @@
 					$email = $GLOBALS['egw']->common->email_address($_POST['account_firstname'],$_POST['account_lastname'],$_POST['account_lid']);
 				}
 				$userData = array(
-					'account_lid'           => $accountPrefix.$_POST['account_lid'],
+					'account_lid'           => $accountPrefix.strtolower($_POST['account_lid']),
 					'account_firstname'     => $_POST['account_firstname'],
 					'account_lastname'      => $_POST['account_lastname'],
 					'account_passwd'        => $_POST['account_passwd'],
@@ -871,7 +871,7 @@
 					'homedirectory'         => $_POST['homedirectory'],
 					'loginshell'            => $_POST['loginshell'],
 					'account_expires_never' => $_POST['never_expires'],
-					'account_email'         => $email,
+					'account_email'         => strtolower($email),
 					/* 'file_space' => $_POST['account_file_space_number'] . "-" . $_POST['account_file_space_type'] */
 				);
 				if($userData['account_primary_group'] && (!isset($userData['account_groups']) || !in_array($userData['account_primary_group'],$userData['account_groups'])))
diff -ruN egroupware.orig/emailadmin/inc/class.courierldap.inc.php egroupware/emailadmin/inc/class.courierldap.inc.php
--- egroupware.orig/emailadmin/inc/class.courierldap.inc.php	1970-01-01 03:00:00.000000000 +0300
+++ egroupware/emailadmin/inc/class.courierldap.inc.php	2009-02-11 20:59:43.000000000 +0300
@@ -0,0 +1,200 @@
+<?php
+	/***************************************************************************\
+	* EGroupWare - EMailAdmin - courier-mta				    *
+	* http://www.mstuca.ru						     *
+	* Written by : Barynin Konatantin [red_lion@inbox.ru]		      *
+	* Vasiliy Kotikov [elnone@mstuca.ru]				       *
+	* -------------------------------------------------------------------------*
+	* This program is free software; you can redistribute it and/or modify it  *
+	* under the terms of the GNU General Public License as published by the    *
+	* Free Software Foundation; either version 2 of the License, or (at your   *
+	* option) any later version.					       *
+	\***************************************************************************/
+	/* $Id: class.cyrusimap.inc.php,v 1.9 2005/12/02 15:44:31 ralfbecker Exp $ */
+	
+	include_once(EGW_SERVER_ROOT."/emailadmin/inc/class.defaultimap.inc.php");	
+
+	class courierldap extends defaultimap {
+		
+		function addAccount($_hookValues) {
+			return $this->updateAccount($_hookValues);
+		}
+		
+		#function deleteAccount($_hookValues) {
+		#}
+		function getUserData($_username) {
+			$userData = array();
+			
+			$ds = $GLOBALS['egw']->ldap->ldapConnect(
+				$GLOBALS['egw_info']['server']['ldap_host'],
+				$GLOBALS['egw_info']['server']['ldap_root_dn'],
+				$GLOBALS['egw_info']['server']['ldap_root_pw']
+			);
+			
+			if(!is_resource($ds)) {
+				return false;
+			}
+
+			$filter		= '(&(objectclass=posixaccount)(uid='. $_username .'))';
+			$justthese  = array('dn', 'objectclass', 'mail', 'quota', 'accountStatus', 'defaultdelivery', 'clearPassword', 'mailbox', 'disableimap', 'disablepop3', 'disablewebmail');
+			if($sri = ldap_search($ds, $GLOBALS['egw_info']['server']['ldap_context'], $filter, $justthese)) {
+				if($info = ldap_get_entries($ds, $sri)) {
+					foreach (array('accountStatus','disableimap','disablepop3','disablewebmail','defaultdelivery','clearPassword','mailbox') as $value) {
+						if(isset($info[0][strtolower($value)][0])) {
+							$userData[$value] = $info[0][strtolower($value)][0];
+						}
+					}
+					if(isset($info[0]['quota'][0])) {
+						$userData['quotaLimit'] = preg_match('/^\d+/',$info[0]['quota'][0]);
+						$userData['quotaLimit'] = $info[0]['quota'][0] / 1048576;
+					}
+					$lidm	= (!empty($this->domainName)) ? $_username .'@'. $this->domainName : $_username;
+					$userData['mailLocalAddress'] = $lidm;
+					$userData['mailAlternateAddress'] = array();
+					if(isset($info[0]['mail'][0]) && ($info[0]['mail']['count'] > 1)) {
+						$mailKey	= array_search($lidm, $info[0]['mail']);
+						if (!$mailKey) {
+ 							unset($info[0]['mail'][$mailKey]);
+ 							$userData['mailAlternateAddress']	= $info[0]['mail'];
+							unset($userData['mailAlternateAddress']['count']);
+							sort($userData['mailAlternateAddress']);
+						}
+					}
+				}
+			}
+			//print_r($userData);
+			return $userData;
+		}
+
+		function updateAccount($_hookValues) {
+			if(!$uidnumber = (int)$_hookValues['account_id']) {
+				return false;
+			}
+			
+			$ds = $GLOBALS['egw']->ldap->ldapConnect(
+				$GLOBALS['egw_info']['server']['ldap_host'],
+				$GLOBALS['egw_info']['server']['ldap_root_dn'],
+				$GLOBALS['egw_info']['server']['ldap_root_pw']
+			);
+			
+			if(!is_resource($ds)) {
+				return false;
+			}
+			
+			$filter = '(&(objectclass=posixaccount)(uidnumber='. $uidnumber .'))';
+			$justthese  = array('dn', 'objectclass', 'mail');
+			$sri = ldap_search($ds, $GLOBALS['egw_info']['server']['ldap_context'], $filter, $justthese);
+
+			if($info = ldap_get_entries($ds, $sri)) {
+				if(!in_array('CourierMailAccount',$info[0]['objectclass']) || !in_array('dbmailUser',$info[0]['objectclass'])) {
+					$newData['objectclass'] = $info[0]['objectclass'];
+					unset($newData['objectclass']['count']);
+					if(!in_array('CourierMailAccount',$info[0]['objectclass']) && $info[0]['mail']) {
+						$newData['objectclass'][] = 'CourierMailAccount';
+					}
+					if(!in_array('dbmailUser',$info[0]['objectclass']) && $info[0]['mail']) {
+						$newData['objectclass'][] = 'dbmailUser';
+					}
+					sort($newData['objectclass']);
+					$newData['accountStatus']  = 'disabled';
+					$newData['disableimap'] = 'enable';
+					$newData['disablepop3'] = 'enable';
+					$newData['disablewebmail'] = 'enable';
+					$newData['mailbox']  = '/home/vmail/' . strtolower($_hookValues['account_lid']);
+					$newData['quota']	= "314572800S,65536C";
+					$lidm=(!empty($this->domainName)) ? $_hookValues['account_lid'] .'@'. $this->domainName : $_hookValues['account_lid'];
+					unset($newData['mail']['count']);
+					if (!in_array($lidm,$newData['mail'])){
+						$newData['mail'][]=$lidm;
+					}
+					if(!ldap_modify($ds, $info[0]['dn'], $newData)) {
+						print ldap_error($ds);
+						_debug_array($newData);
+						#exit;
+						#return false;
+					}
+					return true;
+				}
+			}
+			return false;
+		}
+
+		function setUserData($_username, $_quota, $_accountStatus, $_defaultdelivery, $_clearPassword, $_mailbox, $_mailAlternateAddress, $_disableimap, $_disablepop3, $_disablewebmail) {
+			$ds = $GLOBALS['egw']->ldap->ldapConnect(
+				$GLOBALS['egw_info']['server']['ldap_host'],
+				$GLOBALS['egw_info']['server']['ldap_root_dn'],
+				$GLOBALS['egw_info']['server']['ldap_root_pw']
+			);
+			
+			if(!is_resource($ds)) {
+				return false;
+			}
+
+			$filter		= '(&(objectclass=posixaccount)(uid='. $_username .'))';
+			$justthese	= array('dn', 'objectclass', 'mail');
+			$sri = ldap_search($ds, $GLOBALS['egw_info']['server']['ldap_context'], $filter, $justthese);
+	
+			if($info = ldap_get_entries($ds, $sri)) {
+				$validLDAPConfig = false;
+				if(in_array('CourierMailAccount',$info[0]['objectclass']) && in_array('dbmailUser',$info[0]['objectclass'])) {
+					$validLDAPConfig = true;
+				} else {
+					$newData['objectclass'] = $info[0]['objectclass'];
+					unset($newData['objectclass']['count']);
+					if(!in_array('CourierMailAccount',$info[0]['objectclass']) && $info[0]['mail']) {
+						$newData['objectclass'][] = 'CourierMailAccount';
+					}
+					if(!in_array('dbmailUser',$info[0]['objectclass']) && $info[0]['mail']) {
+						$newData['objectclass'][] = 'dbmailUser';
+					}
+					sort($newData['objectclass']);
+					if(ldap_modify($ds, $info[0]['dn'], $newData)) {
+						$validLDAPConfig = true;
+					}
+				}
+				if($validLDAPConfig) {
+					$newData = array();
+					if ($_accountStatus != 'active') {
+						$newData['disableimap'] = $newData['disablepop3'] = $newData['disablewebmail'] = 'active';
+					} else {
+						$newData['disableimap'] = ($_disableimap == 'active') ? 'active' : array();
+						$newData['disablepop3'] = ($_disablepop3 == 'active') ? 'active' : array();
+						$newData['disablewebmail'] = ($_disablewebmail == 'active') ? 'active' : array();
+					}
+					$newData['accountStatus']	= $_accountStatus ? $_accountStatus : array();
+					$newData['defaultdelivery']	= $_defaultdelivery ? $_defaultdelivery : array();
+					$newData['clearPassword']	= $_clearPassword ? $_clearPassword : array();
+					$newData['mailbox']		= strtolower($_mailbox ? $_mailbox : '/home/vmail/' . $_username);
+					$lidm				= (!empty($this->domainName)) ? $_username .'@'. $this->domainName : $_username;
+					if (count($_mailAlternateAddress) > 0) {
+						$filter		= '(&(objectclass=posixaccount)(|(mail='. implode(")(mail=",$_mailAlternateAddress) .'))(!(uid='. $_username .')))';
+						$justthese	= array('mail');
+						$sri		= ldap_search($ds, $GLOBALS['egw_info']['server']['ldap_context'], $filter, $justthese);
+						$mailCollision	= ldap_get_entries($ds, $sri);
+						if ($mailCollision['count'] == 0) {
+							$_mailAlternateAddress = preg_grep("/^[^@\-_\.][^@][\w.]+@[^@][\-_\w.]+\.[^@][A-Za-z.]{1,4}$/", $_mailAlternateAddress);
+							$newData['mail']	= array_unique(array_merge(array($lidm),$_mailAlternateAddress));
+						}
+					}  else {
+						$newData['mail'] = $lidm;
+					}
+					if ((int)$_quota > 0) {
+						$newData['quota'] 	= (int)$_quota * 1048576;
+						$newData['quota'] 	= $newData['quota'] . "S,65536C";
+					} elseif ((int)$_quota == -1) {
+						$newData['quota']	= array();
+					} else {
+						$newData['quota'] 	= "314572800S,65536C";
+					}
+					//print_r($newData);
+					if(!ldap_modify($ds, $info[0]['dn'], $newData)) {
+						#print ldap_error($ds);
+						return false;
+					}
+				}
+				return true;
+			}
+			return false;
+		}
+	}
+?>
diff -ruN egroupware.orig/emailadmin/inc/class.emailadmin_bo.inc.php egroupware/emailadmin/inc/class.emailadmin_bo.inc.php
--- egroupware.orig/emailadmin/inc/class.emailadmin_bo.inc.php	2008-11-24 14:43:16.000000000 +0300
+++ egroupware/emailadmin/inc/class.emailadmin_bo.inc.php	2009-02-11 20:50:37.000000000 +0300
@@ -212,6 +212,25 @@
 					'protocol'	=> 'imap',
 					'classname'	=> 'dbmaildbmailuser'
 				),
+				'7'     => array(
+					'fieldNames'    => array(
+						'imapServer',
+						'imapPort',
+						'imapType',
+						'imapLoginType',
+						'imapTLSEncryption',
+						'imapTLSAuthentication',
+						'imapoldcclient',
+						'imapEnableSieve',
+						'imapSieveServer',
+						'imapSievePort',
+						'imapAuthUsername',
+						'imapAuthPassword'
+					),
+					'description'	=> 'AuthrcLdap (courier-mta schema)',
+					'protocol'	=> 'imap',
+					'classname'	=> 'courierldap'
+               ),
 			); 
 			
 			if ($_restoreSesssion &&  !(is_array($this->sessionData) && (count($this->sessionData)>0))  ) $this->restoreSessionData();
@@ -758,14 +777,22 @@
 						(array)$_formData['mailAlternateAddress'], 
 						(array)$_formData['mailForwardingAddress'],
 						$_formData['deliveryMode'],
+						$_formData['defaultdelivery'],
+						$_formData['clearPassword'],
+						$_formData['mailbox'],
 						$_formData['accountStatus'],
-						$_formData['mailLocalAddress']
+						$_formData['mailLocalAddress'],
+						$_formData['disableimap'],
+						$_formData['disablepop3'],
+						$_formData['disablewebmail'],
+						$_formData['quotaLimit'],
+						$_formData['quota']
 					);
 				}
 
 				$icServer = $userProfile->getIncomingServer(0);
 				if(is_a($icServer, 'defaultimap') && $username = $GLOBALS['egw']->accounts->id2name($_accountID)) {
-					$icServer->setUserData($username, $_formData['quotaLimit']);
+					$icServer->setUserData($username, $_formData['quotaLimit'], $_formData['accountStatus'], $_formData['defaultdelivery'], $_formData['clearPassword'], $_formData['mailbox'], (array)$_formData['mailAlternateAddress'], $_formData['disableimap'], $_formData['disablepop3'], $_formData['disablewebmail']);
 				}
 
 				// calling a hook to allow other apps to monitor the changes
diff -ruN egroupware.orig/emailadmin/inc/class.emailadmin_so.inc.php egroupware/emailadmin/inc/class.emailadmin_so.inc.php
--- egroupware.orig/emailadmin/inc/class.emailadmin_so.inc.php	2008-11-24 14:43:16.000000000 +0300
+++ egroupware/emailadmin/inc/class.emailadmin_so.inc.php	2009-02-11 20:50:37.000000000 +0300
@@ -321,6 +321,9 @@
 					$userData["mailLocalAddress"]		= $allValues[0]["mail"][0];
 					$userData["mailAlternateAddress"]	= $allValues[0]["mailalternateaddress"];
 					$userData["accountStatus"]		= $allValues[0]["accountstatus"][0];
+					$userData["disableimap"]		= $allValues[0]["disableimapimap"][0];
+					$userData["disableimappop3"]		= $allValues[0]["disableimappop3"][0];
+					$userData["disableimapimap"]		= $allValues[0]["disablewebmail"][0];
 					$userData["mailRoutingAddress"]		= $allValues[0]["mailforwardingaddress"];
 					$userData["qmailDotMode"]		= $allValues[0]["qmaildotmode"][0];
 					$userData["deliveryProgramPath"]	= $allValues[0]["deliveryprogrampath"][0];
@@ -395,6 +398,9 @@
 			(
 				'mail'			=> $_accountData["mailLocalAddress"],
 				'accountStatus'		=> $_accountData["accountStatus"],
+				'disableimap'		=> $_accountData["disableimap"],
+				'disablepop3'		=> $_accountData["disablepop3"],
+				'disablewebmail'		=> $_accountData["disablewebmail"],
 				'objectclass'		=> $objectClasses
 			);
 
@@ -416,6 +422,33 @@
 				$newData['accountStatus'] = 'disabled';
 			}
 
+			if($_accountData["disableimap"] == 'active')
+			{	
+				$newData['disableimap'] = 'active';
+			}
+			else
+			{
+				$newData['disableimap'] = 'disabled';
+			}
+			
+			if($_accountData["disablepop3"] == 'active')
+			{	
+				$newData['disablepop3'] = 'active';
+			}
+			else
+			{
+				$newData['disablepop3'] = 'disabled';
+			}
+			
+			if($_accountData["disablewebmail"] == 'active')
+			{	
+				$newData['disablewebmail'] = 'active';
+			}
+			else
+			{
+				$newData['disablewebmail'] = 'disabled';
+			}
+			
 			if(!empty($_accountData["deliveryMode"]))
 			{	
 				$newData['deliveryMode'] = $_accountData["deliveryMode"];
diff -ruN egroupware.orig/emailadmin/inc/class.uiuserdata.inc.php egroupware/emailadmin/inc/class.uiuserdata.inc.php
--- egroupware.orig/emailadmin/inc/class.uiuserdata.inc.php	2008-11-24 14:43:16.000000000 +0300
+++ egroupware/emailadmin/inc/class.uiuserdata.inc.php	2009-02-11 20:50:37.000000000 +0300
@@ -63,6 +63,10 @@
 			$this->t->set_var("lang_deliver_extern",lang("deliver extern"));
 			$this->t->set_var("lang_edit_email_settings",lang("edit email settings"));
 			$this->t->set_var("lang_ready",lang("Done"));
+			$this->t->set_var("lang_global_disabled",lang("all services disabled"));
+			$this->t->set_var("lang_pop3_disabled",lang("pop3 service disabled"));
+			$this->t->set_var("lang_imap_disabled",lang("imap service disabled"));
+			$this->t->set_var("lang_webmail_disabled",lang("webmail service disabled"));
 			$this->t->set_var("link_back",$GLOBALS['egw']->link('/admin/accounts.php'));
 
 			$linkData = array
@@ -111,10 +115,24 @@
 				$this->t->set_var("mailRoutingAddress",'');
 				$this->t->set_var("selected_".$userData["qmailDotMode"],'selected');
 				$this->t->set_var("deliveryProgramPath",$userData["deliveryProgramPath"]);
-				
+ 				$this->t->set_var("quota",$userData["quota"]);
+				$this->t->set_var("defaultdelivery",$userData["defaultdelivery"]);
+				$this->t->set_var("clearPassword",$userData["clearPassword"]);
+				$this->t->set_var("mailbox",$userData["mailbox"]);
+ 			
 				$this->t->set_var("uid",rawurlencode($_accountData["dn"]));
 				if ($userData["accountStatus"] == "active")
 					$this->t->set_var("account_checked","checked");
+				if (($userData["disableimap"] == "active") && ($userData["disablepop3"] == "active") && ($userData["disablewebmail"] == "active")) {
+					$this->t->set_var("account_global_checked","checked");
+				}
+				if ($userData["disableimap"] == "active")
+					$this->t->set_var("account_imap_checked","checked");
+				if ($userData["disablepop3"] == "active")
+					$this->t->set_var("account_pop3_checked","checked");
+				if ($userData["disablewebmail"] == "active")
+					$this->t->set_var("account_webmail_checked","checked");
+				
 				if ($userData["deliveryMode"] == "forwardOnly")
 					$this->t->set_var("forwardOnly_checked","checked");
 				if ($_accountData["deliverExtern"] == "active")
@@ -126,6 +144,9 @@
 				$this->t->set_var("options_mailAlternateAddress",lang('no alternate email address'));
 				$this->t->set_var("options_mailRoutingAddress",lang('no forwarding email address'));
 				$this->t->set_var("account_checked",'');
+				$this->t->set_var("account_imap_checked",'');
+				$this->t->set_var("account_pop3_checked",'');
+				$this->t->set_var("account_webmail_checked",'');
 				$this->t->set_var("forwardOnly_checked",'');
 
 				$this->t->set_var('selectbox_mailAlternateAddress', html::select(
@@ -145,8 +166,15 @@
 					"style='width: 100%;' id='mailRoutingAddress'",
 					5)
 				);
-				
+
 				$this->t->set_var('quotaLimit','');
+				$this->t->set_var('quota','');
+				$this->t->set_var('defaultdelivery',$userData["defaultdelivery"]);
+				$this->t->set_var('clearPassword',$userData["clearPassword"]);
+				$this->t->set_var('mailbox',$userData["mailbox"]);
+				$this->t->set_var('defaultdelivery','');
+				$this->t->set_var('clearPassword','');
+				$this->t->set_var('mailbox','');
 			}
 		
 			// create the menu on the left, if needed		
@@ -161,6 +189,27 @@
 		{
 			if($_POST["accountStatus"] == "on") {
 				$accountStatus = "active";
+			} else {
+				$accountStatus = "disabled";
+			}
+			if ($_POST["accountGlobalStatus"] == "on") {
+				$disableimap = $disablepop3 = $disablewebmail = "active";
+			} else {
+				if ($_POST["accountStatusImap"] == "on") {
+					$disableimap = "active";
+				} else {
+					$disableimap = "disabled";
+				}
+				if ($_POST["accountStatusPop3"] == "on") {
+					$disablepop3 = "active";
+				} else {
+					$disablepop3 = "disabled";
+				}
+				if ($_POST["accountStatusWeb"] == "on") {
+					$disablewebmail = "active";
+				} else {
+					$disablewebmail = "disabled";
+				}
 			}
 			
 			if($_POST["forwardOnly"] == "on") {
@@ -172,12 +221,19 @@
 				'mailAlternateAddress'		=> $_POST["mailAlternateAddress"],
 				'mailForwardingAddress'		=> $_POST["mailForwardingAddress"],
 				'quotaLimit'			=> $_POST["quotaLimit"],
+				'quota'				=> $_POST["quota"],
+				'defaultdelivery'		=> $_POST["defaultdelivery"],
+				'clearPassword'			=> $_POST["clearPassword"],
+				'mailbox'			=> $_POST["mailbox"],
 				'qmailDotMode'			=> $_POST["qmailDotMode"],
 				'deliveryProgramPath'		=> $_POST["deliveryProgramPath"],
-				'accountStatus'			=> $accountStatus, 
+				'accountStatus'			=> $accountStatus,
+				'disableimap'			=> $disableimap,
+				'disablepop3'			=> $disablepop3,
+				'disablewebmail'		=> $disablewebmail,
 				'deliveryMode'			=> $deliveryMode
 			);
-
+			
 			$this->boemailadmin->saveUserData($_GET['account_id'], $formData);
 
 			// read date fresh from ldap storage
@@ -202,6 +258,12 @@
 			$this->t->set_var('lang_forward_only',lang('forward only'));
 			$this->t->set_var('lang_enter_new_address',lang('Add new email address:'));
 			$this->t->set_var('lang_update_current_address',lang('Update current email address:'));
+			$this->t->set_var('lang_default_delivery',lang('custom mail delivery instructions'));
+			$this->t->set_var('lang_clear_password',lang('mail account password in clear text'));
+			$this->t->set_var('lang_mail_box',lang('absolute path to the mailbox'));
+			$this->t->set_var('lang_qoutainmbyte',lang('quota size in MByte'));
+			$this->t->set_var('lang_default_quota_size',lang('default quota size'));
+			$this->t->set_var('lang_default_maildir_path',lang('default maildir path'));
 		}
 	}
 ?>
diff -ruN egroupware.orig/emailadmin/js/jscode/editProfile.js egroupware/emailadmin/js/jscode/editProfile.js
--- egroupware.orig/emailadmin/js/jscode/editProfile.js	2008-11-24 14:43:16.000000000 +0300
+++ egroupware/emailadmin/js/jscode/editProfile.js	2009-02-11 20:50:37.000000000 +0300
@@ -1,6 +1,7 @@
 var tab = new Tabs(4,'activetab','inactivetab','tab','tabcontent','','','tabpage');
 var smtp = new Tabs(5,'activetab','inactivetab','smtp','smtpcontent','smtpselector','','');
 var imap = new Tabs(6,'activetab','inactivetab','imap','imapcontent','imapselector','','');
+var imap = new Tabs(7,'activetab','inactivetab','imap','imapcontent','imapselector','','');
 
 function initAll() {
 	tab.init();
diff -ruN egroupware.orig/emailadmin/setup/egw_en.lang egroupware/emailadmin/setup/egw_en.lang
--- egroupware.orig/emailadmin/setup/egw_en.lang	2008-11-24 14:43:16.000000000 +0300
+++ egroupware/emailadmin/setup/egw_en.lang	2009-02-11 20:50:37.000000000 +0300
@@ -136,3 +136,12 @@
 users can define their own signatures	emailadmin	en	users can define their own signatures
 vaction messages with start- and end-date require an admin account to be set!	emailadmin	en	Vaction messages with start- and end-date require an admin account to be set!
 virtual mail manager	emailadmin	en	Virtual MAIL ManaGeR
+custom mail delivery instructions	emailadmin	en	Custom mail delivery folder
+mail account password in clear text	emailadmin	en	Mail account password
+absolute path to the mailbox	emailadmin	en	Absolute path to the users mailbox
+default maildir path	emailadmin	en	If not specified, ./Maildir will be used
+default quota size	emailadmin	en	leave empty to provide default quota size
+all services disabled	emailadmin	en	Disable POP3/IMAP/Webmail services
+pop3 service disabled	emailadmin	en	Disable POP3 service
+imap service disabled	emailadmin	en	Disable IMAP service
+webmail service disabled	emailadmin	en	Disable Webmail service
diff -ruN egroupware.orig/emailadmin/setup/egw_ru.lang egroupware/emailadmin/setup/egw_ru.lang
--- egroupware.orig/emailadmin/setup/egw_ru.lang	2008-11-24 14:43:16.000000000 +0300
+++ egroupware/emailadmin/setup/egw_ru.lang	2009-02-11 20:50:37.000000000 +0300
@@ -132,3 +132,9 @@
 users can define their own signatures	emailadmin	ru	пользователи могут устанавливать свои собственные подписи
 vaction messages with start- and end-date require an admin account to be set!	emailadmin	ru	Vaction-сообщения (сообщения об отпуске? вакансиях? высвобождении? незанятых периодах? вовсе сообщения от объекта Java VAction? сообщения виртуальных действий?) с датами начала и окончания требуют установленной учетной записи администратора!
 virtual mail manager	emailadmin	ru	Менеджер Виртуальной ПОЧТЫ
+default maildir path	emailadmin	en	Если не определено, значение ./Maildir используется
+default quota size	emailadmin	en	Если не определено, используется по умолчанию квота
+all services disabled	emailadmin	en	Отключить POP3/IMAP/Webmail сервисы
+pop3 service disabled	emailadmin	en	Отключить POP3 сервис
+imap service disabled	emailadmin	en	Отключить IMAP сервис
+webmail service disabled	emailadmin	en	Отключить Webmail сервис
diff -ruN egroupware.orig/emailadmin/templates/default/editprofile.tpl egroupware/emailadmin/templates/default/editprofile.tpl
--- egroupware.orig/emailadmin/templates/default/editprofile.tpl	2008-11-24 14:43:16.000000000 +0300
+++ egroupware/emailadmin/templates/default/editprofile.tpl	2009-02-11 20:50:37.000000000 +0300
@@ -971,6 +971,81 @@
 		</fieldset>
 	</div>
 	
+        <!-- The code for the Courier-mta Server with courier-ldap -->
+
+	<div id="imapcontent7" class="inactivetab">
+		<fieldset style="width:650px;" class="row_on"><legend>{lang_server_settings}</legend>
+		<table width="100%" border="0" cellspacing="0" cellpading="1">
+			<tr>
+				<td width="300px">{lang_imap_server_hostname_or_IP_address}:</td>
+				<td><input name="imapsettings[7][imapServer]" maxlength="80" style="width: 350px;" value="{value_imapServer}"></td>
+			</tr>
+			
+			<tr>
+				<td>{lang_imap_server_port}:</td>
+				<td><input name="imapsettings[7][imapPort]" maxlength="5" size="5" value="{value_imapPort}"></td>
+			</tr>
+			
+			<tr>
+				<td>{lang_imap_server_logintyp}:</td>
+				<td>
+					<select name="imapsettings[7][imapLoginType]" style="width: 350px;" size="1" onclick="onchange_imapsettings(7,'imapLoginType');">
+						<option value="standard" {selected_imapLoginType_standard}>{lang_standard}</option>
+						<option value="vmailmgr" {selected_imapLoginType_vmailmgr}>{lang_vmailmgr}</option>
+						<option value="admin" {selected_imapLoginType_admin}>{lang_defined_by_admin}</option>
+					</select>
+				</td>
+
+			</tr>
+		</table>
+		</fieldset>
+		<p>
+        <fieldset style="width:650px;" class="row_off"><legend>{lang_imap_auth}</legend>
+        <table width="100%" border="0" cellspacing="0" cellpading="1">
+            <tr class="row_off">
+                <td width="300px">{lang_Use_IMAP_auth}:</td>
+                <td>
+                </td>
+            </tr>
+            <tr>
+                <td>{lang_username}:</td>
+                <td>
+                    <input type="text" name="imapsettings[7][imapAuthUsername]" style="width: 350px;" value="{value_imapAuthUsername}">
+                </td>
+            </tr>
+            <tr>
+                <td>{lang_password}:</td>
+                <td>
+                    <input type="password" name="imapsettings[7][imapAuthPassword]" style="width: 350px;" value="{value_imapAuthPassword}">
+                </td>
+            </tr>
+        </table>
+        </fieldset>
+        <p>
+		<fieldset style="width:650px;" class="row_off"><legend>{lang_encryption_settings}</legend>
+                <table width="100%" border="0" cellspacing="0" cellpading="1">
+
+			<tr>
+				<td width="300px">{lang_encrypted_connection}:</td>
+				<td>
+<!--					<input type="checkbox" name="imapsettings[6][imapTLSEncryption]" {selected_imapTLSEncryption} value="yes"> -->
+					<input type="radio" name="imapsettings[7][imapTLSEncryption]" value="1" {checked_imapTLSEncryption_1}> STARTTLS
+					<input type="radio" name="imapsettings[7][imapTLSEncryption]" value="2" {checked_imapTLSEncryption_2}> TLS
+					<input type="radio" name="imapsettings[7][imapTLSEncryption]" value="3" {checked_imapTLSEncryption_3}> SSL
+					<input type="radio" name="imapsettings[7][imapTLSEncryption]" value="0" {checked_imapTLSEncryption_0}> {lang_no_encryption}
+				</td>
+			</tr>
+
+			<tr>
+				<td>{lang_do_not_validate_certificate}:</td>
+				<td>
+					<input type="checkbox" name="imapsettings[7][imapTLSAuthentication]" {selected_imapTLSAuthentication} value="dontvalidate">
+				</td>
+			</tr>
+		</table>
+		</fieldset>
+	</div>
+
 </div>
 
 <!-- The code for External Tab -->
diff -ruN egroupware.orig/emailadmin/templates/default/edituserdata.tpl egroupware/emailadmin/templates/default/edituserdata.tpl
--- egroupware.orig/emailadmin/templates/default/edituserdata.tpl	2008-11-24 14:43:16.000000000 +0300
+++ egroupware/emailadmin/templates/default/edituserdata.tpl	2009-02-11 20:50:37.000000000 +0300
@@ -20,7 +20,7 @@
 						</td>
 						<td align="right">
 							{lang_emailaccount_active}
-							<input type="checkbox" name="accountStatus" {account_checked}>
+							<input type="checkbox" name="accountStatus" {account_checked}><br>
 						</td>
 					</tr>
 					<tr bgcolor="{tr_color1}">
@@ -33,6 +33,23 @@
 
 
 
+					<tr bgcolor="{tr_color1}">
+						<td width="200">{lang_default_delivery}</td>
+						<td colspan="2">
+                     <input name="defaultdelivery" value="{defaultdelivery}" style="width:350px;">({lang_default_maildir_path})
+						</td>
+					</tr>
+					<tr bgcolor="{tr_color2}">
+						<td width="200">{lang_clear_password}</td>
+						<td colspan="2">
+						<input name="clearPassword" value="{clearPassword}" style="width:350px;">
+					</tr>
+					<tr bgcolor="{tr_color1}">
+						<td width="200">{lang_mail_box}</td>
+						<td colspan="2">
+							<input name="mailbox" value="{mailbox}" style="width:350px;">
+						</td>
+					</tr>
 					<tr bgcolor="{tr_color2}">
 						<td>{lang_mailAlternateAddress}</td>
 						<td align="center" style="width:350px;">
@@ -59,7 +76,7 @@
 						</td>
 					</tr>
 
-					<tr bgcolor="{tr_color2}">
+					<tr class="row_on" bgcolor="{tr_color2}">
 						<td>
 							{lang_forward_only}
 						</td>
@@ -81,12 +98,15 @@
 					<tr bgcolor="{tr_color2}">
 						<td width="200">{lang_qoutainmbyte}</td>
 						<td colspan="2">
-							<input name="quotaLimit" value="{quotaLimit}" style="width:350px;"> ({lang_0forunlimited})
+							<input name="quotaLimit" value="{quotaLimit}" style="width:350px;"> ({lang_default_quota_size})
 						</td>
 					</tr>
-					<tr>
-						<td colspan="3">
-							&nbsp;
+					<tr class="row_on" bgcolor="{tr_color2}">
+						<td colspan="3" align="center">
+							{lang_global_disabled}<input type="checkbox" name="accountGlobalStatus" {account_global_checked}>&nbsp;&nbsp;&nbsp;
+							{lang_pop3_disabled}<input type="checkbox" name="accountStatusPop3" {account_pop3_checked}>&nbsp;&nbsp;&nbsp;
+							{lang_imap_disabled}<input type="checkbox" name="accountStatusImap" {account_imap_checked}>&nbsp;&nbsp;&nbsp;
+							{lang_webmail_disabled}<input type="checkbox" name="accountStatusWeb" {account_webmail_checked}>
 						</td>
 					</tr>
 				</table>
diff -ruN egroupware.orig/phpgwapi/inc/class.accounts_ldap.inc.php egroupware/phpgwapi/inc/class.accounts_ldap.inc.php
--- egroupware.orig/phpgwapi/inc/class.accounts_ldap.inc.php	2008-11-24 14:42:44.000000000 +0300
+++ egroupware/phpgwapi/inc/class.accounts_ldap.inc.php	2009-02-11 20:50:37.000000000 +0300
@@ -80,8 +80,8 @@
 	 */
 	var $requiredObjectClasses = array(
 		'user' => array(
-			'top','person','organizationalperson','inetorgperson','posixaccount','shadowaccount'
-		),
+			'top','person','organizationalperson','inetorgperson','posixaccount','shadowaccount','couriermailaccount'
+ 		),
 		'group' => array(
 			'top','posixgroup','groupofnames'
 		)
