##### ##### This file is part of Mail-in-a-Box-LDAP which is released under the ##### terms of the GNU Affero General Public License as published by the ##### Free Software Foundation, either version 3 of the License, or (at ##### your option) any later version. See file LICENSE or go to ##### https://github.com/downtownallday/mailinabox-ldap for full license ##### details. ##### # LDAP Admin Extensions for Postfix MTA support # # MiaB LDAP UUID(v4): 7392cdda-5ec8-431f-9936-0000273c0167 # or: 1939000794.24264.17183.39222.658243943 # objectIdentifier MiabLDAProot 2.25.1939000794.24264.17183.39222.658243943 objectIdentifier MiabLDAPmail MiabLDAProot:2 objectIdentifier MiabLDAPmailAttributeType MiabLDAPmail:1 objectIdentifier MiabLDAPmailObjectClass MiabLDAPmail:2 attributetype ( 1.3.6.1.4.1.15347.2.102 NAME 'transport' SUP name) attributetype ( 1.3.6.1.4.1.15347.2.101 NAME 'mailRoutingAddress' SUP mail ) attributetype ( 1.3.6.1.4.1.15347.2.110 NAME 'maildest' DESC 'Restricted to send only to local network' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{32768} ) attributetype ( 1.3.6.1.4.1.15347.2.111 NAME 'mailaccess' DESC 'Can be mailed to restricted groups' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{32768} ) attributetype ( 1.3.6.1.4.1.15347.2.100 NAME ( 'maildrop' ) DESC 'RFC1274: RFC822 Mailbox' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 ) attributetype ( 1.3.6.1.4.1.10018.1.1.1 NAME 'mailbox' DESC 'The absolute path to the mailbox for a mail account in a non-default location' EQUALITY caseExactMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE ) # create a mailMember for utf8 email addresses in mailGroups attributetype ( MiabLDAPmailAttributeType:1 NAME 'mailMember' DESC 'RFC6532 utf8 email address of group member(s)' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 ) # create a utf8 version of core 'domainComponent' attributetype ( MiabLDAPmailAttributeType:2 NAME 'dcIntl' DESC 'UTF8 domain component' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE ) # Create mda/lda user mailbox quota settings (for dovecot) # format: number | number 'B' | number 'K' | number 'M' | number 'G' # # Dovecot supports more than one quota rule (but no way to use a # multi-valued attribute). Also add additional attributes for # more quota rules even though we're not necessarily # using them because we might in the future which could help avoid a # schema update. Dovecot supports "as many quota rules as you want" attributetype ( MiabLDAPmailAttributeType:3 DESC 'MDA/LDA user mailbox quota' NAME 'mailboxQuota' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE EQUALITY caseExactMatch ) attributetype ( MiabLDAPmailAttributeType:4 DESC 'MDA/LDA user mailbox quota 2' NAME 'mailboxQuota2' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE EQUALITY caseExactMatch ) attributetype ( MiabLDAPmailAttributeType:5 DESC 'MDA/LDA user mailbox quota 3' NAME 'mailboxQuota3' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE EQUALITY caseExactMatch ) attributetype ( MiabLDAPmailAttributeType:6 DESC 'MDA/LDA user mailbox quota 4' NAME 'mailboxQuota4' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE EQUALITY caseExactMatch ) attributetype ( MiabLDAPmailAttributeType:7 DESC 'MDA/LDA user mailbox quota 5' NAME 'mailboxQuota5' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE EQUALITY caseExactMatch ) attributetype ( MiabLDAPmailAttributeType:8 DESC 'MDA/LDA user mailbox quota 6' NAME 'mailboxQuota6' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE EQUALITY caseExactMatch ) # Dovecot can maintain a flag indicating whether a user is over or # under quota. It's use is not required, but enables postfix to reject # messages without queuing them when a mailbox is full. The value # should be dovecot boolean value 'yes', or 'no'. attributetype ( MiabLDAPmailAttributeType:9 DESC 'MDA/LDA over quota flag' NAME 'mailboxOverQuotaFlag' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE EQUALITY caseIgnoreMatch ) # # object classes # objectclass ( 1.3.6.1.4.1.15347.2.1 NAME 'mailUser' DESC 'E-Mail User' SUP top AUXILIARY MUST ( uid $ mail $ maildrop ) MAY ( cn $ mailbox $ maildest $ mailaccess $ mailboxQuota $ mailboxQuota2 $ mailboxQuota3 $ mailboxQuota4 $ mailboxQuota5 $ mailboxQuota6 $ mailboxOverQuotaFlag ) ) objectclass ( 1.3.6.1.4.1.15347.2.2 NAME 'mailGroup' DESC 'E-Mail Group' SUP top STRUCTURAL MUST ( cn $ mail ) MAY ( mailRoutingAddress $ member $ mailMember $ description ) ) objectclass ( 1.3.6.1.4.1.15347.2.3 NAME 'transportTable' DESC 'MTA Transport Table' SUP top STRUCTURAL MUST ( cn $ transport ) ) # create an auxiliary class to attach to 'domain' objects objectClass ( MiabLDAPmailObjectClass:1 NAME 'mailDomain' DESC 'Domain we handle mail for' SUP top AUXILIARY MUST ( dcIntl ) )