{ "info": { "author": "Openlabs Technologies and Consulting (P) Ltd.", "author_email": "info@openlabs.co.in", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Environment :: Plugins", "Framework :: Tryton", "Intended Audience :: Developers", "License :: OSI Approved :: GNU General Public License v3 (GPLv3)", "Natural Language :: English", "Operating System :: OS Independent", "Programming Language :: Python", "Topic :: Office/Business" ], "description": "email-queue\n===========\n\nThis module implements an email queue which acts as a transaction safe\nbuffer for tryton modules to send emails.\n\n.. image:: https://travis-ci.org/openlabs/email-queue.svg?branch=develop\n :target: https://travis-ci.org/openlabs/email-queue\n\n.. image:: https://coveralls.io/repos/openlabs/email-queue/badge.png\n :target: https://coveralls.io/r/openlabs/email-queue\n\n\nSource code: https://github.com/openlabs/email-queue\n\nWhy should I use this module ?\n------------------------------\n\nDo you send emails from your tryton module ? Then you most probably need\nthis module. Here's why:\n\nTransaction Safety\n``````````````````\n\nConsider the case where you are sending an Order confirmation email when\nyou click the confirm button. The transaction could roll back for a\nvariety of reasons after the email has been sent out to the customer. This\ncould be specially annoying if you sent an order number or other\ninformation which could change, the second time you save the record - in\naddition to the second time the second email that would spam the user.\n\nThis module solves the problem by buffering the email to a database table\nwithin the same transaction. Later, a cron task clears out the email. If\nthe transaction was rolled back the would not be saved in the buffer too\nand you would not have to do anything separate.\n\nPerformance\n```````````\n\nDepending on how your SMTP server is setup and the bandwidth of your\nservers, the sending of an email takes way more time than a database\nwrite. This creates blocking operations resulting in poor user experience\nand your app would now need more workers to handle more such requests.\nThis module works around the problem by first buffering the email and then\nhaving a separate cron task which clears out the email by actually sending\nit.\n\nScalability\n```````````\n\nIf you desire to be webscale like most of the internet aspires to be, you\nwould probably want to perform network bound operations like sending\nemails from separate servers and scale using a message queue. This module\noffers an API which lets you easily scale by subclassing the email.queue\nmodel and changing the `send_all` implementation.\n\nHow do I install this module ?\n------------------------------\n\nInstall from PyPI::\n\n pip install openlabs_email_queue\n\nInstall from source::\n\n git clone git@github.com:openlabs/email-queue\n python setup.py install\n\nYou can then install the module in your database.\n\n\nHow do I use this functionality in my modules ?\n-----------------------------------------------\n\nThe module provides a convenient method which has the same signature as\npython's `smtplib.SMTP.sendmail `_\nmethod. This makes it easy to update your existing email sending code.\n\n.. code-block:: python\n\n\n msg = MIMEText('This is the body')\n msg['Subject'] = 'An important email'\n msg['From'] = 'me@me.com'\n msg['To'] = 'you@you.com'\n\n EmailQueue = Pool().get('email.queue')\n EmailQueue.queue_mail(me, [you], msg.as_string())\n\n\nIf your transaction was successful, the email would be queued to be sent\nand the mail would be sent out through the SMTP server when the cron runs\nnext time.\n\n*The cron runs every 1 minute and you can change the frequency from cron\nsettings*\n\nHow do I configure the SMTP Server ?\n------------------------------------\n\nBy default the emails are sent out using the smtp client provided by\nTryton. You can configure the settings for the same on your tryton\nconfiguration file.\n\nAuthors and Contributors\n------------------------\n\nThis module was built at `Openlabs `_. \n\nProfessional Support\n--------------------\n\nThis module is professionally supported by `Openlabs `_.\nIf you are looking for on-site teaching or consulting support, contact our\n`sales `_ and `support\n`_ teams.", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://www.openlabs.co.in/", "keywords": null, "license": "GPL-3", "maintainer": null, "maintainer_email": null, "name": "openlabs_email_queue", "package_url": "https://pypi.org/project/openlabs_email_queue/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/openlabs_email_queue/", "project_urls": { "Download": "UNKNOWN", "Homepage": "http://www.openlabs.co.in/" }, "release_url": "https://pypi.org/project/openlabs_email_queue/3.4.0.1/", "requires_dist": null, "requires_python": null, "summary": "Trytond Email Queue Module", "version": "3.4.0.1" }, "last_serial": 1698201, "releases": { "3.0.1.0": [ { "comment_text": "", "digests": { "md5": "1511f2818b05dd9bf0658d7881098669", "sha256": "fc500d93243f184f2d76d9aa92aa038be14d259137a93eae518d041a07f61b36" }, "downloads": -1, "filename": "openlabs_email_queue-3.0.1.0.tar.gz", "has_sig": false, "md5_digest": "1511f2818b05dd9bf0658d7881098669", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5657, "upload_time": "2014-05-14T14:12:15", "url": "https://files.pythonhosted.org/packages/98/d7/1fd4c2947c80e49fb14bdf16b1e197fbace9dcc2dc6fc164462d457d8e90/openlabs_email_queue-3.0.1.0.tar.gz" } ], "3.0.1.1": [ { "comment_text": "", "digests": { "md5": "8bb435566ab88b4bcc5c70afbb8935f0", "sha256": "cf9c0fff074a9438eb6235fab2fb4e5fa119f601709a02b00889c95d049ea7d4" }, "downloads": -1, "filename": "openlabs_email_queue-3.0.1.1.tar.gz", "has_sig": false, "md5_digest": "8bb435566ab88b4bcc5c70afbb8935f0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7699, "upload_time": "2014-05-14T14:45:38", "url": "https://files.pythonhosted.org/packages/97/88/22ebedfc7e2860ff84406a1f45666642ac12725bcab0d625f28fd5c85307/openlabs_email_queue-3.0.1.1.tar.gz" } ], "3.0.1.2": [ { "comment_text": "", "digests": { "md5": "37b74df9f91aa0b91c498d45bc0c1fd3", "sha256": "78fae167c20b8e465a6ad9321e89512871d664730d509c4ef21eb846c883cf56" }, "downloads": -1, "filename": "openlabs_email_queue-3.0.1.2.tar.gz", "has_sig": false, "md5_digest": "37b74df9f91aa0b91c498d45bc0c1fd3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8332, "upload_time": "2014-05-29T12:30:11", "url": "https://files.pythonhosted.org/packages/e0/be/ba5b55fa68d9ca60c521b29c58c6618768d5799627916acc8e99f6695c83/openlabs_email_queue-3.0.1.2.tar.gz" } ], "3.0.1.3": [ { "comment_text": "", "digests": { "md5": "d6701a17419042241eaa9188eaa75bfd", "sha256": "7b782f9f3e6ac6861ee5daab8ce5812049d6cedaada3db8694ab32be6ee1817b" }, "downloads": -1, "filename": "openlabs_email_queue-3.0.1.3.tar.gz", "has_sig": false, "md5_digest": "d6701a17419042241eaa9188eaa75bfd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8806, "upload_time": "2014-12-26T11:20:46", "url": "https://files.pythonhosted.org/packages/42/86/9259572c2f62cdafbe9c81a27b559398a2d8613568712f8d103a24988651/openlabs_email_queue-3.0.1.3.tar.gz" } ], "3.2.0.1": [ { "comment_text": "", "digests": { "md5": "3d7e9a0fbc83a0d6d82b25b324f0e72d", "sha256": "f7ffd9b7d39f62146d492c6a2e27604307a000b1d61e6f67256254c3a4517a5d" }, "downloads": -1, "filename": "openlabs_email_queue-3.2.0.1.tar.gz", "has_sig": false, "md5_digest": "3d7e9a0fbc83a0d6d82b25b324f0e72d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8271, "upload_time": "2014-09-02T14:16:00", "url": "https://files.pythonhosted.org/packages/69/53/e4b208ba53e510bf8c39e81cc802e572f4856e86e3b162a4e457199e5cf8/openlabs_email_queue-3.2.0.1.tar.gz" } ], "3.2.0.2": [ { "comment_text": "", "digests": { "md5": "762605b2bb90a2e75fc2c4f9c836d64c", "sha256": "36708bb637cb519df6d622c16c2ac610223d09f018f81fa933211c7e8f76c362" }, "downloads": -1, "filename": "openlabs_email_queue-3.2.0.2.tar.gz", "has_sig": false, "md5_digest": "762605b2bb90a2e75fc2c4f9c836d64c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9228, "upload_time": "2014-12-26T11:20:58", "url": "https://files.pythonhosted.org/packages/1f/53/11a0258e00269e47c01770dc80b4f48c8771b6e0a54fae54185390d4750b/openlabs_email_queue-3.2.0.2.tar.gz" } ], "3.4.0.1": [ { "comment_text": "", "digests": { "md5": "a7f24228d579113d6d11e40ae7320fc6", "sha256": "b1ac67119ec56a8c2b45973c160751e6cb83afe80986a8b472496d9d1b39ade1" }, "downloads": -1, "filename": "openlabs_email_queue-3.4.0.1.tar.gz", "has_sig": false, "md5_digest": "a7f24228d579113d6d11e40ae7320fc6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9240, "upload_time": "2014-12-30T08:45:24", "url": "https://files.pythonhosted.org/packages/66/77/36430fb70c9edfb2c2cca38465570f7c638943c67f579ebd205da251176c/openlabs_email_queue-3.4.0.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "a7f24228d579113d6d11e40ae7320fc6", "sha256": "b1ac67119ec56a8c2b45973c160751e6cb83afe80986a8b472496d9d1b39ade1" }, "downloads": -1, "filename": "openlabs_email_queue-3.4.0.1.tar.gz", "has_sig": false, "md5_digest": "a7f24228d579113d6d11e40ae7320fc6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9240, "upload_time": "2014-12-30T08:45:24", "url": "https://files.pythonhosted.org/packages/66/77/36430fb70c9edfb2c2cca38465570f7c638943c67f579ebd205da251176c/openlabs_email_queue-3.4.0.1.tar.gz" } ] }