# Mailing list addresses

Every mailing list has a number of addresses which are publicly available. These are defined in the `IMailingListAddresses` interface.

    >>> mlist = create_list('_xtest@example.com')

The posting address is where people send messages to be posted to the mailing list. This is exactly the same as the fully qualified list name.

    >>> print(mlist.fqdn_listname)
    _xtest@example.com
    >>> print(mlist.posting_address)
    _xtest@example.com

Messages to the mailing list’s no reply address always get discarded without prejudice.

    >>> print(mlist.no_reply_address)
    noreply@example.com

The mailing list’s owner address reaches the human moderators.

    >>> print(mlist.owner_address)
    _xtest-owner@example.com

The request address goes to the list’s email command robot.

    >>> print(mlist.request_address)
    _xtest-request@example.com

The bounces address accepts and processes all potential bounces.

    >>> print(mlist.bounces_address)
    _xtest-bounces@example.com

The join (a.k.a. subscribe) address is where someone can email to get added to the mailing list. The subscribe alias is a synonym for join, but it’s deprecated.

    >>> print(mlist.join_address)
    _xtest-join@example.com
    >>> print(mlist.subscribe_address)
    _xtest-subscribe@example.com

The leave (a.k.a. unsubscribe) address is where someone can email to get removed from the mailing list. The unsubscribe alias is a synonym for leave, but it’s deprecated.

    >>> print(mlist.leave_address)
    _xtest-leave@example.com
    >>> print(mlist.unsubscribe_address)
    _xtest-unsubscribe@example.com

## Email confirmations

Email confirmation messages are sent when actions such as subscriptions need to be confirmed. It requires that a cookie be provided, which will be included in the local part of the email address. The exact format of this is dependent on the `verp_confirm_format` configuration variable.

    >>> print(mlist.confirm_address('cookie'))
    _xtest-confirm+cookie@example.com
    >>> print(mlist.confirm_address('wookie'))
    _xtest-confirm+wookie@example.com

    >>> config.push('test config', """
    ... [mta]
    ... verp_confirm_format: $address---$cookie
    ... """)
    >>> print(mlist.confirm_address('cookie'))
    _xtest-confirm---cookie@example.com
    >>> config.pop('test config')