{ "info": { "author": "Gregory Taylor", "author_email": "gtaylor@duointeractive.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Framework :: Django", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "==================\nSea Cucumber 1.5.1\n==================\n:Info: A Django email backend for Amazon Simple Email Service, backed by django-celery_\n:Author: DUO Interactive, LLC\n:Inspired by: Harry Marr's django-ses_.\n:Status: **Unmaintained**. Let us know if you'd like to step in!\n\nA bird's eye view\n=================\nSea Cucumber is a mail backend for Django_. Instead of sending emails\nthrough a traditional SMTP mail server, Sea Cucumber routes email through\nAmazon Web Services' excellent Simple Email Service (SES_) via django-celery_.\n\nWhy Sea Cucumber/SES instead of SMTP?\n=====================================\nConfiguring, maintaining, and dealing with some complicated edge cases can be\ntime-consuming. Sending emails with Sea Cucumber might be attractive to you if:\n\n* You don't want to maintain mail servers.\n* Your mail server is slow or unreliable, blocking your views from rendering.\n* You need to send a high volume of email.\n* You don't want to have to worry about PTR records, Reverse DNS, email\n whitelist/blacklist services.\n* You are already deployed on EC2 (In-bound traffic to SES is free from EC2\n instances). This is not a big deal either way, but is an additional perk if \n you happen to be on AWS.\n\nInstallation\n============\nAssuming you've got Django_ and django-celery_ installed, you'll need \nBoto_ 2.0b4 or higher. boto_ is a Python library that wraps the AWS API.\n\nYou can do the following to install boto_ 2.0b4 (we're using --upgrade here to\nmake sure you get 2.0b4)::\n\n pip install --upgrade boto\n\nInstall Sea Cucumber::\n\n pip install seacucumber\n\nAdd the following to your settings.py::\n\n EMAIL_BACKEND = 'seacucumber.backend.SESBackend'\n\n # These are optional -- if they're set as environment variables they won't\n # need to be set here as well\n AWS_ACCESS_KEY_ID = 'YOUR-ACCESS-KEY-ID'\n AWS_SECRET_ACCESS_KEY = 'YOUR-SECRET-ACCESS-KEY'\n\n # Make sure to do this if you want the ``ses_address`` management command.\n INSTALLED_APPS = (\n ...\n 'seacucumber'\n )\n\nEmail Address Verification\n==========================\n\nBefore you can send email 'from' an email address through SES, you must first \nverify your ownership of it::\n\n\t./manage.py ses_address verify batman@gotham.gov\n\nAfter you've run the verification above you will need to check the email\naccount's inbox (from your mail client or provider's web interface) and click \nthe authorization link in the email Amazon sends you. After that, your address\nis ready to go.\n\nTo confirm the verified email is ready to go::\n\n\t./manage.py ses_address list\n\nTo remove a previously verified address::\n\n\t./manage.py ses_address delete batman@gotham.gov\n\nNow, when you use ``django.core.mail.send_mail`` from a verified email address, \nSea Cucumber will handle message delivery.\n\nRate Limiting\n=============\n\nIf you are a new SES user, your default quota will be 1,000 emails per 24\nhour period at a maximum rate of one email per second. Sea Cucumber defaults\nto enforcing the one email per second at the celery level, but you must not\nhave disabled celery rate limiting. \n\nIf you have this::\n\n CELERY_DISABLE_RATE_LIMITS = True\n \nChange it to this::\n\n CELERY_DISABLE_RATE_LIMITS = False\n \nThen check your SES max rate by running::\n\n ./manage.py ses_usage\n \nIf your rate limit is more than ``1.0/sec``, you'll need to set that numeric\nvalue in your ``CUCUMBER_RATE_LIMIT`` setting like so::\n\n # Rate limit to three outgoing SES emails a second.\n CUCUMBER_RATE_LIMIT = 3\n \nFailure to follow the rate limits may result in BotoServerError exceptions\nbeing raised, which makes celery unhappy.\n\nAs a general note, your quota and max send rate will increase with usage, so\ncheck the ``ses_usage`` management command again at a later date after you've\nsent some emails. You'll need to manually bump up your rate settings in\n``settings.py``.\n\nRouting Tasks\n=============\nIf you want to route Sea Cucumber task to different queues.\n\nAdd this to setting::\n\n CUCUMBER_ROUTE_QUEUE = 'YOUR-ROUTE-QUEUE'\n\nThen update the celery configuration for routes. Example celeryconfig.py::\n\n CELERY_ROUTES = {\n 'seacucumber.tasks.#': {'queue': 'YOUR-ROUTE-QUEUE'},\n }\n\nDKIM\n====\n\nUsing DomainKeys_ is entirely optional, however it is recommended by Amazon for\nauthenticating your email address and improving delivery success rate. See\nhttp://docs.amazonwebservices.com/ses/latest/DeveloperGuide/DKIM.html.\nBesides authentication, you might also want to consider using DKIM in order to\nremove the `via email-bounces.amazonses.com` message shown to gmail users - \nsee http://support.google.com/mail/bin/answer.py?hl=en&answer=1311182.\n\nTo enable DKIM signing you should install the pydkim_ package and specify values\nfor the ``DKIM_PRIVATE_KEY`` and ``DKIM_DOMAIN`` settings. You can generate a\nprivate key with a command such as ``openssl genrsa 1024`` and get the public key\nportion with ``openssl rsa -pubout