• Sendmail LDAP schema for 389-ds

    From kalevi@kalevi@kolttonen.fi (Kalevi Kolttonen) to comp.mail.sendmail on Thu Jul 9 13:31:12 2026
    From Newsgroup: comp.mail.sendmail

    Hello!

    Red Hat has banished OpenLDAP server from Red Hat Enterprise Linux.

    I installed the latest 389-ds on RHEL 10.2:

    root@rhel:~# rpm -qi 389-ds-base
    Name : 389-ds-base
    Version : 3.2.0
    Release : 8.el10_2
    Architecture: x86_64
    Install Date: Wed 08 Jul 2026 04:39:41 PM EEST
    Group : Unspecified
    Size : 12344154
    License : GPL-3.0-or-later WITH GPL-3.0-389-ds-base-exception AND (Apache-2.0 OR Apache-2.0 WITH LLVM-exception OR MIT) AND (Apache-2.0 OR LGPL-2.1-or-later OR MIT) AND (Apache-2.0 OR MIT) AND (MIT OR Apache-2.0) AND Unicode-3.0 AND (MIT OR Unlicense) AND Apache-2.0 AND MIT AND MPL-2.0 AND Zlib
    Signature :
    RSA/SHA256, Fri 26 Jun 2026 03:33:20 PM EEST, Key ID 199e2f91fd431d51
    ML-DSA-87+Ed448/SHA512, Fri 26 Jun 2026 03:33:20 PM EEST, Key ID fcd355b305707a62
    Source RPM : 389-ds-base-3.2.0-8.el10_2.src.rpm
    Build Date : Fri 26 Jun 2026 01:04:13 PM EEST
    Build Host : x86-vm-06.brew-001.prod.iad2.dc.redhat.com
    Packager : Red Hat, Inc. <http://bugzilla.redhat.com/bugzilla>
    Vendor : Red Hat, Inc.
    URL : https://www.port389.org/
    Summary : 389 Directory Server (base)
    Description :
    389 Directory Server is an LDAPv3 compliant server. The base package includes the LDAP server and command line utilities for server administration.


    The problem is that 389-ds expects schemas in LDIF format unlike
    OpenLDAP which accepts sendmail.schema distributed with Sendmail.

    I have converted sendmail.schema to LDIF by hand. It has been tested
    with virtusertable in 389-ds and it worked. Here is the LDIF in
    case Claus wants to include it in Sendmail 8.19 release.


    =============================================================================== # Copyright (c) 2000-2002, 2005 Proofpoint, Inc. and its suppliers.
    # All rights reserved.
    #
    # By using this file, you agree to the terms and conditions set
    # forth in the LICENSE file which can be found at the top level of
    # the sendmail distribution.
    #
    # $Id: sendmail.schema,v 8.23 2013-11-22 20:51:07 ca Exp $
    #
    # Converted sendmail.schema to 389-ds by Kalevi Kolttonen 2026-07-09
    #
    # Note that this schema is experimental at this point as it has had little
    # public review. Therefore, it may change in future versions. Feedback
    # via sendmail-YYYY@support.sendmail.org is encouraged (replace YYYY with
    # the current year, e.g., 2005).
    #
    # OID arcs for Sendmail
    # enterprise: 1.3.6.1.4.1
    # sendmail: enterprise.6152
    # sendmail-at: sendmail.3.1
    # sendmail-oc: sendmail.3.2
    #
    ###########################################################################
    #
    # The Sendmail MTA attributes and objectclass
    #
    ###########################################################################
    #
    # attribute sendmailMTACluster cis
    #
    dn: cn=schema
    attributeTypes: (
    1.3.6.1.4.1.6152.10.3.1.10
    NAME 'sendmailMTACluster'
    DESC 'cluster name associated with a set of MTAs'
    EQUALITY caseIgnoreIA5Match
    SUBSTR caseIgnoreIA5SubstringsMatch
    SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{256}
    )
    #
    # attribute sendmailMTAHost cis
    #
    attributeTypes: (
    1.3.6.1.4.1.6152.10.3.1.11
    NAME 'sendmailMTAHost'
    DESC 'host name associated with a MTA cluster'
    EQUALITY caseIgnoreIA5Match
    SUBSTR caseIgnoreIA5SubstringsMatch
    SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{256}
    )
    #objectClass sendmailMTA
    # requires
    # objectClass
    # allows
    # sendmailMTACluster,
    # sendmailMTAHost,
    # Description
    objectClasses: (
    1.3.6.1.4.1.6152.10.3.2.10
    NAME 'sendmailMTA'
    SUP top STRUCTURAL
    DESC 'Sendmail MTA definition'
    MAY ( sendmailMTACluster $ sendmailMTAHost $ Description )
    )
    ###########################################################################
    #
    # The Sendmail MTA shared attributes
    #
    ###########################################################################
    #
    # attribute sendmailMTAKey cis
    #
    attributeTypes: (
    1.3.6.1.4.1.6152.10.3.1.13
    NAME 'sendmailMTAKey'
    DESC 'key (left hand side) of an aliases or map entry'
    EQUALITY caseIgnoreMatch
    SUBSTR caseIgnoreSubstringsMatch
    SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{256}
    )
    #
    # attribute sendmailMTAMapName cis
    #
    attributeTypes: (
    1.3.6.1.4.1.6152.10.3.1.14
    NAME 'sendmailMTAMapName'
    DESC 'identifier for the particular map'
    EQUALITY caseIgnoreMatch
    SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{128} SINGLE-VALUE
    )
    #
    # attribute sendmailMTAMapValue cis
    #
    attributeTypes: (
    1.3.6.1.4.1.6152.10.3.1.16
    NAME 'sendmailMTAMapValue'
    DESC 'value (right hand side) of a map entry'
    EQUALITY caseIgnoreMatch
    SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE
    )
    #
    # attribute sendmailMTAMapSearch cis
    #
    attributeTypes: (
    1.3.6.1.4.1.6152.10.3.1.24
    NAME 'sendmailMTAMapSearch'
    DESC 'recursive search for values of a map entry'
    EQUALITY caseExactMatch
    SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE
    )
    #
    # attribute sendmailMTAMapURL cis
    #
    attributeTypes: (
    1.3.6.1.4.1.6152.10.3.1.25
    NAME 'sendmailMTAMapURL'
    DESC 'recursive search URL for values of a map entry'
    EQUALITY caseExactMatch
    SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE
    )
    #objectClass sendmailMTAMap
    # requires
    # objectClass,
    # sendmailMTAMapName,
    # allows
    # sendmailMTACluster,
    # sendmailMTAHost,
    # Description
    objectClasses: (
    1.3.6.1.4.1.6152.10.3.2.11
    NAME 'sendmailMTAMap'
    SUP sendmailMTA STRUCTURAL
    DESC 'Sendmail MTA map definition'
    MUST sendmailMTAMapName
    MAY ( sendmailMTACluster $ sendmailMTAHost $ Description )
    )
    #
    #objectClass sendmailMTAObject
    # requires
    # objectClass,
    # sendmailMTAMapName,
    # sendmailMTAKey,
    # allows
    # sendmailMTACluster,
    # sendmailMTAHost,
    # sendmailMTAMapValue,
    # sendmailMTAMapSearch,
    # sendmailMTAMapURL,
    # Description
    #
    objectClasses: (
    1.3.6.1.4.1.6152.10.3.2.12
    NAME 'sendmailMTAMapObject'
    SUP sendmailMTAMap STRUCTURAL
    DESC 'Sendmail MTA map object'
    MUST ( sendmailMTAMapName $ sendmailMTAKey )
    MAY ( sendmailMTACluster $ sendmailMTAHost $ sendmailMTAMapValue $ sendmailMTAMapSearch $ sendmailMTAMapURL $ Description )
    )
    #
    ###########################################################################
    #
    # The Sendmail MTA Alias attributes and objectclasses
    #
    ###########################################################################
    #
    # attribute sendmailMTAAliasGrouping cis
    #
    attributeTypes: (
    1.3.6.1.4.1.6152.10.3.1.18
    NAME 'sendmailMTAAliasGrouping'
    DESC 'name that identifies a particular aliases grouping'
    EQUALITY caseIgnoreIA5Match
    SUBSTR caseIgnoreIA5SubstringsMatch
    SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{256}
    )
    #
    # attribute sendmailMTAAliasValue cis
    #
    attributeTypes: (
    1.3.6.1.4.1.6152.10.3.1.20
    NAME 'sendmailMTAAliasValue'
    DESC 'value (right hand side) of an alias'
    EQUALITY caseIgnoreMatch
    SYNTAX 1.3.6.1.4.1.1466.115.121.1.15
    )
    #
    # attribute sendmailMTAAliasSearch cis
    #
    attributeTypes: (
    1.3.6.1.4.1.6152.10.3.1.26
    NAME 'sendmailMTAAliasSearch'
    DESC 'recursive search for values of an alias'
    EQUALITY caseExactMatch
    SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE
    )
    #
    # attribute sendmailMTAAliasURL cis
    #
    attributeTypes: (
    1.3.6.1.4.1.6152.10.3.1.27
    NAME 'sendmailMTAAliasURL'
    DESC 'recursive search URL for values of an alias'
    EQUALITY caseExactMatch
    SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE
    )
    #
    #objectClass sendmailMTAAlias
    # requires
    # objectClass,
    # allows
    # sendmailMTAAliasGrouping,
    # sendmailMTACluster,
    # sendmailMTAHost,
    # Description
    #
    objectClasses: (
    1.3.6.1.4.1.6152.10.3.2.13
    NAME 'sendmailMTAAlias'
    SUP sendmailMTA STRUCTURAL
    DESC 'Sendmail MTA alias definition'
    MAY ( sendmailMTAAliasGrouping $ sendmailMTACluster $ sendmailMTAHost $ Description )
    )
    #
    #objectClass sendmailMTAAliasObject
    # requires
    # objectClass,
    # sendmailMTAKey,
    # allows
    # sendmailMTAAliasGrouping,
    # sendmailMTACluster,
    # sendmailMTAHost,
    # sendmailMTAAliasValue,
    # sendmailMTAAliasSearch,
    # sendmailMTAAliasURL,
    # Description
    #
    objectClasses: (
    1.3.6.1.4.1.6152.10.3.2.14
    NAME 'sendmailMTAAliasObject'
    SUP sendmailMTAAlias STRUCTURAL
    DESC 'Sendmail MTA alias object'
    MUST sendmailMTAKey
    MAY ( sendmailMTAAliasGrouping $ sendmailMTACluster $ sendmailMTAHost $ sendmailMTAAliasValue $ sendmailMTAAliasSearch $ sendmailMTAAliasURL $ Description )
    )
    #
    ###########################################################################
    #
    # The Sendmail MTA Class attributes and objectclass
    #
    ###########################################################################
    #
    # attribute sendmailMTAClassName cis
    #
    attributeTypes: (
    1.3.6.1.4.1.6152.10.3.1.22
    NAME 'sendmailMTAClassName'
    DESC 'identifier for the class'
    EQUALITY caseIgnoreMatch
    SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{128} SINGLE-VALUE
    )
    #
    # attribute sendmailMTAClassValue cis
    #
    attributeTypes: (
    1.3.6.1.4.1.6152.10.3.1.23
    NAME 'sendmailMTAClassValue'
    DESC 'member of a class'
    EQUALITY caseIgnoreMatch
    SYNTAX 1.3.6.1.4.1.1466.115.121.1.15
    )
    #
    # attribute sendmailMTAClassSearch cis
    #
    attributeTypes: (
    1.3.6.1.4.1.6152.10.3.1.28
    NAME 'sendmailMTAClassSearch'
    DESC 'recursive search for members of a class'
    EQUALITY caseExactMatch
    SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE
    )
    #
    # attribute sendmailMTAClassURL cis
    #
    attributeTypes: (
    1.3.6.1.4.1.6152.10.3.1.29
    NAME 'sendmailMTAClassURL'
    DESC 'recursive search URL for members of a class'
    EQUALITY caseExactMatch
    SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE
    )
    #
    #objectClass sendmailMTAClass
    # requires
    # objectClass,
    # sendmailMTAClassName,
    # allows
    # sendmailMTACluster,
    # sendmailMTAHost,
    # sendmailMTAClassValue,
    # sendmailMTAClassSearch,
    # sendmailMTAClassURL,
    # Description
    #
    objectClasses: (
    1.3.6.1.4.1.6152.10.3.2.15
    NAME 'sendmailMTAClass'
    SUP sendmailMTA STRUCTURAL
    DESC 'Sendmail MTA class definition'
    MUST sendmailMTAClassName
    MAY ( sendmailMTACluster $ sendmailMTAHost $ sendmailMTAClassValue $ sendmailMTAClassSearch $ sendmailMTAClassURL $ Description )
    ) ===============================================================================


    --- Synchronet 3.22a-Linux NewsLink 1.2
  • From kalevi@kalevi@kolttonen.fi (Kalevi Kolttonen) to comp.mail.sendmail on Thu Jul 9 13:35:10 2026
    From Newsgroup: comp.mail.sendmail

    Kalevi Kolttonen <kalevi@kolttonen.fi> wrote:
    I have converted sendmail.schema to LDIF by hand. It has been tested
    with virtusertable in 389-ds and it worked. Here is the LDIF in
    case Claus wants to include it in Sendmail 8.19 release.

    Easier to get it here:

    https://kolttonen.fi/sendmail.ldif
    --- Synchronet 3.22a-Linux NewsLink 1.2
  • From Lew Pitcher@lew.pitcher@digitalfreehold.ca to comp.mail.sendmail on Thu Jul 9 13:48:52 2026
    From Newsgroup: comp.mail.sendmail

    On Thu, 09 Jul 2026 13:31:12 +0000, Kalevi Kolttonen wrote:

    Hello!

    Red Hat has banished OpenLDAP server from Red Hat Enterprise Linux.

    I installed the latest 389-ds on RHEL 10.2:

    root@rhel:~# rpm -qi 389-ds-base
    Name : 389-ds-base
    Version : 3.2.0
    Release : 8.el10_2
    Architecture: x86_64
    Install Date: Wed 08 Jul 2026 04:39:41 PM EEST
    Group : Unspecified
    Size : 12344154
    License : GPL-3.0-or-later WITH GPL-3.0-389-ds-base-exception AND (Apache-2.0 OR Apache-2.0 WITH LLVM-exception OR MIT) AND (Apache-2.0 OR LGPL-2.1-or-later OR MIT) AND (Apache-2.0 OR MIT) AND (MIT OR Apache-2.0) AND Unicode-3.0 AND (MIT OR Unlicense) AND Apache-2.0 AND MIT AND MPL-2.0 AND Zlib
    Signature :
    RSA/SHA256, Fri 26 Jun 2026 03:33:20 PM EEST, Key ID 199e2f91fd431d51
    ML-DSA-87+Ed448/SHA512, Fri 26 Jun 2026 03:33:20 PM EEST, Key ID fcd355b305707a62
    Source RPM : 389-ds-base-3.2.0-8.el10_2.src.rpm
    Build Date : Fri 26 Jun 2026 01:04:13 PM EEST
    Build Host : x86-vm-06.brew-001.prod.iad2.dc.redhat.com
    Packager : Red Hat, Inc. <http://bugzilla.redhat.com/bugzilla>
    Vendor : Red Hat, Inc.
    URL : https://www.port389.org/
    Summary : 389 Directory Server (base)
    Description :
    389 Directory Server is an LDAPv3 compliant server. The base package includes
    the LDAP server and command line utilities for server administration.


    The problem is that 389-ds expects schemas in LDIF format unlike
    OpenLDAP which accepts sendmail.schema distributed with Sendmail.

    I have converted sendmail.schema to LDIF by hand.

    For what it's worth, Samba used to supply a utility "oLschema2ldif",
    that was described as " a simple tool that converts standard OpenLDAP
    schema files to a LDIF format that is understood by LDB."

    I don't know if that tool still exists, is still distributed with Samba,
    or even could have solved your problem, but it might be worth a look.


    [snip]
    --
    Lew Pitcher
    "In Skills We Trust"
    Not LLM output - I'm just like this.
    --- Synchronet 3.22a-Linux NewsLink 1.2
  • From kalevi@kalevi@kolttonen.fi (Kalevi Kolttonen) to comp.mail.sendmail on Thu Jul 9 18:04:25 2026
    From Newsgroup: comp.mail.sendmail

    Lew Pitcher <lew.pitcher@digitalfreehold.ca> wrote:
    For what it's worth, Samba used to supply a utility "oLschema2ldif",
    that was described as " a simple tool that converts standard OpenLDAP
    schema files to a LDIF format that is understood by LDB."

    I don't know if that tool still exists, is still distributed with Samba,
    or even could have solved your problem, but it might be worth a look.

    I tried all the tools I could find but none of them worked. Not that
    one though.

    Luckily sendmail.schema is not that big so converting it by hand
    was relatively painless.

    br,
    KK
    --- Synchronet 3.22a-Linux NewsLink 1.2
  • From jayjwa@jayjwa@atr2.ath.cx.invalid to comp.mail.sendmail on Sat Jul 11 10:36:26 2026
    From Newsgroup: comp.mail.sendmail

    kalevi@kolttonen.fi (Kalevi Kolttonen) writes:

    Lew Pitcher <lew.pitcher@digitalfreehold.ca> wrote:
    For what it's worth, Samba used to supply a utility "oLschema2ldif",
    that was described as " a simple tool that converts standard OpenLDAP
    schema files to a LDIF format that is understood by LDB."

    I don't know if that tool still exists, is still distributed with Samba,
    or even could have solved your problem, but it might be worth a look.
    Yes, it's with Samba.

    I tried all the tools I could find but none of them worked. Not that
    one though.
    I guess it works? I don't use LDAP so check the results, YMMV, etc.

    oLschema2ldif -b "dc=foo,dc=local" -I /usr/share/sendmail/cf/sendmail.schema -O LDIF.schema
    Converted 21 records with 0 failures

    head LDIF.schema
    dn: CN=sendmailMTACluster,CN=Schema,CN=Configuration,dc=foo,dc=local objectClass: top
    objectClass: attributeSchema
    attributeID: 1.3.6.1.4.1.6152.10.3.1.10
    schemaIdGuid:: CRIoYYbPyun8d7b64CSyyg==
    cn: sendmailMTACluster
    name: sendmailMTACluster
    lDAPDisplayName: sendmailMTACluster
    description: cluster name associated with a set of MTAs
    attributeSyntax: 2.5.5.5

    Slackware Current, recent Sendmail, Samba.
    --
    PGP Key ID: 781C A3E2 C6ED 70A6 B356 7AF5 B510 542E D460 5CAE
    "The Internet should always be the Wild West!"
    --- Synchronet 3.22a-Linux NewsLink 1.2
  • From kalevi@kalevi@kolttonen.fi (Kalevi Kolttonen) to comp.mail.sendmail on Sat Jul 11 16:56:45 2026
    From Newsgroup: comp.mail.sendmail

    jayjwa <jayjwa@atr2.ath.cx.invalid> wrote:
    kalevi@kolttonen.fi (Kalevi Kolttonen) writes:

    Lew Pitcher <lew.pitcher@digitalfreehold.ca> wrote:
    For what it's worth, Samba used to supply a utility "oLschema2ldif",
    that was described as " a simple tool that converts standard OpenLDAP
    schema files to a LDIF format that is understood by LDB."

    I don't know if that tool still exists, is still distributed with Samba, >>> or even could have solved your problem, but it might be worth a look.
    Yes, it's with Samba.

    I tried all the tools I could find but none of them worked. Not that
    one though.
    I guess it works? I don't use LDAP so check the results, YMMV, etc.

    oLschema2ldif -b "dc=foo,dc=local" -I /usr/share/sendmail/cf/sendmail.schema -O LDIF.schema
    Converted 21 records with 0 failures

    head LDIF.schema
    dn: CN=sendmailMTACluster,CN=Schema,CN=Configuration,dc=foo,dc=local objectClass: top
    objectClass: attributeSchema
    attributeID: 1.3.6.1.4.1.6152.10.3.1.10
    schemaIdGuid:: CRIoYYbPyun8d7b64CSyyg==
    cn: sendmailMTACluster
    name: sendmailMTACluster
    lDAPDisplayName: sendmailMTACluster
    description: cluster name associated with a set of MTAs
    attributeSyntax: 2.5.5.5

    Slackware Current, recent Sendmail, Samba.

    The result is completely wrong and unusable for 389-fs.
    --- Synchronet 3.22a-Linux NewsLink 1.2