===============
zope.sendmail
===============
.. image:: https://img.shields.io/pypi/v/zope.sendmail.svg
:target: https://pypi.python.org/pypi/zope.sendmail/
:alt: Latest release
.. image:: https://img.shields.io/pypi/pyversions/zope.sendmail.svg
:target: https://pypi.org/project/zope.sendmail/
:alt: Supported Python versions
.. image:: https://github.com/zopefoundation/zope.sendmail/actions/workflows/tests.yml/badge.svg
:target: https://github.com/zopefoundation/zope.sendmail/actions/workflows/tests.yml
.. image:: https://coveralls.io/repos/github/zopefoundation/zope.sendmail/badge.svg?branch=master
:target: https://coveralls.io/github/zopefoundation/zope.sendmail?branch=master
.. image:: https://readthedocs.org/projects/zopesendmail/badge/?version=latest
:target: https://zopesendmail.readthedocs.io/en/latest/
:alt: Documentation Status
zope.sendmail is a package for email sending from Zope 3 applications.
Email sending from Zope 3 applications works as follows:
A Zope 3 application locates a mail delivery utility
(``IMailDelivery``) and feeds a message to it. It gets back a unique
message ID so it can keep track of the message by subscribing to
``IMailEvent`` events.
The utility registers with the transaction system to make sure the
message is only sent when the transaction commits successfully.
(Among other things this avoids duplicate messages on
``ConflictErrors``.)
If the delivery utility is a ``IQueuedMailDelivery``, it puts the
message into a queue (a Maildir mailbox in the file system). A
separate process or thread (``IMailQueueProcessor``) watches the queue
and delivers messages asynchronously. Since the queue is located in
the file system, it survives Zope restarts or crashes and the mail is
not lost. The queue processor can implement batching to keep the
server load low.
If the delivery utility is a ``IDirectMailDelivery``, it delivers
messages synchronously during the transaction commit. This is not a
very good idea, as it makes the user wait. Note that transaction
commits must not fail, but that is not a problem, because mail
delivery problems dispatch an event instead of raising an exception.
However, there is a problem -- sending events causes unknown code to
be executed during the transaction commit phase. There should be a
way to start a new transaction for event processing after this one is
commited.
An ``IMailQueueProcessor`` or ``IDirectMailDelivery`` actually
delivers the messages by using a mailer (``IMailer``) component that
encapsulates the delivery process. There currently is only one
mailer:
``ISMTPMailer`` sends all messages to a relay host using SMTP.
Documentation is hosted at https://zopesendmail.readthedocs.io/
=========
Changes
=========
6.2 (2024-03-21)
================
- Add implicit_tls option to the Mailer, if setted to True the SMTP connection will use smtplib.SMTP_SSL
and starts the connection with SSL from the beginning.
(see `RFC8314 <https://datatracker.ietf.org/doc/html/rfc8314#section-3.3>`_)
6.1 (2024-02-07)
================
- Fix SMTP protocol interoperability by avoiding hardcoded line endings.
(see https://www.rfc-editor.org/rfc/rfc2821#section-2.3.7)
- Add preliminary support for Python 3.13 as of 3.13a3.
- Add support for Python 3.12.
6.0 (2023-08-22)
================
- Drop support for Python 2.7, 3.5, 3.6.
- Add support for Python 3.11.
5.3 (2022-10-06)
================
- Add support for Python 3.10.
- Do not try to send queued emails to an empty address
(`#45 <https://github.com/zopefoundation/zope.sendmail/issues/45>`_).
5.2 (2021-01-18)
================
- Add minimal savepoint support, so we do not fail if any code tries to create a savepoint.
(`#35 <https://github.com/zopefoundation/zope.sendmail/issues/35>`_).
- Fix TypeError: 'error' object is not subscriptable during error handling on
Windows (`#33 <https://github.com/zopefoundation/zope.sendmail/pull/33>`_).
- Add support for Python 3.9.
5.1 (2020-07-31)
================
- Use ``pywin32`` again, not any longer the meanwhile outdated fork named ``pypiwin32``.
Add some information for installation with buildout.
(`#30 <https://github.com/zopefoundation/zope.sendmail/issues/30>`_)
- Support ``bytes`` messages; consistently convert messages
using a "text" type (i.e. ``str`` for Python 3, ``unicode`` for Python 2)
into ``bytes`` via utf-8 encoding.
Prerequisite to fix
`Products.MailHost#30
<https://github.com/zopefoundation/Products.MailHost/issues/30>`_.
5.0 (2019-04-03)
================
- Drop support for Python 3.4.
- Add support for Python 3.8a3.
- Fix text/bytes issue in MailDir for Python 3.
(`#24 <https://github.com/zopefoundation/zope.sendmail/pull/24>`_)
4.2.1 (2019-02-07)
==================
- Fix SMTP authentication on Python 3. See `issue 16
<https://github.com/zopefoundation/zope.sendmail/issues/16>`_.
4.2 (2018-10-10)
================
- Add support for Python 3.7.
4.1.0 (2017-09-02)
==================
- Host documentation at https://zopesendmail.readthedocs.io/
- Make the data manager sort key a string, this fixes Python 3 where
strings and integers are not sortable. This would happen when using
other data managers with string sort keys.
- Add support for Python 3.5 and 3.6.
- Drop support for Python 2.6 and 3.3.
- Declare explicit dependency on ``pywin32`` on Windows.
- Replace hard-coded constants with equivalents from the standard
``errno`` module.
- Fix SSL support on Python 3. See `issue 9
<https://github.com/zopefoundation/zope.sendmail/issues/9>`_.
- Reach 100% test coverage and maintain it via tox.ini and Travis CI.
- Replaced deprecated dependency on ``optparse`` with equivalent
``argparse``. The help messages have changed and errors are
generally more clear. Specifying a ``--config`` path that doesn't
exist is now an error instead of being silently ignored.
- Fix SMTPMailer sending more than one message. It now reconnects to
the SMTP server as needed. Previously it could only send one message
since it closed the connection after each send. This also makes the
SMTPMailer thread safe. See `issue 1
<https://github.com/zopefoundation/zope.sendmail/issues/1>`_.
4.0.1 (2014-12-29)
==================
- Add support for PyPy3.
4.0.0 (2014-12-20)
==================
- Add support for testing on Travis-CI against supported Python verisons.
- Drop use of ``zope.testrunner`` for testing.
- Drop dependency on ``six``.
- Replace doctests with equivalent unittests.
4.0.0a2 (2013-02-26)
====================
- Fix license Trove classifier.
4.0.0a1 (2013-02-25)
====================
- Add support for Python 3.3.
- Delete event fossils (interfaces ``zope.sendmail.interfaces.IMailSent`` and
``zope.sendmail.interfaces.IMailError``. plus the ``zope.sendmail.events``
module and associated tests). These events were never emitted, and couldn't
have been used safely even if they had been, due to two-phase commit.
https://bugs.launchpad.net/zope3/+bug/177739
- Replace deprecated ``zope.interface.classProvides`` usage with equivalent
``zope.interface.provider`` decorator.
- Replace deprecated ``zope.interface.implements`` usage with equivalent
``zope.interface.implementer`` decorator.
- Drop support for Python 2.4 and 2.5.
- Add a vote method to Mailer implementations to allow them to abort a
transaction if it is known to be unsafe.
- Prevent fatal errors in mail delivery causing potential database corruption.
- Add not declared, but needed test dependency on `zope.component [test]`.
- Add handling for unicode usernames and passwords, encoding them to UTF-8.
Fix for https://bugs.launchpad.net/zope.sendmail/+bug/597143
- Give the background queue processor thread a name.
- Document the ini file keys for ``zope-sendmail --config`` in the help
message printed by ``zope-sendmail --help``. Also rewrote the command-line
parsing to use optparse (not argparse, since Python 2.6 is still supported).
3.7.5 (2012-05-23)
==================
- Ensure that the 'queuedDelivery' directive has the same discriminator
as the 'directDelivery' directive (they are mutually incompatible).
https://bugs.launchpad.net/zope.sendmail/+bug/191143
- Avoid requeuing messages after an SMTP "recipients refused" error.
https://bugs.launchpad.net/zope.sendmail/+bug/1003288
3.7.4 (2010-10-01)
==================
- Handle unicode usernames and passwords, encoding them to UTF-8. Fix for
https://bugs.launchpad.net/zope.sendmail/+bug/597143
3.7.3 (2010-09-25)
==================
- Add not declared, but needed test dependency on `zope.component [test]`.
3.7.2 (2010-04-30)
==================
- Remove no longer required testing dependency on zope.testing.
- Maildir storage for queue can now handle unicode passed in for message or
to/from addresses (change backported from repoze.sendmail).
- Tests use stdlib doctest instead of zope.testing.doctest.
3.7.1 (2010-01-13)
==================
- Backward compatibility import of zope.sendmail.queue.QueueProcessorThread in
zope.sendmail.delivery.
3.7.0 (2010-01-12)
==================
- Remove dependency on ``zope.security``: the security support is optional,
and only available if the ``zope.security`` package is available. This change
is similar to the optional security support introduced in ``zope.component``
3.8.0, and in fact it uses the same helpers.
- Sort by modification time the messages in zope.sendmail.maildir so earlier
messages are sent before later messages during queue processing.
- Add the new parameter ``processorThread`` to the queuedDelivery ZCML
directive: if False, the QueueProcessorThread is not started and thus an
independent process must process the queue; it defaults to True for b/c.
- Provide a console script ``zope-sendmail`` which can be used to process the
delivery queue in case processorThread is False. The console script can
either process the messages in the queue once, or run in "daemon" mode.
3.6.1 (2009-11-16)
==================
- Depend on ``zope.component`` >= 3.8.0, which supports the new semantic of
zope.component.zcml.proxify needed by zope.sendmail.zcml.
3.6.0 (2009-09-14)
==================
- Use simple vocabulary factory function instead of custom `UtilityTerm`
and `UtilityVocabulary` classes, copied from ``zope.app.component`` in
the previous release.
- Depend on the ``transaction`` package instead of ``ZODB3``.
- Remove zcml slugs and zpkg-related files.
- Work around problem when used with Python >=2.5.1. See
https://bugs.edge.launchpad.net/zope.sendmail/+bug/413335 .
3.5.1 (2009-01-26)
==================
- Copyover the UtilityTerm and UtilityVocabulary implementation from
zope.app.component to avoid a dependency.
- Work around a problem when smtp quit fails, the mail was considered not
delivered where just the quit failed.
3.5.0 (2008-07-05)
==================
- final release (identical with 3.5.0b2)
3.5.0b2 (2007-12-19)
====================
- If the SMTP server rejects a message (for example, when the sender or
recipient address is malformed), that email stays in the queue forever
(https://bugs.launchpad.net/zope3/+bug/157104).
3.5.0b1 (2007-11-08)
====================
- Add README.txt
- Can now talk to servers that don't implement EHLO
- Fix bug that caused files with very long names to be created
- Fix for https://bugs.launchpad.net/zope3/+bug/157104: move aside mail that's
causing 5xx server responses.
3.5.0a2 (2007-10-23)
====================
- Clean up ``does_esmtp`` in faux SMTP connection classes provided by the
tests.
- If the ``QueueProcessorThread`` is asked to stop while sending messages, do
so after sending the current message; previously if there were many, many
messages to send, the thread could stick around for quite a while.
3.5.0a1 (2007-10-23)
====================
- ``QueueProcessorThread`` now accepts an optional parameter *interval* for
defining how often to process the mail queue (default is 3 seconds)
- Several ``QueueProcessorThreads`` (either in the same process, or multiple
processes) can now deliver messages from a single maildir without duplicates
being sent.
3.4.0 (2007-08-20)
==================
- Bugfix: Don't keep open files around for every email message
to be sent on transaction commit. People who try to send many emails
in a single transaction now will not run out of file descriptors.
3.4.0a1 (2007-04-22)
====================
Initial release as a separate project, corresponds to ``zope.sendmail``
from Zope 3.4.0a1.
Raw data
{
"_id": null,
"home_page": "https://github.com/zopefoundation/zope.sendmail",
"name": "zope.sendmail",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.7",
"maintainer_email": null,
"keywords": null,
"author": "Zope Foundation and Contributors",
"author_email": "zope-dev@zope.dev",
"download_url": "https://files.pythonhosted.org/packages/bd/81/1023bc85ff32cf57a517a265a9963a906f47a7322b4b6442294a817afbc6/zope.sendmail-6.2.tar.gz",
"platform": null,
"description": "===============\n zope.sendmail\n===============\n\n.. image:: https://img.shields.io/pypi/v/zope.sendmail.svg\n :target: https://pypi.python.org/pypi/zope.sendmail/\n :alt: Latest release\n\n.. image:: https://img.shields.io/pypi/pyversions/zope.sendmail.svg\n :target: https://pypi.org/project/zope.sendmail/\n :alt: Supported Python versions\n\n.. image:: https://github.com/zopefoundation/zope.sendmail/actions/workflows/tests.yml/badge.svg\n :target: https://github.com/zopefoundation/zope.sendmail/actions/workflows/tests.yml\n\n.. image:: https://coveralls.io/repos/github/zopefoundation/zope.sendmail/badge.svg?branch=master\n :target: https://coveralls.io/github/zopefoundation/zope.sendmail?branch=master\n\n.. image:: https://readthedocs.org/projects/zopesendmail/badge/?version=latest\n :target: https://zopesendmail.readthedocs.io/en/latest/\n :alt: Documentation Status\n\nzope.sendmail is a package for email sending from Zope 3 applications.\nEmail sending from Zope 3 applications works as follows:\n\nA Zope 3 application locates a mail delivery utility\n(``IMailDelivery``) and feeds a message to it. It gets back a unique\nmessage ID so it can keep track of the message by subscribing to\n``IMailEvent`` events.\n\nThe utility registers with the transaction system to make sure the\nmessage is only sent when the transaction commits successfully.\n(Among other things this avoids duplicate messages on\n``ConflictErrors``.)\n\nIf the delivery utility is a ``IQueuedMailDelivery``, it puts the\nmessage into a queue (a Maildir mailbox in the file system). A\nseparate process or thread (``IMailQueueProcessor``) watches the queue\nand delivers messages asynchronously. Since the queue is located in\nthe file system, it survives Zope restarts or crashes and the mail is\nnot lost. The queue processor can implement batching to keep the\nserver load low.\n\nIf the delivery utility is a ``IDirectMailDelivery``, it delivers\nmessages synchronously during the transaction commit. This is not a\nvery good idea, as it makes the user wait. Note that transaction\ncommits must not fail, but that is not a problem, because mail\ndelivery problems dispatch an event instead of raising an exception.\n\nHowever, there is a problem -- sending events causes unknown code to\nbe executed during the transaction commit phase. There should be a\nway to start a new transaction for event processing after this one is\ncommited.\n\nAn ``IMailQueueProcessor`` or ``IDirectMailDelivery`` actually\ndelivers the messages by using a mailer (``IMailer``) component that\nencapsulates the delivery process. There currently is only one\nmailer:\n\n``ISMTPMailer`` sends all messages to a relay host using SMTP.\n\nDocumentation is hosted at https://zopesendmail.readthedocs.io/\n\n=========\n Changes\n=========\n\n6.2 (2024-03-21)\n================\n\n- Add implicit_tls option to the Mailer, if setted to True the SMTP connection will use smtplib.SMTP_SSL\n and starts the connection with SSL from the beginning.\n (see `RFC8314 <https://datatracker.ietf.org/doc/html/rfc8314#section-3.3>`_)\n\n6.1 (2024-02-07)\n================\n\n- Fix SMTP protocol interoperability by avoiding hardcoded line endings.\n (see https://www.rfc-editor.org/rfc/rfc2821#section-2.3.7)\n\n- Add preliminary support for Python 3.13 as of 3.13a3.\n\n- Add support for Python 3.12.\n\n\n6.0 (2023-08-22)\n================\n\n- Drop support for Python 2.7, 3.5, 3.6.\n\n- Add support for Python 3.11.\n\n\n5.3 (2022-10-06)\n================\n\n- Add support for Python 3.10.\n\n- Do not try to send queued emails to an empty address\n (`#45 <https://github.com/zopefoundation/zope.sendmail/issues/45>`_).\n\n\n5.2 (2021-01-18)\n================\n\n- Add minimal savepoint support, so we do not fail if any code tries to create a savepoint.\n (`#35 <https://github.com/zopefoundation/zope.sendmail/issues/35>`_).\n\n- Fix TypeError: 'error' object is not subscriptable during error handling on\n Windows (`#33 <https://github.com/zopefoundation/zope.sendmail/pull/33>`_).\n\n- Add support for Python 3.9.\n\n\n5.1 (2020-07-31)\n================\n\n- Use ``pywin32`` again, not any longer the meanwhile outdated fork named ``pypiwin32``.\n Add some information for installation with buildout.\n (`#30 <https://github.com/zopefoundation/zope.sendmail/issues/30>`_)\n\n- Support ``bytes`` messages; consistently convert messages\n using a \"text\" type (i.e. ``str`` for Python 3, ``unicode`` for Python 2)\n into ``bytes`` via utf-8 encoding.\n Prerequisite to fix\n `Products.MailHost#30\n <https://github.com/zopefoundation/Products.MailHost/issues/30>`_.\n\n\n\n5.0 (2019-04-03)\n================\n\n- Drop support for Python 3.4.\n\n- Add support for Python 3.8a3.\n\n- Fix text/bytes issue in MailDir for Python 3.\n (`#24 <https://github.com/zopefoundation/zope.sendmail/pull/24>`_)\n\n\n4.2.1 (2019-02-07)\n==================\n\n- Fix SMTP authentication on Python 3. See `issue 16\n <https://github.com/zopefoundation/zope.sendmail/issues/16>`_.\n\n\n\n4.2 (2018-10-10)\n================\n\n- Add support for Python 3.7.\n\n\n4.1.0 (2017-09-02)\n==================\n\n- Host documentation at https://zopesendmail.readthedocs.io/\n\n- Make the data manager sort key a string, this fixes Python 3 where\n strings and integers are not sortable. This would happen when using\n other data managers with string sort keys.\n\n- Add support for Python 3.5 and 3.6.\n\n- Drop support for Python 2.6 and 3.3.\n\n- Declare explicit dependency on ``pywin32`` on Windows.\n\n- Replace hard-coded constants with equivalents from the standard\n ``errno`` module.\n\n- Fix SSL support on Python 3. See `issue 9\n <https://github.com/zopefoundation/zope.sendmail/issues/9>`_.\n\n- Reach 100% test coverage and maintain it via tox.ini and Travis CI.\n\n- Replaced deprecated dependency on ``optparse`` with equivalent\n ``argparse``. The help messages have changed and errors are\n generally more clear. Specifying a ``--config`` path that doesn't\n exist is now an error instead of being silently ignored.\n\n- Fix SMTPMailer sending more than one message. It now reconnects to\n the SMTP server as needed. Previously it could only send one message\n since it closed the connection after each send. This also makes the\n SMTPMailer thread safe. See `issue 1\n <https://github.com/zopefoundation/zope.sendmail/issues/1>`_.\n\n\n4.0.1 (2014-12-29)\n==================\n\n- Add support for PyPy3.\n\n\n4.0.0 (2014-12-20)\n==================\n\n- Add support for testing on Travis-CI against supported Python verisons.\n\n- Drop use of ``zope.testrunner`` for testing.\n\n- Drop dependency on ``six``.\n\n- Replace doctests with equivalent unittests.\n\n\n4.0.0a2 (2013-02-26)\n====================\n\n- Fix license Trove classifier.\n\n\n4.0.0a1 (2013-02-25)\n====================\n\n- Add support for Python 3.3.\n\n- Delete event fossils (interfaces ``zope.sendmail.interfaces.IMailSent`` and\n ``zope.sendmail.interfaces.IMailError``. plus the ``zope.sendmail.events``\n module and associated tests). These events were never emitted, and couldn't\n have been used safely even if they had been, due to two-phase commit.\n https://bugs.launchpad.net/zope3/+bug/177739\n\n- Replace deprecated ``zope.interface.classProvides`` usage with equivalent\n ``zope.interface.provider`` decorator.\n\n- Replace deprecated ``zope.interface.implements`` usage with equivalent\n ``zope.interface.implementer`` decorator.\n\n- Drop support for Python 2.4 and 2.5.\n\n- Add a vote method to Mailer implementations to allow them to abort a\n transaction if it is known to be unsafe.\n\n- Prevent fatal errors in mail delivery causing potential database corruption.\n\n- Add not declared, but needed test dependency on `zope.component [test]`.\n\n- Add handling for unicode usernames and passwords, encoding them to UTF-8.\n Fix for https://bugs.launchpad.net/zope.sendmail/+bug/597143\n\n- Give the background queue processor thread a name.\n\n- Document the ini file keys for ``zope-sendmail --config`` in the help\n message printed by ``zope-sendmail --help``. Also rewrote the command-line\n parsing to use optparse (not argparse, since Python 2.6 is still supported).\n\n3.7.5 (2012-05-23)\n==================\n\n- Ensure that the 'queuedDelivery' directive has the same discriminator\n as the 'directDelivery' directive (they are mutually incompatible).\n https://bugs.launchpad.net/zope.sendmail/+bug/191143\n\n- Avoid requeuing messages after an SMTP \"recipients refused\" error.\n https://bugs.launchpad.net/zope.sendmail/+bug/1003288\n\n3.7.4 (2010-10-01)\n==================\n\n- Handle unicode usernames and passwords, encoding them to UTF-8. Fix for\n https://bugs.launchpad.net/zope.sendmail/+bug/597143\n\n3.7.3 (2010-09-25)\n==================\n\n- Add not declared, but needed test dependency on `zope.component [test]`.\n\n3.7.2 (2010-04-30)\n==================\n\n- Remove no longer required testing dependency on zope.testing.\n\n- Maildir storage for queue can now handle unicode passed in for message or\n to/from addresses (change backported from repoze.sendmail).\n\n- Tests use stdlib doctest instead of zope.testing.doctest.\n\n3.7.1 (2010-01-13)\n==================\n\n- Backward compatibility import of zope.sendmail.queue.QueueProcessorThread in\n zope.sendmail.delivery.\n\n3.7.0 (2010-01-12)\n==================\n\n- Remove dependency on ``zope.security``: the security support is optional,\n and only available if the ``zope.security`` package is available. This change\n is similar to the optional security support introduced in ``zope.component``\n 3.8.0, and in fact it uses the same helpers.\n\n- Sort by modification time the messages in zope.sendmail.maildir so earlier\n messages are sent before later messages during queue processing.\n\n- Add the new parameter ``processorThread`` to the queuedDelivery ZCML\n directive: if False, the QueueProcessorThread is not started and thus an\n independent process must process the queue; it defaults to True for b/c.\n\n- Provide a console script ``zope-sendmail`` which can be used to process the\n delivery queue in case processorThread is False. The console script can\n either process the messages in the queue once, or run in \"daemon\" mode.\n\n3.6.1 (2009-11-16)\n==================\n\n- Depend on ``zope.component`` >= 3.8.0, which supports the new semantic of\n zope.component.zcml.proxify needed by zope.sendmail.zcml.\n\n3.6.0 (2009-09-14)\n==================\n\n- Use simple vocabulary factory function instead of custom `UtilityTerm`\n and `UtilityVocabulary` classes, copied from ``zope.app.component`` in\n the previous release.\n\n- Depend on the ``transaction`` package instead of ``ZODB3``.\n\n- Remove zcml slugs and zpkg-related files.\n\n- Work around problem when used with Python >=2.5.1. See\n https://bugs.edge.launchpad.net/zope.sendmail/+bug/413335 .\n\n3.5.1 (2009-01-26)\n==================\n\n- Copyover the UtilityTerm and UtilityVocabulary implementation from\n zope.app.component to avoid a dependency.\n\n- Work around a problem when smtp quit fails, the mail was considered not\n delivered where just the quit failed.\n\n3.5.0 (2008-07-05)\n==================\n\n- final release (identical with 3.5.0b2)\n\n3.5.0b2 (2007-12-19)\n====================\n\n- If the SMTP server rejects a message (for example, when the sender or\n recipient address is malformed), that email stays in the queue forever\n (https://bugs.launchpad.net/zope3/+bug/157104).\n\n3.5.0b1 (2007-11-08)\n====================\n\n- Add README.txt\n- Can now talk to servers that don't implement EHLO\n- Fix bug that caused files with very long names to be created\n- Fix for https://bugs.launchpad.net/zope3/+bug/157104: move aside mail that's\n causing 5xx server responses.\n\n\n3.5.0a2 (2007-10-23)\n====================\n\n- Clean up ``does_esmtp`` in faux SMTP connection classes provided by the\n tests.\n- If the ``QueueProcessorThread`` is asked to stop while sending messages, do\n so after sending the current message; previously if there were many, many\n messages to send, the thread could stick around for quite a while.\n\n\n3.5.0a1 (2007-10-23)\n====================\n\n- ``QueueProcessorThread`` now accepts an optional parameter *interval* for\n defining how often to process the mail queue (default is 3 seconds)\n\n- Several ``QueueProcessorThreads`` (either in the same process, or multiple\n processes) can now deliver messages from a single maildir without duplicates\n being sent.\n\n\n3.4.0 (2007-08-20)\n==================\n\n- Bugfix: Don't keep open files around for every email message\n to be sent on transaction commit. People who try to send many emails\n in a single transaction now will not run out of file descriptors.\n\n\n3.4.0a1 (2007-04-22)\n====================\n\nInitial release as a separate project, corresponds to ``zope.sendmail``\nfrom Zope 3.4.0a1.\n",
"bugtrack_url": null,
"license": "ZPL 2.1",
"summary": "Zope sendmail",
"version": "6.2",
"project_urls": {
"Homepage": "https://github.com/zopefoundation/zope.sendmail"
},
"split_keywords": [],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "111034bd8adcf944fbb591bb651facf1ef4a1ae9c2e3a12224096821769b4c4f",
"md5": "6dd5c5888a92df16bb27056e050af1f6",
"sha256": "75618a369ec7c13a9b446fdbf3df46788fb9651bd5f1fea9cc8403307f41a416"
},
"downloads": -1,
"filename": "zope.sendmail-6.2-py3-none-any.whl",
"has_sig": false,
"md5_digest": "6dd5c5888a92df16bb27056e050af1f6",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.7",
"size": 47063,
"upload_time": "2024-03-21T07:35:05",
"upload_time_iso_8601": "2024-03-21T07:35:05.010746Z",
"url": "https://files.pythonhosted.org/packages/11/10/34bd8adcf944fbb591bb651facf1ef4a1ae9c2e3a12224096821769b4c4f/zope.sendmail-6.2-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "bd811023bc85ff32cf57a517a265a9963a906f47a7322b4b6442294a817afbc6",
"md5": "aceb2ff8e09e4a20273c8a5d9eacae2c",
"sha256": "bc7626be0b05168ccbfa4e7a6548775953bed80025e543fab3115094f30d3b45"
},
"downloads": -1,
"filename": "zope.sendmail-6.2.tar.gz",
"has_sig": false,
"md5_digest": "aceb2ff8e09e4a20273c8a5d9eacae2c",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.7",
"size": 50948,
"upload_time": "2024-03-21T07:35:07",
"upload_time_iso_8601": "2024-03-21T07:35:07.386387Z",
"url": "https://files.pythonhosted.org/packages/bd/81/1023bc85ff32cf57a517a265a9963a906f47a7322b4b6442294a817afbc6/zope.sendmail-6.2.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-03-21 07:35:07",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "zopefoundation",
"github_project": "zope.sendmail",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"appveyor": true,
"tox": true,
"lcname": "zope.sendmail"
}