{ "info": { "author": "Selwin Ong", "author_email": "selwin.ong@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Environment :: Web Environment", "Framework :: Django", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Topic :: Internet :: WWW/HTTP", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "==================\nDjango Post Office\n==================\n\nDjango Post Office is a simple app to send and manage your emails in Django.\nSome awesome features are:\n\n* Allows you to send email asynchronously\n* Multi backend support\n* Supports HTML email\n* Supports database based email templates\n* Built in scheduling support\n* Works well with task queues like `RQ `_ or `Celery `_\n* Uses multiprocessing (and threading) to send a large number of emails in parallel\n* Supports multilingual email templates (i18n)\n\n\nDependencies\n============\n\n* `django >= 1.8 `_\n* `django-jsonfield `_\n\n\nInstallation\n============\n\n|Build Status|\n|PyPI version|\n|Software license|\n\n* Install from PyPI (or you `manually download from PyPI `_)::\n\n pip install django-post_office\n\n* Add ``post_office`` to your INSTALLED_APPS in django's ``settings.py``:\n\n .. code-block:: python\n\n INSTALLED_APPS = (\n # other apps\n \"post_office\",\n )\n\n* Run ``migrate``::\n\n python manage.py migrate\n\n* Set ``post_office.EmailBackend`` as your ``EMAIL_BACKEND`` in django's ``settings.py``:\n\n .. code-block:: python\n\n EMAIL_BACKEND = 'post_office.EmailBackend'\n\n\nQuickstart\n==========\n\nSend a simple email is really easy:\n\n.. code-block:: python\n\n from post_office import mail\n\n mail.send(\n 'recipient@example.com', # List of email addresses also accepted\n 'from@example.com',\n subject='My email',\n message='Hi there!',\n html_message='Hi there!',\n )\n\n\nIf you want to use templates, ensure that Django's admin interface is enabled. Create an\n``EmailTemplate`` instance via ``admin`` and do the following:\n\n.. code-block:: python\n\n from post_office import mail\n\n mail.send(\n 'recipient@example.com', # List of email addresses also accepted\n 'from@example.com',\n template='welcome_email', # Could be an EmailTemplate instance or name\n context={'foo': 'bar'},\n )\n\nThe above command will put your email on the queue so you can use the\ncommand in your webapp without slowing down the request/response cycle too much.\nTo actually send them out, run ``python manage.py send_queued_mail``.\nYou can schedule this management command to run regularly via cron::\n\n * * * * * (/usr/bin/python manage.py send_queued_mail >> send_mail.log 2>&1)\n\nor, if you use uWSGI_ as application server, add this short snipped to the\nproject's ``wsgi.py`` file:\n\n.. code-block:: python\n\n from django.core.wsgi import get_wsgi_application\n\n application = get_wsgi_application()\n\n # add this block of code\n try:\n import uwsgidecorators\n from django.core.management import call_command\n\n @uwsgidecorators.timer(10)\n def send_queued_mail(num):\n \"\"\"Send queued mail every 10 seconds\"\"\"\n call_command('send_queued_mail', processes=1)\n\n except ImportError:\n print(\"uwsgidecorators not found. Cron and timers are disabled\")\n\nAlternatively you can also use the decorator ``@uwsgidecorators.cron(minute, hour, day, month, weekday)``.\nThis will schedule a task at specific times. Use ``-1`` to signal any time, it corresponds to the ``*``\nin cron.\n\nPlease note that ``uwsgidecorators`` are available only, if the application has been started\nwith **uWSGI**. However, Django's internal ``./manange.py runserver`` also access this file,\ntherefore wrap the block into an exception handler as shown above.\n\nThis configuration is very useful in environments, such as Docker containers, where you\ndon't have a running cron-daemon.\n\n\nUsage\n=====\n\nmail.send()\n-----------\n\n``mail.send`` is the most important function in this library, it takes these\narguments:\n\n+--------------------+----------+--------------------------------------------------+\n| Argument | Required | Description |\n+--------------------+----------+--------------------------------------------------+\n| recipients | Yes | list of recipient email addresses |\n+--------------------+----------+--------------------------------------------------+\n| sender | No | Defaults to ``settings.DEFAULT_FROM_EMAIL``, |\n| | | display name is allowed (``John ``) |\n+--------------------+----------+--------------------------------------------------+\n| subject | No | Email subject (if ``template`` is not specified) |\n+--------------------+----------+--------------------------------------------------+\n| message | No | Email content (if ``template`` is not specified) |\n+--------------------+----------+--------------------------------------------------+\n| html_message | No | HTML content (if ``template`` is not specified) |\n+--------------------+----------+--------------------------------------------------+\n| template | No | ``EmailTemplate`` instance or name |\n+--------------------+----------+--------------------------------------------------+\n| language | No | Language in which you want to send the email in |\n| | | (if you have multilingual email templates.) |\n+--------------------+----------+--------------------------------------------------+\n| cc | No | list emails, will appear in ``cc`` field |\n+--------------------+----------+--------------------------------------------------+\n| bcc | No | list of emails, will appear in `bcc` field |\n+--------------------+----------+--------------------------------------------------+\n| attachments | No | Email attachments - A dictionary where the keys |\n| | | are the filenames and the values are either: |\n| | | |\n| | | * files |\n| | | * file-like objects |\n| | | * full path of the file |\n+--------------------+----------+--------------------------------------------------+\n| context | No | A dictionary, used to render templated email |\n+--------------------+----------+--------------------------------------------------+\n| headers | No | A dictionary of extra headers on the message |\n+--------------------+----------+--------------------------------------------------+\n| scheduled_time | No | A date/datetime object indicating when the email |\n| | | should be sent |\n+--------------------+----------+--------------------------------------------------+\n| priority | No | ``high``, ``medium``, ``low`` or ``now`` |\n| | | (send_immediately) |\n+--------------------+----------+--------------------------------------------------+\n| backend | No | Alias of the backend you want to use. |\n| | | ``default`` will be used if not specified. |\n+--------------------+----------+--------------------------------------------------+\n| render_on_delivery | No | Setting this to ``True`` causes email to be |\n| | | lazily rendered during delivery. ``template`` |\n| | | is required when ``render_on_delivery`` is True. |\n| | | This way content is never stored in the DB. |\n| | | May result in significant space savings. |\n+--------------------+----------+--------------------------------------------------+\n\n\nHere are a few examples.\n\nIf you just want to send out emails without using database templates. You can\ncall the ``send`` command without the ``template`` argument.\n\n.. code-block:: python\n\n from post_office import mail\n\n mail.send(\n ['recipient1@example.com'],\n 'from@example.com',\n subject='Welcome!',\n message='Welcome home, {{ name }}!',\n html_message='Welcome home, {{ name }}!',\n headers={'Reply-to': 'reply@example.com'},\n scheduled_time=date(2014, 1, 1),\n context={'name': 'Alice'},\n )\n\n``post_office`` is also task queue friendly. Passing ``now`` as priority into\n``send_mail`` will deliver the email right away (instead of queuing it),\nregardless of how many emails you have in your queue:\n\n.. code-block:: python\n\n from post_office import mail\n\n mail.send(\n ['recipient1@example.com'],\n 'from@example.com',\n template='welcome_email',\n context={'foo': 'bar'},\n priority='now',\n )\n\nThis is useful if you already use something like `django-rq `_\nto send emails asynchronously and only need to store email related activities and logs.\n\nIf you want to send an email with attachments:\n\n.. code-block:: python\n\n from django.core.files.base import ContentFile\n from post_office import mail\n\n mail.send(\n ['recipient1@example.com'],\n 'from@example.com',\n template='welcome_email',\n context={'foo': 'bar'},\n priority='now',\n attachments={\n 'attachment1.doc': '/path/to/file/file1.doc',\n 'attachment2.txt': ContentFile('file content'),\n 'attachment3.txt': { 'file': ContentFile('file content'), 'mimetype': 'text/plain'},\n }\n )\n\nTemplate Tags and Variables\n---------------------------\n\n``post-office`` supports Django's template tags and variables.\nFor example, if you put \"Hello, {{ name }}\" in the subject line and pass in\n``{'name': 'Alice'}`` as context, you will get \"Hello, Alice\" as subject:\n\n.. code-block:: python\n\n from post_office.models import EmailTemplate\n from post_office import mail\n\n EmailTemplate.objects.create(\n name='morning_greeting',\n subject='Morning, {{ name|capfirst }}',\n content='Hi {{ name }}, how are you feeling today?',\n html_content='Hi {{ name }}, how are you feeling today?',\n )\n\n mail.send(\n ['recipient@example.com'],\n 'from@example.com',\n template='morning_greeting',\n context={'name': 'alice'},\n )\n\n # This will create an email with the following content:\n subject = 'Morning, Alice',\n content = 'Hi alice, how are you feeling today?'\n content = 'Hi alice, how are you feeling today?'\n\n\nMultilingual Email Templates\n----------------------------\n\nYou can easily create email templates in various different languanges.\nFor example:\n\n.. code-block:: python\n\n template = EmailTemplate.objects.create(\n name='hello',\n subject='Hello world!',\n )\n\n # Add an Indonesian version of this template:\n indonesian_template = template.translated_templates.create(\n language='id',\n subject='Halo Dunia!'\n )\n\nSending an email using template in a non default languange is\nalso similarly easy:\n\n.. code-block:: python\n\n mail.send(\n ['recipient@example.com'],\n 'from@example.com',\n template=template, # Sends using the default template\n )\n\n mail.send(\n ['recipient@example.com'],\n 'from@example.com',\n template=template,\n language='id', # Sends using Indonesian template\n )\n\n\nInlined Images\n--------------\n\nOften one wants to render images inside a template, which are attached as inlined ``MIMEImage`` to\nthe outgoing email. This requires a slightly modified Django Template Engine, keeping a list of\ninlined images, which later will be added to the outgoing message.\n\nFirst we must add a special Django template backend to our list of template engines:\n\n.. code-block:: python\n\n\tTEMPLATES = [\n\t {\n\t ...\n\t }, {\n\t 'BACKEND': 'post_office.template.backends.post_office.PostOfficeTemplates',\n\t 'APP_DIRS': True,\n\t 'DIRS': [],\n\t 'OPTIONS': {\n\t 'context_processors': [\n\t 'django.contrib.auth.context_processors.auth',\n\t 'django.template.context_processors.debug',\n\t 'django.template.context_processors.i18n',\n\t 'django.template.context_processors.media',\n\t 'django.template.context_processors.static',\n\t 'django.template.context_processors.tz',\n\t 'django.template.context_processors.request',\n\t ]\n\t }\n\t }\n\t]\n\nthen we must tell Post-Office to use this template engine:\n\n.. code-block:: python\n\n\tPOST_OFFICE = {\n\t 'TEMPLATE_ENGINE': 'post_office',\n\t}\n\nIn templates used to render HTML for emails add\n\n.. code-block:: Django\n\n\t{% load ... post_office %}\n\n\t

... somewhere in the body ...

\n\t\n\nHere the templatetag named ``inline_image`` is used to keep track of inlined images. It takes a single\nparameter. This can either be the relative path to an image file located in one of the ``static``\ndirectories, or the absolute path to an image file, or an image-file object itself. Templates\nrendered using this templatetag, render a reference ID for each given image, and store these images\ninside the context of the adopted template engine. Later on, when the rendered template is passed\nto the mailing library, those images will be transferred to the email message object as\n``MIMEImage``-attachments.\n\nTo send an email containing both, a plain text body and some HTML with inlined images, use the\nfollowing code snippet:\n\n.. code-block:: python\n\n\tfrom django.core.mail import EmailMultiAlternatives\n\n\tsubject, body, from_email, to_email = \"Hello\", \"Plain text body\", \"no-reply@example.com\", \"john@example.com\"\n\temail_message = EmailMultiAlternatives(subject, body, from_email, [to_email])\n\ttemplate = get_template('email-template-name.html', using='post_office')\n\tcontext = {...}\n\thtml = template.render(context)\n\temail_message.attach_alternative(html, 'text/html')\n\ttemplate.attach_related(email_message)\n\temail_message.send()\n\nTo send an email containing HTML with inlined images, but without a plain text body, use this\ncode snippet:\n\n.. code-block:: python\n\n\tfrom django.core.mail import EmailMultiAlternatives\n\n\tsubject, from_email, to_email = \"Hello\", \"no-reply@example.com\", \"john@example.com\"\n\ttemplate = get_template('email-template-name.html', using='post_office')\n\tcontext = {...}\n\thtml = template.render(context)\n\temail_message = EmailMultiAlternatives(subject, html, from_email, [to_email])\n\temail_message.content_subtype = 'html'\n\ttemplate.attach_related(email_message)\n\temail_message.send()\n\n\n\nCustom Email Backends\n---------------------\n\nBy default, ``post_office`` uses django's ``smtp.EmailBackend``. If you want to\nuse a different backend, you can do so by configuring ``BACKENDS``.\n\nFor example if you want to use `django-ses `_::\n\n POST_OFFICE = {\n 'BACKENDS': {\n 'default': 'smtp.EmailBackend',\n 'ses': 'django_ses.SESBackend',\n }\n }\n\nYou can then choose what backend you want to use when sending mail:\n\n.. code-block:: python\n\n # If you omit `backend_alias` argument, `default` will be used\n mail.send(\n ['recipient@example.com'],\n 'from@example.com',\n subject='Hello',\n )\n\n # If you want to send using `ses` backend\n mail.send(\n ['recipient@example.com'],\n 'from@example.com',\n subject='Hello',\n backend='ses',\n )\n\n\nManagement Commands\n-------------------\n\n* ``send_queued_mail`` - send queued emails, those aren't successfully sent\n will be marked as ``failed``. Accepts the following arguments:\n\n+---------------------------+--------------------------------------------------+\n| Argument | Description |\n+---------------------------+--------------------------------------------------+\n| ``--processes`` or ``-p`` | Number of parallel processes to send email. |\n| | Defaults to 1 |\n+---------------------------+--------------------------------------------------+\n| ``--lockfile`` or ``-L`` | Full path to file used as lock file. Defaults to |\n| | ``/tmp/post_office.lock`` |\n+---------------------------+--------------------------------------------------+\n\n\n* ``cleanup_mail`` - delete all emails created before an X number of days\n (defaults to 90).\n\n+---------------------------+--------------------------------------------------+\n| Argument | Description |\n+---------------------------+--------------------------------------------------+\n| ``--days`` or ``-d`` | Email older than this argument will be deleted. |\n| | Defaults to 90 |\n+---------------------------+--------------------------------------------------+\n| ``--delete-attachments`` | Flag to delete orphaned attachment records and |\n| or ``-da`` | files on disk. If flag does not exist, |\n| | attachments will be ignored by the cleanup. |\n+---------------------------+--------------------------------------------------+\n\n\nYou may want to set these up via cron to run regularly::\n\n * * * * * (cd $PROJECT; python manage.py send_queued_mail --processes=1 >> $PROJECT/cron_mail.log 2>&1)\n 0 1 * * * (cd $PROJECT; python manage.py cleanup_mail --days=30 --delete-attachments >> $PROJECT/cron_mail_cleanup.log 2>&1)\n\nSettings\n========\nThis section outlines all the settings and configurations that you can put\nin Django's ``settings.py`` to fine tune ``post-office``'s behavior.\n\nBatch Size\n----------\n\nIf you may want to limit the number of emails sent in a batch (sometimes useful\nin a low memory environment), use the ``BATCH_SIZE`` argument to limit the\nnumber of queued emails fetched in one batch.\n\n.. code-block:: python\n\n # Put this in settings.py\n POST_OFFICE = {\n 'BATCH_SIZE': 50\n }\n\nDefault Priority\n----------------\n\nThe default priority for emails is ``medium``, but this can be altered by\nsetting ``DEFAULT_PRIORITY``. Integration with asynchronous email backends\n(e.g. based on Celery) becomes trivial when set to ``now``.\n\n.. code-block:: python\n\n # Put this in settings.py\n POST_OFFICE = {\n 'DEFAULT_PRIORITY': 'now'\n }\n\nLog Level\n---------\n\nThe default log level is 2 (logs both successful and failed deliveries)\nThis behavior can be changed by setting ``LOG_LEVEL``.\n\n.. code-block:: python\n\n # Put this in settings.py\n POST_OFFICE = {\n 'LOG_LEVEL': 1 # Log only failed deliveries\n }\n\nThe different options are:\n\n* ``0`` logs nothing\n* ``1`` logs only failed deliveries\n* ``2`` logs everything (both successful and failed delivery attempts)\n\n\nSending Order\n-------------\n\nThe default sending order for emails is ``-priority``, but this can be altered by\nsetting ``SENDING_ORDER``. For example, if you want to send queued emails in FIFO order :\n\n.. code-block:: python\n\n # Put this in settings.py\n POST_OFFICE = {\n 'SENDING_ORDER': ['created']\n }\n\nContext Field Serializer\n------------------------\n\nIf you need to store complex Python objects for deferred rendering\n(i.e. setting ``render_on_delivery=True``), you can specify your own context\nfield class to store context variables. For example if you want to use\n`django-picklefield `_:\n\n.. code-block:: python\n\n # Put this in settings.py\n POST_OFFICE = {\n 'CONTEXT_FIELD_CLASS': 'picklefield.fields.PickledObjectField'\n }\n\n``CONTEXT_FIELD_CLASS`` defaults to ``jsonfield.JSONField``.\n\nLogging\n-------\n\nYou can configure ``post-office``'s logging from Django's ``settings.py``. For\nexample:\n\n.. code-block:: python\n\n LOGGING = {\n \"version\": 1,\n \"disable_existing_loggers\": False,\n \"formatters\": {\n \"post_office\": {\n \"format\": \"[%(levelname)s]%(asctime)s PID %(process)d: %(message)s\",\n \"datefmt\": \"%d-%m-%Y %H:%M:%S\",\n },\n },\n \"handlers\": {\n \"post_office\": {\n \"level\": \"DEBUG\",\n \"class\": \"logging.StreamHandler\",\n \"formatter\": \"post_office\"\n },\n # If you use sentry for logging\n 'sentry': {\n 'level': 'ERROR',\n 'class': 'raven.contrib.django.handlers.SentryHandler',\n },\n },\n 'loggers': {\n \"post_office\": {\n \"handlers\": [\"post_office\", \"sentry\"],\n \"level\": \"INFO\"\n },\n },\n }\n\n\nThreads\n-------\n\n``post-office`` >= 3.0 allows you to use multiple threads to dramatically speed up\nthe speed at which emails are sent. By default, ``post-office`` uses 5 threads per process.\nYou can tweak this setting by changing ``THREADS_PER_PROCESS`` setting.\n\nThis may dramatically increase the speed of bulk email delivery, depending on which email\nbackends you use. In my tests, multi threading speeds up email backends that use HTTP based\n(REST) delivery mechanisms but doesn't seem to help SMTP based backends.\n\n.. code-block:: python\n\n # Put this in settings.py\n POST_OFFICE = {\n 'THREADS_PER_PROCESS': 10\n }\n\n\nPerformance\n===========\n\nCaching\n-------\n\nif Django's caching mechanism is configured, ``post_office`` will cache\n``EmailTemplate`` instances . If for some reason you want to disable caching,\nset ``POST_OFFICE_CACHE`` to ``False`` in ``settings.py``:\n\n.. code-block:: python\n\n ## All cache key will be prefixed by post_office:template:\n ## To turn OFF caching, you need to explicitly set POST_OFFICE_CACHE to False in settings\n POST_OFFICE_CACHE = False\n\n ## Optional: to use a non default cache backend, add a \"post_office\" entry in CACHES\n CACHES = {\n 'post_office': {\n 'BACKEND': 'django.core.cache.backends.memcached.PyLibMCCache',\n 'LOCATION': '127.0.0.1:11211',\n }\n }\n\n\nsend_many()\n-----------\n\n``send_many()`` is much more performant (generates less database queries) when\nsending a large number of emails. ``send_many()`` is almost identical to ``mail.send()``,\nwith the exception that it accepts a list of keyword arguments that you'd\nusually pass into ``mail.send()``:\n\n.. code-block:: python\n\n from post_office import mail\n\n first_email = {\n 'sender': 'from@example.com',\n 'recipients': ['alice@example.com'],\n 'subject': 'Hi!',\n 'message': 'Hi Alice!'\n }\n second_email = {\n 'sender': 'from@example.com',\n 'recipients': ['bob@example.com'],\n 'subject': 'Hi!',\n 'message': 'Hi Bob!'\n }\n kwargs_list = [first_email, second_email]\n\n mail.send_many(kwargs_list)\n\nAttachments are not supported with ``mail.send_many()``.\n\n\nRunning Tests\n=============\n\nTo run the test suite::\n\n `which django-admin.py` test post_office --settings=post_office.test_settings --pythonpath=.\n\nYou can run the full test suite with::\n\n tox\n\nor::\n\n python setup.py test\n\n\nChangelog\n=========\n\nFull changelog can be found `here `_.\n\n\nCreated and maintained by the cool guys at `Stamps `_,\nIndonesia's most elegant CRM/loyalty platform.\n\n\n.. |Build Status| image:: https://travis-ci.org/ui/django-post_office.png?branch=master\n :target: https://travis-ci.org/ui/django-post_office\n\n.. |PyPI version| image:: https://img.shields.io/pypi/v/django-post_office.svg\n :target: https://pypi.org/project/django-post_office/\n\n.. |Software license| image:: https://img.shields.io/pypi/l/django-post_office.svg\n\n.. _uWSGI: https://uwsgi-docs.readthedocs.org/en/latest/", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/ui/django-post_office", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "django-post-office", "package_url": "https://pypi.org/project/django-post-office/", "platform": "", "project_url": "https://pypi.org/project/django-post-office/", "project_urls": { "Homepage": "https://github.com/ui/django-post_office" }, "release_url": "https://pypi.org/project/django-post-office/3.2.1/", "requires_dist": null, "requires_python": "", "summary": "A Django app to monitor and send mail asynchronously, complete with template support.", "version": "3.2.1" }, "last_serial": 5304374, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "512256571f71264b9f9c229d99ae3cc0", "sha256": "8d9e4704235a2b5191857d9e67aeefe422d052f8c1d0e7df5a5c02b24f5d7dbc" }, "downloads": -1, "filename": "django-post_office-0.1.0.tar.gz", "has_sig": false, "md5_digest": "512256571f71264b9f9c229d99ae3cc0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7330, "upload_time": "2012-08-11T10:25:21", "url": "https://files.pythonhosted.org/packages/66/15/033485bfa17ea2e233507a14b4758ec39ef2f2c4e5eada738ab4f46c4c3f/django-post_office-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "3ecf032634b18a167aca266fb15c030a", "sha256": "c9713999da08b677bedd84d800f8a46e630df3f57d6e19141a983989e235fc36" }, "downloads": -1, "filename": "django-post_office-0.1.1.tar.gz", "has_sig": false, "md5_digest": "3ecf032634b18a167aca266fb15c030a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10703, "upload_time": "2012-08-21T15:31:42", "url": "https://files.pythonhosted.org/packages/01/2a/7a5995b24b984470d30134b6d3af67aba93e9cedf742f59c07d8cb96c9bd/django-post_office-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "a6f2a49a1d212ac8658129bcb4a44860", "sha256": "92413c79a228fe2dd73fa11d24a4b4ce875b79adfeb4a3b8819e9e07b2e7949a" }, "downloads": -1, "filename": "django-post_office-0.1.2.tar.gz", "has_sig": false, "md5_digest": "a6f2a49a1d212ac8658129bcb4a44860", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9494, "upload_time": "2012-08-30T04:39:47", "url": "https://files.pythonhosted.org/packages/c7/88/b8da4253e5f7c2877ff99b6b5e1a944b4e18e74cb836f21336536adbd4b5/django-post_office-0.1.2.tar.gz" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "ba922ccbad3d9b2a07f21a4fe2a4b175", "sha256": "8253e03a9fd8ad7d9c1c74e047a83455937461bfd8db39870c197211e6ec67a2" }, "downloads": -1, "filename": "django-post_office-0.1.3.tar.gz", "has_sig": false, "md5_digest": "ba922ccbad3d9b2a07f21a4fe2a4b175", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9843, "upload_time": "2012-09-03T08:16:29", "url": "https://files.pythonhosted.org/packages/58/2f/13516403d6f4cd678474d3adfb1b71e1db0deff1549c8bbf975ba5792720/django-post_office-0.1.3.tar.gz" } ], "0.1.4": [ { "comment_text": "", "digests": { "md5": "6ef46e400f70ad6b06381d43d6ec14b6", "sha256": "1cbd90f709866bdaf9a59097b20c63ab9196ad260e7ba46ea0fc660a8ed5a861" }, "downloads": -1, "filename": "django-post_office-0.1.4.tar.gz", "has_sig": false, "md5_digest": "6ef46e400f70ad6b06381d43d6ec14b6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10000, "upload_time": "2012-09-03T09:38:06", "url": "https://files.pythonhosted.org/packages/7d/4e/33d6ad57511246328db8cb438e9a6dd19f2a7852384d02eb6ef21a2592c2/django-post_office-0.1.4.tar.gz" } ], "0.1.5": [ { "comment_text": "", "digests": { "md5": "6ee9baf91845f66f12dbe7d02842b9e0", "sha256": "df592fa6ece4daca8eb7b380a09944a0debbebb96e4f35225f7e1efb90e9a52f" }, "downloads": -1, "filename": "django-post_office-0.1.5.tar.gz", "has_sig": false, "md5_digest": "6ee9baf91845f66f12dbe7d02842b9e0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10148, "upload_time": "2012-10-19T11:09:00", "url": "https://files.pythonhosted.org/packages/a4/2c/a3a0d5042e5c9f2162eae4cb317364a2f86654ba12d112feaa41b480375c/django-post_office-0.1.5.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "678654c4f8471dfdaff2b7f40a96e962", "sha256": "c8cc5b7c66926650d2b53c4596f4351ad2a5ef55a402826b946a22839133ee64" }, "downloads": -1, "filename": "django-post_office-0.2.0.tar.gz", "has_sig": false, "md5_digest": "678654c4f8471dfdaff2b7f40a96e962", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13022, "upload_time": "2013-02-07T02:04:14", "url": "https://files.pythonhosted.org/packages/8a/5c/ae9b3417dd0eee5adb28ac595f448915077abe00835c0fb794e9b9e07fa9/django-post_office-0.2.0.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "20fecd88033ed70f58777517589a0e8c", "sha256": "e1b13db5ff1327d4a03e7fb9fb6480b454b337362333589ad18c316fab16eeec" }, "downloads": -1, "filename": "django-post_office-0.2.1.tar.gz", "has_sig": false, "md5_digest": "20fecd88033ed70f58777517589a0e8c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14728, "upload_time": "2013-02-07T05:09:43", "url": "https://files.pythonhosted.org/packages/f5/3b/2eb5d3aa4b4761d73930ab5b410915704b9eee7aa2370b9389ba7949b571/django-post_office-0.2.1.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "5a926243123ca812ddb6dfd1db07006f", "sha256": "0df4d9ecb7dc62f0c9c8aabae0224cf3080d1512cc955d7540c3c2e09c3aa401" }, "downloads": -1, "filename": "django-post_office-0.3.0.tar.gz", "has_sig": false, "md5_digest": "5a926243123ca812ddb6dfd1db07006f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18937, "upload_time": "2013-04-14T04:17:25", "url": "https://files.pythonhosted.org/packages/7f/66/0cc6714c55d3f23e46f3dc52e1f1384d07e988b6b216aee835aacdd99316/django-post_office-0.3.0.tar.gz" } ], "0.3.1": [ { "comment_text": "", "digests": { "md5": "8c52db672259aed710b24ec04a399351", "sha256": "05ee76837955f78fc7eca411e0d119bef22f38f594c2e41722d212c299d3f4f1" }, "downloads": -1, "filename": "django-post_office-0.3.1.tar.gz", "has_sig": false, "md5_digest": "8c52db672259aed710b24ec04a399351", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17028, "upload_time": "2013-04-17T07:20:16", "url": "https://files.pythonhosted.org/packages/ea/89/bc04c69ac37aa54454ae4d197647029561e4b312d1b430f0e4a12716e49f/django-post_office-0.3.1.tar.gz" } ], "0.4.0": [ { "comment_text": "", "digests": { "md5": "94244f5a651bc3f763b95172a80f7f75", "sha256": "c85373eeb309d1bd8b1724f19572a829e406e77d5babad4399a321ce39dc9c23" }, "downloads": -1, "filename": "django-post_office-0.4.0.tar.gz", "has_sig": false, "md5_digest": "94244f5a651bc3f763b95172a80f7f75", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20851, "upload_time": "2013-06-09T05:30:31", "url": "https://files.pythonhosted.org/packages/e1/e5/25c0c44db208384406bb73fe9f6cad4698fc623892100fb544d08abce2b8/django-post_office-0.4.0.tar.gz" } ], "0.5.0": [ { "comment_text": "", "digests": { "md5": "3befe488f314e7c08ef153130045878c", "sha256": "c0bab09711ca0bde5c9189cbb9f1a8d52190a3fccc4b35979cda435caadee32b" }, "downloads": -1, "filename": "django-post_office-0.5.0.tar.gz", "has_sig": false, "md5_digest": "3befe488f314e7c08ef153130045878c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23192, "upload_time": "2013-07-12T16:01:29", "url": "https://files.pythonhosted.org/packages/84/da/0c1f1e3b16a22256f184a0af52a2d96f68983779a9ede14be637b3a37be5/django-post_office-0.5.0.tar.gz" } ], "0.5.1": [ { "comment_text": "", "digests": { "md5": "9fe33d539df8afe2069583feee83b825", "sha256": "b4632fe508a74e91400b82726a0dfba8776c40684c4d631ab04088bb02cdb895" }, "downloads": -1, "filename": "django-post_office-0.5.1.tar.gz", "has_sig": false, "md5_digest": "9fe33d539df8afe2069583feee83b825", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20734, "upload_time": "2013-07-17T03:15:46", "url": "https://files.pythonhosted.org/packages/52/b3/9142a086a45c459264c2c1666dba7a38210bb7739f696a8467c7c941fcd0/django-post_office-0.5.1.tar.gz" } ], "0.5.2": [ { "comment_text": "", "digests": { "md5": "9396311f5c59d3c7746440a66f12902c", "sha256": "81440995baed9ecf0326414a471b502271b1ef3192ad2965a00cad6c2e96ac2d" }, "downloads": -1, "filename": "django-post_office-0.5.2.tar.gz", "has_sig": false, "md5_digest": "9396311f5c59d3c7746440a66f12902c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 25090, "upload_time": "2013-07-30T10:11:55", "url": "https://files.pythonhosted.org/packages/87/0b/5db4fb700da65fb52696aef4a851c7221f2c9ed718d646aca092a5a7aa07/django-post_office-0.5.2.tar.gz" } ], "0.6.0": [ { "comment_text": "", "digests": { "md5": "4eae5fd34f00dfc3d366e8a14032e6a5", "sha256": "711982ea712ee1ebbe5a0767dbc864c6e468263414a6d2766511944635fbf921" }, "downloads": -1, "filename": "django-post_office-0.6.0.tar.gz", "has_sig": false, "md5_digest": "4eae5fd34f00dfc3d366e8a14032e6a5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 26820, "upload_time": "2013-10-15T05:18:40", "url": "https://files.pythonhosted.org/packages/6e/b1/d0578dde151613948a2e8af0d47a0934291b763b0068f0d4a1a86ddf92c4/django-post_office-0.6.0.tar.gz" } ], "0.7.0": [ { "comment_text": "", "digests": { "md5": "6512c1c3436016a44ee4da831ac16c8c", "sha256": "3bec7db639b0a3ad9396ac4a743f47f757c67d63b9eca75370929223f3861424" }, "downloads": -1, "filename": "django-post_office-0.7.0.tar.gz", "has_sig": false, "md5_digest": "6512c1c3436016a44ee4da831ac16c8c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 29062, "upload_time": "2014-01-23T02:12:44", "url": "https://files.pythonhosted.org/packages/e9/f3/9199a17fc7541e71b57d044a17c0ce88432f33e52b299d773dacd84bb430/django-post_office-0.7.0.tar.gz" } ], "0.7.1": [ { "comment_text": "", "digests": { "md5": "5672add29f4e5b8664a1d38feb93a456", "sha256": "868b2d20aa8ea546565299cdb2d9ae3a1a6bb4382aff726bd6a143cf70280e7c" }, "downloads": -1, "filename": "django-post_office-0.7.1.tar.gz", "has_sig": false, "md5_digest": "5672add29f4e5b8664a1d38feb93a456", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 29212, "upload_time": "2014-01-24T09:43:50", "url": "https://files.pythonhosted.org/packages/61/6c/12ff4b9144600f4af7c3074088f245bada83ba5428b8a2efdde815667d84/django-post_office-0.7.1.tar.gz" } ], "0.7.2": [ { "comment_text": "", "digests": { "md5": "47ad1ad81df96701c490bc5a4d8baed6", "sha256": "aa9a41fcc6d4e8bdb0536370ba903c8f27ecc6d048cf2cfbd0cbf16573a82bf1" }, "downloads": -1, "filename": "django-post_office-0.7.2.tar.gz", "has_sig": false, "md5_digest": "47ad1ad81df96701c490bc5a4d8baed6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 29322, "upload_time": "2014-02-07T03:05:50", "url": "https://files.pythonhosted.org/packages/b6/72/453917719a5b2d546dd7c38f0fdeca083afa09038898c477fbc28e5a6e2d/django-post_office-0.7.2.tar.gz" } ], "0.8.0": [ { "comment_text": "", "digests": { "md5": "c1ac3e0fa19dd22787fb58c8475256e6", "sha256": "806f972f68d45d7f1b95803fe687a836c9f8b4e747e8f21771ad6bedba3bddaa" }, "downloads": -1, "filename": "django-post_office-0.8.0.tar.gz", "has_sig": false, "md5_digest": "c1ac3e0fa19dd22787fb58c8475256e6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 31623, "upload_time": "2014-03-28T02:18:52", "url": "https://files.pythonhosted.org/packages/ab/cc/c042b71abc1c194d73ce4c541f2293915700998577d5777302a96c517b81/django-post_office-0.8.0.tar.gz" } ], "0.8.1": [ { "comment_text": "", "digests": { "md5": "fbb4eb12062d7329a52089243c601221", "sha256": "bf859e71ebe22c5d99f51f91d0ed99ecd0d609b2042b2de0332f795174c4eb2c" }, "downloads": -1, "filename": "django-post_office-0.8.1.tar.gz", "has_sig": false, "md5_digest": "fbb4eb12062d7329a52089243c601221", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 31562, "upload_time": "2014-04-03T02:48:36", "url": "https://files.pythonhosted.org/packages/97/c1/dcffc5f1e9c69ac89afd93b242a5fac877ee6097361e1ce954787ecaf37a/django-post_office-0.8.1.tar.gz" } ], "0.8.2": [ { "comment_text": "", "digests": { "md5": "da07d3563e89b29ec4e9af302a2fc3ed", "sha256": "0cf826d5bc79199882184198a08940a0e56b2835439463db8ce8353d63b4eae1" }, "downloads": -1, "filename": "django-post_office-0.8.2.tar.gz", "has_sig": false, "md5_digest": "da07d3563e89b29ec4e9af302a2fc3ed", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 32223, "upload_time": "2014-04-08T04:50:05", "url": "https://files.pythonhosted.org/packages/6b/2a/019b71d4c61929b888cd61730ee113f7f23575b36b5a6fefc229b57506fe/django-post_office-0.8.2.tar.gz" } ], "0.8.3": [ { "comment_text": "", "digests": { "md5": "4385875f963693694128acb73dbc233c", "sha256": "d01822f94d6eb928a195754a0b881a34a39a77d147a5e66fe5a917fa19a9a0b9" }, "downloads": -1, "filename": "django-post_office-0.8.3.tar.gz", "has_sig": false, "md5_digest": "4385875f963693694128acb73dbc233c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 32855, "upload_time": "2014-04-14T09:57:02", "url": "https://files.pythonhosted.org/packages/a6/c4/fffc3a96ac5f97ea6e39408de2424312821c3521dc09f6e86ddf3d3e8df4/django-post_office-0.8.3.tar.gz" } ], "0.8.4": [ { "comment_text": "", "digests": { "md5": "f803fc4055c64732325f8e1fea3a7178", "sha256": "ab603fcf711919b78eadffa76ec4f281be1940afe2188069e40e8b48b729f61b" }, "downloads": -1, "filename": "django-post_office-0.8.4.tar.gz", "has_sig": false, "md5_digest": "f803fc4055c64732325f8e1fea3a7178", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 38759, "upload_time": "2014-05-13T10:22:16", "url": "https://files.pythonhosted.org/packages/c9/cf/addb680fdbfe0f12fa6b700d0dea49307494808e9ca804742c48fc1c3b4a/django-post_office-0.8.4.tar.gz" } ], "1.0.0": [ { "comment_text": "", "digests": { "md5": "d8b3b27dd38733da3965d97895974b59", "sha256": "a5d38430ed022e7f38060f470dddffbf0d6bf6fd56bdaa9d3ecc17e23deef384" }, "downloads": -1, "filename": "django_post_office-1.0.0-py2-none-any.whl", "has_sig": false, "md5_digest": "d8b3b27dd38733da3965d97895974b59", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 56034, "upload_time": "2014-08-18T08:03:13", "url": "https://files.pythonhosted.org/packages/d2/e0/5614d235aa9e97663c7c99bb20a9821ffb6d1e1753a1b22e0b80d7d28f6c/django_post_office-1.0.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2003f2e18af83e53cfd379c3dae2c343", "sha256": "3508bc26df5606427091c3a0ac6b2d72f2a1b7b3582a7a4feace0c6b3215049c" }, "downloads": -1, "filename": "django-post_office-1.0.0.tar.gz", "has_sig": false, "md5_digest": "2003f2e18af83e53cfd379c3dae2c343", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 41914, "upload_time": "2014-08-18T08:03:09", "url": "https://files.pythonhosted.org/packages/b0/cd/df67b76cff87bfd00a0bec743ff45906b6b1d7211fb629961603b0aecc4f/django-post_office-1.0.0.tar.gz" } ], "1.1.0": [ { "comment_text": "", "digests": { "md5": "e9af0824a68dfd19f370624edc294701", "sha256": "e71ef0a138f1ccb821051c73dae18f16a222bb88da12d17236ef22419248aae4" }, "downloads": -1, "filename": "django_post_office-1.1.0-py2-none-any.whl", "has_sig": false, "md5_digest": "e9af0824a68dfd19f370624edc294701", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 57677, "upload_time": "2014-09-26T02:14:43", "url": "https://files.pythonhosted.org/packages/f7/98/a03223056182f9bf79e4df45dcb370edc1c76740aa982b31385b1e60bade/django_post_office-1.1.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "1187b0e15ff5074a918d0f8d834ed3d3", "sha256": "091810bd0a3c8ea4fc959133632b2f77acf782e2876bf5372ebea9b8c7ad3a40" }, "downloads": -1, "filename": "django-post_office-1.1.0.tar.gz", "has_sig": false, "md5_digest": "1187b0e15ff5074a918d0f8d834ed3d3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 33203, "upload_time": "2014-09-26T02:14:38", "url": "https://files.pythonhosted.org/packages/17/b0/b999375f39fbba6b29c94f6464a86f04a65b56f5fb81bfbebe3432008847/django-post_office-1.1.0.tar.gz" } ], "1.1.1": [ { "comment_text": "", "digests": { "md5": "537948cdd1e4449b05550b34f968c0bd", "sha256": "9a708c32456846c495803233ae202e1398ebccb8d8409e310366a2b4f4279503" }, "downloads": -1, "filename": "django_post_office-1.1.1-py2-none-any.whl", "has_sig": false, "md5_digest": "537948cdd1e4449b05550b34f968c0bd", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 68269, "upload_time": "2014-09-27T00:13:03", "url": "https://files.pythonhosted.org/packages/f0/2b/541895d442c76bb930617e0a95b32c0ae37ff6db967726a498324fa4844d/django_post_office-1.1.1-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "850f473b5d6b7f3f76a40b73078ce806", "sha256": "b64027346ea12238d4e5525934eeaac516d0fcbfd99c7972d9608740c5586e42" }, "downloads": -1, "filename": "django-post_office-1.1.1.tar.gz", "has_sig": false, "md5_digest": "850f473b5d6b7f3f76a40b73078ce806", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 42854, "upload_time": "2014-09-27T00:12:58", "url": "https://files.pythonhosted.org/packages/d2/39/bae710ffbe645e9245639f136c35a6f5d8053d79103e74f340c3905a893a/django-post_office-1.1.1.tar.gz" } ], "1.1.2": [ { "comment_text": "", "digests": { "md5": "46de6fca48e8ed002888955f93e8747a", "sha256": "7ff85eb858c4c7fd41be6dfc8d45ceb66e5c0c47dc417e3fe05ec58507ff8120" }, "downloads": -1, "filename": "django_post_office-1.1.2-py2-none-any.whl", "has_sig": false, "md5_digest": "46de6fca48e8ed002888955f93e8747a", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 57647, "upload_time": "2015-06-08T09:40:37", "url": "https://files.pythonhosted.org/packages/04/b3/5cb1bc7f7d4187c1bf54ce3f54614fd5626f363fa19518221e2850f58025/django_post_office-1.1.2-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f40319d2c5361a83bfca4c7a390839ad", "sha256": "f0bb8bfe70c4f5bcd91396a1b012c0c793cd553069907e6aa65092f07ee36059" }, "downloads": -1, "filename": "django-post_office-1.1.2.tar.gz", "has_sig": false, "md5_digest": "f40319d2c5361a83bfca4c7a390839ad", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 34095, "upload_time": "2015-06-08T09:40:32", "url": "https://files.pythonhosted.org/packages/83/19/0768c441604bfba985d693d0a90d49edd6dfcdcbef778af9531a11fd0fa8/django-post_office-1.1.2.tar.gz" } ], "2.0.0": [ { "comment_text": "", "digests": { "md5": "60e5f0698e62d482859d3a306e9cfa2e", "sha256": "19e412fb4916e18f4e8724c2b096d0fdd7a74fb917503ac32eb6538cf36aa18c" }, "downloads": -1, "filename": "django_post_office-2.0.0-py2-none-any.whl", "has_sig": false, "md5_digest": "60e5f0698e62d482859d3a306e9cfa2e", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 85119, "upload_time": "2015-07-13T09:58:52", "url": "https://files.pythonhosted.org/packages/98/02/a31edef9da0cd37bbd4560c2748be7cad8f8579b35f3b4d44bf5991c8b49/django_post_office-2.0.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "85c9aab6390f91dc452873ca57104272", "sha256": "0a9c175bfd5a43fa56a2c01fa00991fdeefc7f16ebcb44e65c2017eb9526b2fb" }, "downloads": -1, "filename": "django-post_office-2.0.0.tar.gz", "has_sig": false, "md5_digest": "85c9aab6390f91dc452873ca57104272", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 44631, "upload_time": "2015-07-13T09:58:47", "url": "https://files.pythonhosted.org/packages/d6/f6/8a308d4ceb7f289f6dd7b93e623eeab5ca5c678111c7eb56db4c79e07691/django-post_office-2.0.0.tar.gz" } ], "2.0.1": [ { "comment_text": "", "digests": { "md5": "c034a3e53eb206fd24afe083e159a2d7", "sha256": "7aa6840629d87b21e8a2b3625de5d1b6bd6f741ecad9efd3c8cf26863148ba97" }, "downloads": -1, "filename": "django_post_office-2.0.1-py2-none-any.whl", "has_sig": false, "md5_digest": "c034a3e53eb206fd24afe083e159a2d7", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 63040, "upload_time": "2015-07-28T04:49:39", "url": "https://files.pythonhosted.org/packages/74/25/3ae6a465c77f5db94beed1c5d9c43cecbf19213f4daed8c127d85b4f1a6c/django_post_office-2.0.1-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d6626f3998ae7e420c4f57bbdd0a8fac", "sha256": "c6b02562f5766b701a92880ec8f05a28d09b9872661da7f9e94ee71a642fb8cb" }, "downloads": -1, "filename": "django-post_office-2.0.1.tar.gz", "has_sig": false, "md5_digest": "d6626f3998ae7e420c4f57bbdd0a8fac", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 43009, "upload_time": "2015-07-28T04:49:34", "url": "https://files.pythonhosted.org/packages/96/63/f4b6a6b8c62bf1cb4f97ef676d150d0ec076b0fcb4bea8cd37b043905e81/django-post_office-2.0.1.tar.gz" } ], "2.0.2": [ { "comment_text": "", "digests": { "md5": "eaaaa90c0af0c9f3f62800b66d1a096e", "sha256": "263c3e2bfdcc949ed233eee76e6da5240f2b3f868822ac9f48bb0dd8b224d394" }, "downloads": -1, "filename": "django_post_office-2.0.2-py2-none-any.whl", "has_sig": false, "md5_digest": "eaaaa90c0af0c9f3f62800b66d1a096e", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 85576, "upload_time": "2015-09-26T03:27:41", "url": "https://files.pythonhosted.org/packages/e8/d8/d4163ab53ea552a1e453ab8a7c62e478dc77c412a034228bef9a0d37caf3/django_post_office-2.0.2-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ac1ad9956806a88fbd2cdf6647225e72", "sha256": "9baa93ae5ce823a392defe436ecc29c6e6b30b5130b3a22eaa5be83b54a548a0" }, "downloads": -1, "filename": "django-post_office-2.0.2.tar.gz", "has_sig": false, "md5_digest": "ac1ad9956806a88fbd2cdf6647225e72", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 44960, "upload_time": "2015-09-26T03:27:36", "url": "https://files.pythonhosted.org/packages/d1/eb/32cb5ffee47788efd0f5e7e0d1b4b38dba60cee0236a9314ed99c4c977a3/django-post_office-2.0.2.tar.gz" } ], "2.0.3": [ { "comment_text": "", "digests": { "md5": "7601d56e52acf266728de7057fd942fe", "sha256": "0acbc096c1a422c64335e1eca3c653d5568cd2ed855f1bce8049643e9dad5441" }, "downloads": -1, "filename": "django_post_office-2.0.3-py2-none-any.whl", "has_sig": false, "md5_digest": "7601d56e52acf266728de7057fd942fe", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 63181, "upload_time": "2015-10-17T23:39:33", "url": "https://files.pythonhosted.org/packages/fb/a9/7b9f6330081475c0d81db4afc193750ea6da9ca08c0f53336cf031689ccd/django_post_office-2.0.3-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7866cf320f8317c7a8e302055fe99f68", "sha256": "d7e78b6846fedee1badc6e35d3e4e6d49d4d5ccba94f75b614107c787df59b42" }, "downloads": -1, "filename": "django-post_office-2.0.3.tar.gz", "has_sig": false, "md5_digest": "7866cf320f8317c7a8e302055fe99f68", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 44974, "upload_time": "2015-10-17T23:39:24", "url": "https://files.pythonhosted.org/packages/49/33/6ab5f8df8366bdfd027b7ab9d38fbe9f5c597ead0105d5242b1ad1f80ead/django-post_office-2.0.3.tar.gz" } ], "2.0.4": [ { "comment_text": "", "digests": { "md5": "359ced785210790ae069d568ca7bbfd9", "sha256": "7b337e74eff5a19cd8c8cec4121275f907ddda43e4d75a915a90960364a1bce6" }, "downloads": -1, "filename": "django_post_office-2.0.4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "359ced785210790ae069d568ca7bbfd9", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 63344, "upload_time": "2015-12-15T04:05:59", "url": "https://files.pythonhosted.org/packages/ae/16/6ca0242aef1a59602791dd84f2d6189574e14267da0831db22899177c2c5/django_post_office-2.0.4-py2.py3-none-any.whl" } ], "2.0.5": [ { "comment_text": "", "digests": { "md5": "60b552c1123c014427d9dd6918ad6ee5", "sha256": "f4f8d0803e345b1983668a4022b2237d1b58163f7894bb72fe102079aeec0116" }, "downloads": -1, "filename": "django_post_office-2.0.5-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "60b552c1123c014427d9dd6918ad6ee5", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 63361, "upload_time": "2015-12-24T04:46:11", "url": "https://files.pythonhosted.org/packages/94/d8/72d322fca8a031c3555a8bb53a8a534f71f80badb1d9fdcba8db6a3efa96/django_post_office-2.0.5-py2.py3-none-any.whl" } ], "2.0.6": [ { "comment_text": "", "digests": { "md5": "cfe2dc0b4625b63005c656600bcc77c6", "sha256": "7e53bff4c8ebcb8accabd7bc433633fab6812c181d9a634095b352c3402a7136" }, "downloads": -1, "filename": "django_post_office-2.0.6-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "cfe2dc0b4625b63005c656600bcc77c6", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 64962, "upload_time": "2016-02-27T11:29:24", "url": "https://files.pythonhosted.org/packages/db/23/fb1e9e63eb0d1c5db1ee78487fcacaf8199aaea344d159089835ae499b38/django_post_office-2.0.6-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "5b79a2d46d024ed373af015065c1044f", "sha256": "4465bcf40c08e83ecfd3e866af550faa1eb2db6ecaff25242f233ce55e004440" }, "downloads": -1, "filename": "django-post_office-2.0.6.tar.gz", "has_sig": false, "md5_digest": "5b79a2d46d024ed373af015065c1044f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 45770, "upload_time": "2016-02-27T11:29:15", "url": "https://files.pythonhosted.org/packages/e1/d8/ca1694b6ca224e39f633af23c5ce66a168f299d4998c6b2079a6b8df2904/django-post_office-2.0.6.tar.gz" } ], "2.0.7": [ { "comment_text": "", "digests": { "md5": "2a04198318887941476d6543a8cf5c5b", "sha256": "e8c4bee22b76a3bfeb75f09acc121ff4f2e93dab8b52352f9609404850f49849" }, "downloads": -1, "filename": "django_post_office-2.0.7-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "2a04198318887941476d6543a8cf5c5b", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 64906, "upload_time": "2016-03-26T02:52:24", "url": "https://files.pythonhosted.org/packages/86/14/d1dda8cbbdd849f356d1533408a12edb79c5fc1d30246ec4311515a631d8/django_post_office-2.0.7-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9c2dfea47834c98193f7bc442500ec40", "sha256": "5f32a596feaa44e8b550a6d2656954a7dd26e187b8a62bf82b126dba39114803" }, "downloads": -1, "filename": "django-post_office-2.0.7.tar.gz", "has_sig": false, "md5_digest": "9c2dfea47834c98193f7bc442500ec40", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 45759, "upload_time": "2016-03-26T02:52:00", "url": "https://files.pythonhosted.org/packages/e4/20/714f6012c6bf90bd7bce56fa8a18c33db23c7f922ce6252720e8cb4f6a67/django-post_office-2.0.7.tar.gz" } ], "2.0.8": [ { "comment_text": "", "digests": { "md5": "0d63d29a069b5ee159d8182c4c1dd4c6", "sha256": "7f085df53f28beb9420d0a9828a40882f3ade3f8ce589928e6369d98a4eec9e9" }, "downloads": -1, "filename": "django_post_office-2.0.8-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "0d63d29a069b5ee159d8182c4c1dd4c6", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 69454, "upload_time": "2016-08-28T11:11:10", "url": "https://files.pythonhosted.org/packages/14/73/681af2cd03cf18006855249a725a486677a5a3547d58ec693dbf12679597/django_post_office-2.0.8-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "437bf62cef06381d346ae2bc087c0e3c", "sha256": "bfb3ff26de5b668c91453ee8d930ff0bfe397849fd5508ff3e1216c3b46d6449" }, "downloads": -1, "filename": "django-post_office-2.0.8.tar.gz", "has_sig": false, "md5_digest": "437bf62cef06381d346ae2bc087c0e3c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 49688, "upload_time": "2016-08-28T11:11:07", "url": "https://files.pythonhosted.org/packages/52/25/cc0cfe923f183d7c19b162cac3bf8430ddaed7bad28202b8f93a97d248a4/django-post_office-2.0.8.tar.gz" } ], "3.0.0": [ { "comment_text": "", "digests": { "md5": "a91aad4c075c7814178b06c8a3ed5551", "sha256": "1182df9664368fd3f9bdb5d4b4ad5ec39ef83f3d0af7d95b9ab6d9a95d9c6ad2" }, "downloads": -1, "filename": "django_post_office-3.0.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "a91aad4c075c7814178b06c8a3ed5551", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 54330, "upload_time": "2017-07-05T02:11:37", "url": "https://files.pythonhosted.org/packages/d7/78/e65d85152dee6b4eb1b6b31da975e7207d21664cb893a8c737970013e096/django_post_office-3.0.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "3bf12906679a5d929b524f895bbc78a2", "sha256": "701f35f2d0f3515e0cdf8d2974bf9d2749e5659efe0a470256032572c3733bc6" }, "downloads": -1, "filename": "django-post_office-3.0.0.tar.gz", "has_sig": false, "md5_digest": "3bf12906679a5d929b524f895bbc78a2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 43420, "upload_time": "2017-07-05T02:11:40", "url": "https://files.pythonhosted.org/packages/90/00/1ba2879728c670f71721458a9cd2c759eca12410f66fd7a6ef387cb9d272/django-post_office-3.0.0.tar.gz" } ], "3.0.1": [ { "comment_text": "", "digests": { "md5": "813065019ce91249b533712c82867a21", "sha256": "f4c6ad28ab17906637a7b907a38b647ce72ae1b3254842069177e6f225f231b1" }, "downloads": -1, "filename": "django_post_office-3.0.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "813065019ce91249b533712c82867a21", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 70913, "upload_time": "2017-07-25T13:18:16", "url": "https://files.pythonhosted.org/packages/6f/74/77f1c46945d9b5a16ad0ee70ac8a7e054f17dc68cab271d50903eb33c4ff/django_post_office-3.0.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8263e3567fc1ffb04ab779ec9417efb1", "sha256": "ee67a76be0c1c2ca38eb70fd0c5ffdf3e607a0fea0424bb1e0b4bad074a397af" }, "downloads": -1, "filename": "django-post_office-3.0.1.tar.gz", "has_sig": false, "md5_digest": "8263e3567fc1ffb04ab779ec9417efb1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 45986, "upload_time": "2017-07-25T13:18:19", "url": "https://files.pythonhosted.org/packages/8e/e0/8aabf18968bc6ac365f04b36e962447070a11b94b7485d127181c05e51f5/django-post_office-3.0.1.tar.gz" } ], "3.0.2": [ { "comment_text": "", "digests": { "md5": "83660d59ccdbf88f470039196e471885", "sha256": "7598d998055e356728879fe4fe5be451a8efbb416900782c9f24438d3c76109c" }, "downloads": -1, "filename": "django_post_office-3.0.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "83660d59ccdbf88f470039196e471885", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 71094, "upload_time": "2017-07-29T12:07:31", "url": "https://files.pythonhosted.org/packages/8d/03/ce3e85b5252b0bb7df69105ca10398079d748c6846b9c580ee681b27054a/django_post_office-3.0.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "abed96861c12ac50b55938a366cf8427", "sha256": "fabf202a04374046792b1a5e0317511130b79ce15621082ef4f0ea6ad9a9ffae" }, "downloads": -1, "filename": "django-post_office-3.0.2.tar.gz", "has_sig": false, "md5_digest": "abed96861c12ac50b55938a366cf8427", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 46273, "upload_time": "2017-07-29T12:07:26", "url": "https://files.pythonhosted.org/packages/0f/88/ad81cfa83b736c161d6fb022a99fa035519128a0ddb40145b64c995d6590/django-post_office-3.0.2.tar.gz" } ], "3.0.3": [ { "comment_text": "", "digests": { "md5": "20546165d646ba4772360c5e2801a0ff", "sha256": "4158941b988a8f3f7b60e3de0e708513894a9853587f05f56825e153890247a4" }, "downloads": -1, "filename": "django_post_office-3.0.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "20546165d646ba4772360c5e2801a0ff", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 66463, "upload_time": "2017-08-01T06:39:04", "url": "https://files.pythonhosted.org/packages/62/8d/d3ec67e5a0a7009c0fd7683784f914e12ad27ad9a7398dbcb43353437bb8/django_post_office-3.0.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e343dc92c61407097f8617c34e171caa", "sha256": "8d691b2e53ba8121d770ce448f05568874cf78a3cf63215918ad49536db5e76a" }, "downloads": -1, "filename": "django-post_office-3.0.3.tar.gz", "has_sig": false, "md5_digest": "e343dc92c61407097f8617c34e171caa", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 49638, "upload_time": "2017-08-01T06:39:01", "url": "https://files.pythonhosted.org/packages/0f/8c/8c7e1d8998741fd195f7df947c509bc31a03d505aca03488c39e59da11f0/django-post_office-3.0.3.tar.gz" } ], "3.0.4": [ { "comment_text": "", "digests": { "md5": "9e955772b99854c8eddae1869572d82b", "sha256": "831ed70b0cb03536463fcb3e46cd4f9be2a3e91397d076e1a039ee076d38fa23" }, "downloads": -1, "filename": "django_post_office-3.0.4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "9e955772b99854c8eddae1869572d82b", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 67009, "upload_time": "2017-12-06T05:56:42", "url": "https://files.pythonhosted.org/packages/cc/c6/6f6e03acf7175e329465ab9453f896afcff9ee89c49d24a626174d4668a8/django_post_office-3.0.4-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "70fca715b4fe7594f1ccedb15d53764f", "sha256": "d5258a0f65bc55b954ffa742cdef0e8cb099584aee9901ac8c5a571d159fb095" }, "downloads": -1, "filename": "django-post_office-3.0.4.tar.gz", "has_sig": false, "md5_digest": "70fca715b4fe7594f1ccedb15d53764f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 46603, "upload_time": "2017-12-06T05:56:37", "url": "https://files.pythonhosted.org/packages/17/a0/ce2a9b4d27b5316d2304fbef6da178912dda0562beb17672791351ae5d28/django-post_office-3.0.4.tar.gz" } ], "3.1.0": [ { "comment_text": "", "digests": { "md5": "72a9f935aa4264953d5ccae9f537acd4", "sha256": "207b663a05d5d6a62765eb30081093837272a888cf00557d89d0e6f467928871" }, "downloads": -1, "filename": "django_post_office-3.1.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "72a9f935aa4264953d5ccae9f537acd4", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 68800, "upload_time": "2018-07-24T10:01:27", "url": "https://files.pythonhosted.org/packages/e7/ce/09b48c793a72d12de6b887a98851b92add98fbdd5eb7f1f49fa742234faf/django_post_office-3.1.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "11648c90b9d88bb86b8a46d6cbd2bace", "sha256": "827937a944fe47cea393853069cd9315d080298c8ddb0faf787955d6aa51a030" }, "downloads": -1, "filename": "django-post_office-3.1.0.tar.gz", "has_sig": false, "md5_digest": "11648c90b9d88bb86b8a46d6cbd2bace", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 48417, "upload_time": "2018-07-24T10:01:22", "url": "https://files.pythonhosted.org/packages/7d/d9/639dc01f65fb9145883b434cbcfa9a59132a6199566201e472d48efb078c/django-post_office-3.1.0.tar.gz" } ], "3.2.0": [ { "comment_text": "", "digests": { "md5": "1580264c3487ee96348f2ce1d57adbee", "sha256": "ae58d03a930543bb551b6431775c1e4013d3ef12476e16ec84d8483bb82e095e" }, "downloads": -1, "filename": "django-post_office-3.2.0.tar.gz", "has_sig": false, "md5_digest": "1580264c3487ee96348f2ce1d57adbee", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 60186, "upload_time": "2019-05-03T21:01:18", "url": "https://files.pythonhosted.org/packages/1b/1d/2d3c328f1be174c7f72681950f666c0d87e70ffd0c606c59eb17b45c6bff/django-post_office-3.2.0.tar.gz" } ], "3.2.1": [ { "comment_text": "", "digests": { "md5": "1138fb5bd7435a8b4286f45304382c82", "sha256": "e32427822f647719575094f790ca949ef9f9827ec0e8378cb021f01f3834b2a4" }, "downloads": -1, "filename": "django-post_office-3.2.1.tar.gz", "has_sig": false, "md5_digest": "1138fb5bd7435a8b4286f45304382c82", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 60167, "upload_time": "2019-05-22T20:25:32", "url": "https://files.pythonhosted.org/packages/f2/52/80915bf5f998c630f56cdd544511b1779a6fdf5a629e415c239d7b55f2d1/django-post_office-3.2.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "1138fb5bd7435a8b4286f45304382c82", "sha256": "e32427822f647719575094f790ca949ef9f9827ec0e8378cb021f01f3834b2a4" }, "downloads": -1, "filename": "django-post_office-3.2.1.tar.gz", "has_sig": false, "md5_digest": "1138fb5bd7435a8b4286f45304382c82", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 60167, "upload_time": "2019-05-22T20:25:32", "url": "https://files.pythonhosted.org/packages/f2/52/80915bf5f998c630f56cdd544511b1779a6fdf5a629e415c239d7b55f2d1/django-post_office-3.2.1.tar.gz" } ] }