Source

iredmail / iRedMail / tools / create_mail_user_OpenLDAP.py

Diff from to

iRedMail/tools/create_mail_user_OpenLDAP.py

 # LDAP base dn.
 BASEDN = 'o=domains,dc=example,dc=com'
 
-# LDAP bind dn & password.
-#BINDDN = 'cn=Manager,dc=example,dc=com'
-#BINDPW = 'passwd'
-
 # Storage base directory.
 STORAGE_BASE_DIRECTORY = '/var/vmail/vmail1'
 
+# Append timestamp in maildir path.
+APPEND_TIMESTAMP_IN_MAILDIR = True
+
 # Get base directory and storage node.
 std = STORAGE_BASE_DIRECTORY.rstrip('/').split('/')
 STORAGE_NODE = std.pop()
     return dn
 
 def ldif_mailuser(domain, username, passwd, cn, quota, groups=''):
+    # Append timestamp in maildir path
     DATE = time.strftime('%Y.%m.%d.%H.%M.%S')
+    TIMESTAMP_IN_MAILDIR = ''
+    if APPEND_TIMESTAMP_IN_MAILDIR:
+        TIMESTAMP_IN_MAILDIR = '-%s' % DATE
+
     if quota == '':
         quota = '0'
 
     if HASHED_MAILDIR is True:
         # Hashed. Length of domain name are always >= 2.
         #maildir_domain = "%s/%s/%s/" % (domain[:1], domain[:2], domain)
+        str1 = str2 = str3 = username[0]
         if len(username) >= 3:
-            maildir_user = "%s/%s/%s/%s-%s/" % (username[0], username[1], username[2], username, DATE,)
+            str2 = username[1]
+            str3 = username[2]
         elif len(username) == 2:
-            maildir_user = "%s/%s/%s/%s-%s/" % (
-                    username[0],
-                    username[1],
-                    username[1],
-                    username,
-                    DATE,
-                    )
-        else:
-            maildir_user = "%s/%s/%s/%s-%s/" % (
-                    username[0],
-                    username[0],
-                    username[0],
-                    username,
-                    DATE,
-                    )
+            str2 = str3 = username[1]
+
+        maildir_user = "%s/%s/%s/%s%s/" % (str1, str2, str3, username, TIMESTAMP_IN_MAILDIR, )
         mailMessageStore = maildir_domain + '/' + maildir_user
     else:
         mailMessageStore = "%s/%s-%s/" % (domain, username, DATE)
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.