"Fossies" - the Fresh Open Source Software Archive

Member "mailman-3.3.7/src/mailman/handlers/docs/acknowledge.rst" (10 Nov 2022, 5151 Bytes) of package /linux/misc/mailman-3.3.7.tar.bz2:


As a special service "Fossies" has tried to format the requested source page into HTML format (assuming markdown format). Alternatively you can here view or download the uninterpreted source code file. A member file download can also be achieved by clicking within a package contents listing on the according byte size field.

Message acknowledgment

When a user posts a message to a mailing list, and that user has chosen to receive acknowledgments of their postings, Mailman will sent them such an acknowledgment. :

>>> from mailman.app.lifecycle import create_list   
>>> mlist = create_list('test@example.com')
>>> mlist.display_name = 'Test'
>>> mlist.preferred_language = 'en'
>>> mlist.send_welcome_message = False
>>> # XXX This will almost certainly change once we've worked out the web
>>> # space layout for mailing lists now.

>>> # Ensure that the virgin queue is empty, since we'll be checking this
>>> # for new auto-response messages.
>>> from mailman.testing.helpers import get_queue_messages
>>> get_queue_messages('virgin')
[]

Subscribe a user to the mailing list. :

>>> from mailman.interfaces.usermanager import IUserManager
>>> from zope.component import getUtility
>>> user_manager = getUtility(IUserManager)

>>> from mailman.interfaces.member import MemberRole
>>> user_1 = user_manager.create_user('aperson@example.com')
>>> address_1 = list(user_1.addresses)[0]
>>> mlist.subscribe(address_1, MemberRole.member)
<Member: aperson@example.com on test@example.com as MemberRole.member>

Non-member posts

Non-members can't get acknowledgments of their posts to the mailing list. :

>>> from mailman.testing.helpers import (specialized_message_from_string
...   as message_from_string)   
>>> msg = message_from_string("""\
... From: bperson@example.com
...
... """)

>>> from mailman.config import config
>>> handler = config.handlers['acknowledge']
>>> handler.process(mlist, msg, {})
>>> get_queue_messages('virgin')
[]

We can also specify the original sender in the message's metadata. If that person is also not a member, no acknowledgment will be sent either.

>>> msg = message_from_string("""... From: bperson@example.com ... ... """) >>> handler.process(mlist, msg, ... dict(original_sender='cperson@example.com')) >>> get_queue_messages('virgin') []

No acknowledgment requested

Unless the user has requested acknowledgments, they will not get one.

>>> msg = message_from_string("""... From: aperson@example.com ... ... """) >>> handler.process(mlist, msg, {}) >>> get_queue_messages('virgin') []

Similarly if the original sender is specified in the message metadata, and that sender is a member but not one who has requested acknowledgments, none will be sent. :

>>> user_2 = user_manager.create_user('dperson@example.com')
>>> address_2 = list(user_2.addresses)[0]
>>> mlist.subscribe(address_2, MemberRole.member)
<Member: dperson@example.com on test@example.com as MemberRole.member>

>>> handler.process(mlist, msg,
...     dict(original_sender='dperson@example.com'))
>>> get_queue_messages('virgin')
[]

Requested acknowledgments

If the member requests acknowledgments, Mailman will send them one when they post to the mailing list.

>>> user_1.preferences.acknowledge_posts = True

The receipt will include the original message's subject in the response body,

>>> msg = message_from_string("""... From: aperson@example.com ... Subject: Something witty and insightful ... ... """) >>> handler.process(mlist, msg, {}) >>> messages = get_queue_messages('virgin') >>> len(messages) 1 >>> from mailman.testing.documentation import dump_msgdata >>> dump_msgdata(messages[0].msgdata) _parsemsg : False listid : test.example.com nodecorate : True recipients : {'aperson@example.com'} reduced_list_headers: True ... >>> print(messages[0].msg.as_string()) ... MIME-Version: 1.0 ... Subject: Test post acknowledgment From: test-bounces@example.com To: aperson@example.com ... Precedence: bulk <BLANKLINE> Your message entitled <BLANKLINE> Something witty and insightful <BLANKLINE> was successfully received by the Test mailing list.

If there is no subject, then the receipt will use a generic message.

>>> msg = message_from_string("""... From: aperson@example.com ... ... """) >>> handler.process(mlist, msg, {}) >>> messages = get_queue_messages('virgin') >>> len(messages) 1 >>> dump_msgdata(messages[0].msgdata) _parsemsg : False listid : test.example.com nodecorate : True recipients : {'aperson@example.com'} reduced_list_headers: True ... >>> print(messages[0].msg.as_string()) MIME-Version: 1.0 ... Subject: Test post acknowledgment From: test-bounces@example.com To: aperson@example.com ... Precedence: bulk <BLANKLINE> Your message entitled <BLANKLINE> (no subject) <BLANKLINE> was successfully received by the Test mailing list.