# GNU Mailman

## Presentation

Mailman is free software for managing electronic mail discussion and e-newsletter lists. Mailman is integrated with the web, making it easy for users to manage their accounts and for list owners to administer their lists. Mailman supports built-in archiving, automatic bounce processing, content filtering, digest delivery, spam filters, and more.

Mailman uses django-allauth for external authentication. And as of version 0.49, django-allauth is compatible with LemonLDAP::NG

First, make sure you have set up LemonLDAP::NG ‘s OpenID Connect service and added a Relying Party for your Mailman instance

Mailman can use the following OpenID Connect attributes to fill the user’s profile:

- `name`

- `email`

- `preferred_username`

Make sure you create a Client ID and a Client Secret for the Relying Party, and that the mailman callback URL is allowed : `https://mailman.example.com/accounts/lemonldap/login/callback/`

## Mailman configuration

Note

Make sure you are using at least version 0.49 of django-allauth

### Provider activation

In the Mailman config (settings.py), enable the LemonLDAP::NG provider:

    INSTALLED_APPS = [
     'allauth',
     'allauth.account',
     'allauth.socialaccount',
     'allauth.socialaccount.providers.lemonldap',
    ]

    SOCIALACCOUNT_PROVIDERS = {
        'lemonldap': {
            'LEMONLDAP_URL': 'https://auth.example.com',
        },
    }

### Provider configuration

Browse to Mailman django administration, then add a new Social application

- Provider: LemonLDAP::NG

- Name: pick one

- Client id: must match the Client ID set in LemonLDAP::NG

- Secret key: must match the Client Secret set in LemonLDAP::NG

- Sites: choose which Mailman site can use LemonLDAP::NG

You should then be able to login on your Mailman site using LemonLDAP::NG