1

Topic: What's new in iRedMail (LDAP) -current (2009.06.10)

Hi, all.

I'd like to introduce two big improvements in iRedMail (LDAP) -current (2009.06.06):

  • Mail list/group for LDAP backend is re-designed.

  • Maildir format for LDAP backend is re-designed.

Give me your feedback/suggestions.

Mail list/group is re-designed.

In prevous version, LDIF of mail list/group is like below:

dn: mail=group01@a.cn,ou=Groups,domainName=a.cn,o=domains,dc=iredmail,dc=org
objectClass: mailList
objectClass: top
enabledService: mail
enabledService: deliver
mailForwarding: user01@a.cn
mailForwarding: user02@a.cn
mailForwarding: user03@a.cn
mailForwarding: user04@a.cn
hasMember: yes

In above LDIF, members of group are defined in mailForwardingAddress, both internal and external user are acceptable.

Benefits:

  • Both internal and external users are acceptable.

Disadvantage:

  • You don't know whether the user exist or not.

  • Hard to control member list.

LDIF of mail list/group after re-designed:

dn: mail=group01@a.cn,ou=Groups,domainName=a.cn,o=domains,dc=iredmail,dc=org
objectClass: mailList
objectClass: top
accountStatus: active
enabledService: mail
enabledService: deliver
hasMember: yes

As you see, no member defined in group object. Yes, you have to specify group in user object:

dn: mail=user01@a.cn,ou=Users,domainName=a.cn,o=domains,dc=iredmail,dc=org
objectClass: mailUser
objectClass: top
accountStatus: active
enabledService: mail
enabledService: pop3
enabledService: imap
enabledService: smtp
enabledService: deliver
enabledService: managesieve
enabledService: forward
enabledService: recipientbcc
enabledService: senderbcc
enabledService: displayedInGlobalAddressBook
memberOfGroup: group01@a.cn
memberOfGroup: group02@a.cn
memberOfGroup: group03@a.cn

As you see, user01@ is member of three groups: group01@, group02, group03.

Benefits:

  • Group info is defined in user object, you can make sure this group member exist.

  • Easy to maintain group memberes.

Maildir format for LDAP backend is re-designed.

In prevous version, maildir format is:

user01@domain.ltd: /home/vmail01/domain.ltd/user01/

Description:

  • /home/vmail01 is storage base directory, defined in 'homeDirectory' attribute.

  • domain.ltd/user01/ is path of mailbox, defined in 'mailMessageStore' attribute.

Disadvantage:

  • /home/vmail01 is hard-coded in Dovecot setting (/etc/dovecot{,-mysql,-ldap}.conf), it means all mail data must be sotred in this directory. You can't change it even disk storage is full.

Maildir format after re-designed:

user01@domain.ltd: /home/vmail01/domain.ltd/u/us/use/user01/Maildir/
user02@domain.ltd: /home/vmail20/domain.ltd/u/us/use/user02/Maildir/

Maildir is 'hashed' string.
It's a *BAD* idea to have too many file/directories under same directory, it will reduce file system performance while kernel find the file you want.

Dovecot setting is changed too, it will use value of 'storageBaseDirectory' as storage base directory (in above: /home/vmail01, /home/vmail20), and append value of 'mailMessageStore' (in above: domain.ltd/u/us/use/user01/, domain.ltd/u/us/use/user02/) and 'Maildir/' string as maildir.

And, user's 'homeDirectory' is not used for mail service, so that you can specify another path used as HOME directory for ssh login or other service.

Benefits (useful for large-scale deployment)

  • Flexible, you get a per-user storage base directory. Your disk storage won't be "FULL" anymore, just attacted another disk and make new users use the new one.

  • Performance improvement. It's a bad idea to store 1000 mailbox under one directory, find a file in this directory will be slower.

2

Re: What's new in iRedMail (LDAP) -current (2009.06.10)

2009.06.10:

  • Automatically add a disclaimer to outgoing emails with Amavisd-new + alterMIME (v0.3.10). Disabled by default.

  • Add sample script for dovecot quota warning: tools/dovecot-quota-warning.sh.

  • Update perl-Mail-DKIM to 0.36. Hope DKIM signing is more stable.