{"id":31782290,"url":"https://github.com/zopefoundation/zope.sendmail","last_synced_at":"2025-10-10T09:18:21.465Z","repository":{"id":7101188,"uuid":"8393384","full_name":"zopefoundation/zope.sendmail","owner":"zopefoundation","description":"Zope sendmail support.","archived":false,"fork":false,"pushed_at":"2025-09-12T07:41:10.000Z","size":1103,"stargazers_count":3,"open_issues_count":3,"forks_count":6,"subscribers_count":60,"default_branch":"master","last_synced_at":"2025-10-01T18:59:18.237Z","etag":null,"topics":["maintained"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/zopefoundation.png","metadata":{"files":{"readme":"README.rst","changelog":"CHANGES.rst","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2013-02-24T16:57:11.000Z","updated_at":"2025-09-12T07:41:12.000Z","dependencies_parsed_at":"2025-06-25T08:24:37.944Z","dependency_job_id":"d912e16f-f585-4da4-844a-9cd161075b2d","html_url":"https://github.com/zopefoundation/zope.sendmail","commit_stats":null,"previous_names":[],"tags_count":35,"template":false,"template_full_name":null,"purl":"pkg:github/zopefoundation/zope.sendmail","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zopefoundation%2Fzope.sendmail","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zopefoundation%2Fzope.sendmail/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zopefoundation%2Fzope.sendmail/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zopefoundation%2Fzope.sendmail/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zopefoundation","download_url":"https://codeload.github.com/zopefoundation/zope.sendmail/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zopefoundation%2Fzope.sendmail/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279003410,"owners_count":26083581,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-10T02:00:06.843Z","response_time":62,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["maintained"],"created_at":"2025-10-10T09:18:18.197Z","updated_at":"2025-10-10T09:18:21.456Z","avatar_url":"https://github.com/zopefoundation.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"===============\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","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzopefoundation%2Fzope.sendmail","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzopefoundation%2Fzope.sendmail","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzopefoundation%2Fzope.sendmail/lists"}