{
"info": {
"author": "Hector Castro",
"author_email": "hcastro@azavea.com",
"bugtrack_url": null,
"classifiers": [
"Development Status :: 5 - Production/Stable",
"Framework :: Django",
"Framework :: Django :: 1.11",
"Framework :: Django :: 2.0",
"Framework :: Django :: 2.1",
"Framework :: Django :: 2.2",
"Intended Audience :: Developers",
"License :: OSI Approved :: Apache Software License",
"Programming Language :: Python",
"Programming Language :: Python :: 2",
"Programming Language :: Python :: 2.7",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.4",
"Programming Language :: Python :: 3.5",
"Programming Language :: Python :: 3.6",
"Programming Language :: Python :: 3.7"
],
"description": "django-amazon-ses\n=================\n\n.. image:: https://travis-ci.org/azavea/django-amazon-ses.svg?branch=develop\n :target: https://travis-ci.org/azavea/django-amazon-ses\n.. image:: https://api.codeclimate.com/v1/badges/b69dce91215b7003066b/maintainability\n :target: https://codeclimate.com/github/azavea/django-amazon-ses/maintainability\n.. image:: https://api.codeclimate.com/v1/badges/b69dce91215b7003066b/test_coverage\n :target: https://codeclimate.com/github/azavea/django-amazon-ses/test_coverage\n\nA Django email backend that uses `Boto 3 `_ to interact with `Amazon Simple Email Service (SES) `_.\n\nTable of Contents\n-----------------\n\n* `Installation <#installation>`_\n* `AWS Credential Setup <#aws-credential-setup>`_\n\n * `AWS Named Profile <#aws-named-profile>`_\n * `AWS EC2 Instance Profile <#aws-ec2-instance-profile>`_\n\n* `Django Configuration <#django-configuration>`_\n* `Usage <#usage>`_\n* `Signals <#signals>`_\n\n * `pre_send <#pre-send>`_\n * `post_send <#post-send>`_\n\n* `Testing <#testing>`_\n\nInstallation\n------------\n\nFirst, install the Django Amazon SES email backend:\n\n.. code:: bash\n\n $ pip install django-amazon-ses\n\nNext, ensure that your Amazon Web Services (AWS) API credentials are setup, or that you are running on an Amazon EC2 instance with an instance profile that has access to the Amazon SES service.\n\n**Note**: Versions 1.0.x of ``django-amazon-ses`` are the last versions compatible with Django versions earlier than 1.11. If you are using Django versions earlier than 1.11.x, please pin your ``django-amazon-ses`` version.\n\nAWS Credential Setup\n--------------------\n\nAWS Named Profile\n*****************\n\nCreate an AWS API credential profile named ``test`` using the `AWS CLI `_:\n\n.. code:: bash\n\n $ aws --profile test configure\n\nEnsure that the ``AWS_PROFILE`` environment variable is set so that Boto 3 knows which credentials profile to use:\n\n.. code:: bash\n\n $ AWS_PROFILE=\"test\" gunicorn my:app\n\nAWS EC2 Instance Profile\n************************\n\nCreate an `instance profile `_ with at least the ``ses:SendRawEmail`` action. Then, associate it with the instance/s running your application. An example policy that enables access to the ``ses:SendRawEmail`` action is below:\n\n.. code:: javascript\n\n {\n \"Version\": \"2012-10-17\",\n \"Statement\": [\n {\n \"Effect\": \"Allow\",\n \"Action\": [\"ses:SendRawEmail\"],\n \"Resource\":\"*\"\n }\n ]\n }\n\nDjango Configuration\n--------------------\n\nLastly, override the ``EMAIL_BACKEND`` setting within your Django settings file:\n\n.. code:: python\n\n EMAIL_BACKEND = 'django_amazon_ses.EmailBackend'\n\nOptionally, you can set the AWS credentials. If unset, the backend will gracefully fall back to other Boto 3 credential providers.\n\n.. code:: python\n\n AWS_ACCESS_KEY_ID = 'my_access_key...'\n AWS_SECRET_ACCESS_KEY = 'my_secret...'\n\n\nOptionally, you can set the AWS region to be used (default is ``'us-east-1'``):\n\n.. code:: python\n\n AWS_DEFAULT_REGION = 'eu-west-1'\n\nAlternatively, provide AWS credentials using the settings below. This is useful in situations where you want to use separate credentials to send emails via SES than you would for other AWS services.\n\n.. code:: python\n\n AWS_SES_ACCESS_KEY_ID = 'my_access_key...'\n AWS_SES_SECRET_ACCESS_KEY = 'my_secret...'\n AWS_SES_REGION = 'us-west-2'\n\nUsage\n-----\n\nOnce the configuration above is complete, use ``send_email`` to send email messages with Amazon SES from within your application:\n\n.. code:: python\n\n from django.core.mail import send_mail\n\n send_mail(\n 'Subject here',\n 'Here is the message.',\n 'from@example.com',\n ['to@example.com'],\n fail_silently=False,\n )\n\nSignals\n-------\n\nTwo signals are provided for the backend, ``pre_send`` and ``post_send``. Both signals receive the message object being sent. The ``post_send`` signal also receives the Amazon SES message ID of the sent message.\n\npre_send\n********\n\nYou can modify the email message on ``pre_send``. For example, if you have a blacklist of email addresses that should never receive emails, you can filter them from the recipients:\n\n.. code:: python\n\n from django.dispatch.dispatcher import receiver\n from django_amazon_ses import pre_send\n\n @receiver(pre_send)\n def remove_blacklisted_emails(sender, message=None, **kwargs):\n blacklisted_emails = Blacklisted.objects.values_list('email', flat)\n message.to = [email for email in message.to if email not in blacklisted_emails]\n\nIf the ``pre_send`` receiver function ends up removing all of the recipients from the message, the email is not processed and the ``post_send`` signal is not sent.\n\npost_send\n*********\n\nSimilarly, the ``post_send`` signal can be used to log messages sent by the system. This is useful if you want to log the subject line of a message that bounced or received a complaint.\n\n.. code:: python\n\n from django.dispatch.dispatcher import receiver\n from django.utils import timezone\n\n from django_amazon_ses import post_send\n\n @receiver(post_send)\n def log_message(sender, message=None, message_id=None, **kwargs):\n SentMessage.objects.create(\n subject = message.subject,\n body = message.body,\n message_id = message_id,\n date_sent = timezone.now()\n )\n\nTesting\n-------\n\nThe test suite execution process is managed by tox and takes care to mock out the Boto 3 interactions with Amazon's API, so there is no need for a valid set of credentials to execute it:\n\n.. code:: bash\n\n $ tox\n\n\n",
"description_content_type": "",
"docs_url": null,
"download_url": "",
"downloads": {
"last_day": -1,
"last_month": -1,
"last_week": -1
},
"home_page": "https://github.com/azavea/django-amazon-ses",
"keywords": "django amazon ses email",
"license": "Apache License 2.0",
"maintainer": "",
"maintainer_email": "",
"name": "django-amazon-ses",
"package_url": "https://pypi.org/project/django-amazon-ses/",
"platform": "",
"project_url": "https://pypi.org/project/django-amazon-ses/",
"project_urls": {
"Homepage": "https://github.com/azavea/django-amazon-ses"
},
"release_url": "https://pypi.org/project/django-amazon-ses/2.1.1/",
"requires_dist": [
"boto3 (>=1.3.0)",
"Django (>=1.11)"
],
"requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*",
"summary": "A Django email backend that uses Boto3 to interact withAmazon Simple Email Service (SES).",
"version": "2.1.1"
},
"last_serial": 5375458,
"releases": {
"0.1.3": [
{
"comment_text": "",
"digests": {
"md5": "e70205d9221d43a854f5734cdf6c73b0",
"sha256": "399838cda9fb57436f499165bd20875aacc02792b7537b7ca2f766b5147d7077"
},
"downloads": -1,
"filename": "django-amazon-ses-0.1.3.tar.gz",
"has_sig": false,
"md5_digest": "e70205d9221d43a854f5734cdf6c73b0",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 7993,
"upload_time": "2016-03-23T15:39:43",
"url": "https://files.pythonhosted.org/packages/b2/94/7b99eebfecc5b55c70f26586d185ba49905eca79faa68c96516244150a72/django-amazon-ses-0.1.3.tar.gz"
}
],
"0.3.0": [
{
"comment_text": "",
"digests": {
"md5": "cecbb3d9eb462bc727d0f0974d169b78",
"sha256": "a270a4776fc1826e2e31b9507ec822d6adc5a6f2b5d12d3a85deec2d6cb98e12"
},
"downloads": -1,
"filename": "django-amazon-ses-0.3.0.tar.gz",
"has_sig": false,
"md5_digest": "cecbb3d9eb462bc727d0f0974d169b78",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 12280,
"upload_time": "2017-03-30T00:08:42",
"url": "https://files.pythonhosted.org/packages/5c/46/ff7e6d2ee22f973345d1f0f39e7bca0a30e7ffad4170566e47dbb19a5220/django-amazon-ses-0.3.0.tar.gz"
}
],
"0.3.1": [
{
"comment_text": "",
"digests": {
"md5": "48813483a5d5499fef113eecdb6cea63",
"sha256": "fb4648c3700c4289ec421be77753c2b6526cb4a453b3af698d5d99bce7a11d83"
},
"downloads": -1,
"filename": "django-amazon-ses-0.3.1.tar.gz",
"has_sig": false,
"md5_digest": "48813483a5d5499fef113eecdb6cea63",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 9525,
"upload_time": "2017-11-15T01:07:10",
"url": "https://files.pythonhosted.org/packages/9c/f0/bb1d92add2f7aa7f1236b09876f6ffc954f34091d353312da12ca590da8a/django-amazon-ses-0.3.1.tar.gz"
}
],
"0.3.2": [
{
"comment_text": "",
"digests": {
"md5": "1b55f59c71f2f82ac3b30d9a0d9b2fa1",
"sha256": "7b9c7abac9dbdb4526b636060535305bb32feab4ca5514f03075a237191308da"
},
"downloads": -1,
"filename": "django_amazon_ses-0.3.2-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "1b55f59c71f2f82ac3b30d9a0d9b2fa1",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": null,
"size": 10962,
"upload_time": "2017-11-15T01:37:36",
"url": "https://files.pythonhosted.org/packages/99/bc/6785e0944be0532bbf1432aac1c8a20c25fc849d7b53a560ed9d452c029a/django_amazon_ses-0.3.2-py2.py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "8120a7a057fca854eabf1a6a1e344e7d",
"sha256": "1b19d13e836a45730fa931b8c4e85cb9cbbfabbb10bf0d956cca2edfc01bfb59"
},
"downloads": -1,
"filename": "django-amazon-ses-0.3.2.tar.gz",
"has_sig": false,
"md5_digest": "8120a7a057fca854eabf1a6a1e344e7d",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 9670,
"upload_time": "2017-11-15T01:37:37",
"url": "https://files.pythonhosted.org/packages/37/2b/582496fc520586a21f432af95e83e6f1c136a9fd304754e65c1c82fd3597/django-amazon-ses-0.3.2.tar.gz"
}
],
"1.0.0": [
{
"comment_text": "",
"digests": {
"md5": "12fc3ed331cdac250187c91a8e78a459",
"sha256": "54c27be5b1eff305c8975e14bbc3138d7f5c1fa7c33e636f7d672ae09195dd68"
},
"downloads": -1,
"filename": "django_amazon_ses-1.0.0-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "12fc3ed331cdac250187c91a8e78a459",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": null,
"size": 10775,
"upload_time": "2017-12-07T15:51:16",
"url": "https://files.pythonhosted.org/packages/77/4c/d7b2100e799ac509eccfd9bd6376af839b37aa14dab8cafd1ad0e753ec1c/django_amazon_ses-1.0.0-py2.py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "e5a93b6e269e2e397565b16424a7fb6f",
"sha256": "1c21bea20c0214da6c293e778aae3b2184f5f76ed9eef1e338d4237c1eaba67f"
},
"downloads": -1,
"filename": "django-amazon-ses-1.0.0.tar.gz",
"has_sig": false,
"md5_digest": "e5a93b6e269e2e397565b16424a7fb6f",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 9938,
"upload_time": "2017-12-07T15:51:17",
"url": "https://files.pythonhosted.org/packages/58/31/862545fc81cbc3b657a1eac94b2f1ad5239f1cd4d3446ca49fecafb9f039/django-amazon-ses-1.0.0.tar.gz"
}
],
"2.0.0": [
{
"comment_text": "",
"digests": {
"md5": "971c99e21503605833b18d1324b964f7",
"sha256": "84d992efefd8a67a9e5fbb3da96e332817070c1976d8ea1dc7a645355eb38bcc"
},
"downloads": -1,
"filename": "django_amazon_ses-2.0.0-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "971c99e21503605833b18d1324b964f7",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*",
"size": 8493,
"upload_time": "2018-04-10T17:28:14",
"url": "https://files.pythonhosted.org/packages/ad/e0/6d512b9a2a082c88ea016bfd97c0aeab44eb75a297880107b8af1f219980/django_amazon_ses-2.0.0-py2.py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "2835e98fe1cf245023672dd7277cafff",
"sha256": "feb3ed343ba9952cb6ea320df8740e0bbd79121eb3693f524f582994c99f7540"
},
"downloads": -1,
"filename": "django-amazon-ses-2.0.0.tar.gz",
"has_sig": false,
"md5_digest": "2835e98fe1cf245023672dd7277cafff",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*",
"size": 10421,
"upload_time": "2018-04-10T17:28:15",
"url": "https://files.pythonhosted.org/packages/15/4f/9c68a506f91ea441a431d30ba343745b7f0ca20a1c2b1bba23db8c8720ad/django-amazon-ses-2.0.0.tar.gz"
}
],
"2.1.0": [
{
"comment_text": "",
"digests": {
"md5": "c11b34421bd561d621b4f754491858c0",
"sha256": "a5502f2395f6e4710cab26aa07b1982bfb294d688117169a5ad746c48ae8133e"
},
"downloads": -1,
"filename": "django_amazon_ses-2.1.0-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "c11b34421bd561d621b4f754491858c0",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*",
"size": 8885,
"upload_time": "2019-04-03T05:25:40",
"url": "https://files.pythonhosted.org/packages/3d/af/691c312937d8fc0e8cd2783eb92c0618e9f079b2773a8f355545cc271f9d/django_amazon_ses-2.1.0-py2.py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "cacad25eaf71bdc469d6ad830a0776f6",
"sha256": "e70b694a9222890306bd529d50924a473efb25918eb1769898a7e0fd6cd73bd5"
},
"downloads": -1,
"filename": "django-amazon-ses-2.1.0.tar.gz",
"has_sig": false,
"md5_digest": "cacad25eaf71bdc469d6ad830a0776f6",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*",
"size": 10312,
"upload_time": "2019-04-03T05:25:41",
"url": "https://files.pythonhosted.org/packages/4e/12/b026964e85ea4b0cd534d2c4d6b560f2034b425d4a6d055224f16df124d8/django-amazon-ses-2.1.0.tar.gz"
}
],
"2.1.1": [
{
"comment_text": "",
"digests": {
"md5": "b2b9a69f3c3b6acc3df115c251c8db63",
"sha256": "2135a6ba2ac6b004f534afab17c812ce8c42db7bc64cc149f8f696fecc6925c3"
},
"downloads": -1,
"filename": "django_amazon_ses-2.1.1-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "b2b9a69f3c3b6acc3df115c251c8db63",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*",
"size": 8881,
"upload_time": "2019-06-08T14:04:47",
"url": "https://files.pythonhosted.org/packages/ee/eb/2119436b296b4640407bbb7cb7fb6116b0de4df43ae2fd4a6ae8dcbad5bd/django_amazon_ses-2.1.1-py2.py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "57be7cfb910bcc694aab1fe73689490f",
"sha256": "fb168c60fb9bc7fc482cf664e861643816c181dccb9e875d6ecc61f76fc0b0b3"
},
"downloads": -1,
"filename": "django-amazon-ses-2.1.1.tar.gz",
"has_sig": false,
"md5_digest": "57be7cfb910bcc694aab1fe73689490f",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*",
"size": 10586,
"upload_time": "2019-06-08T14:04:49",
"url": "https://files.pythonhosted.org/packages/f3/ff/95d3c66a7f3e20e15484b72f347e40bbdef0dd7b9c6096f76f4c5317a68f/django-amazon-ses-2.1.1.tar.gz"
}
]
},
"urls": [
{
"comment_text": "",
"digests": {
"md5": "b2b9a69f3c3b6acc3df115c251c8db63",
"sha256": "2135a6ba2ac6b004f534afab17c812ce8c42db7bc64cc149f8f696fecc6925c3"
},
"downloads": -1,
"filename": "django_amazon_ses-2.1.1-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "b2b9a69f3c3b6acc3df115c251c8db63",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*",
"size": 8881,
"upload_time": "2019-06-08T14:04:47",
"url": "https://files.pythonhosted.org/packages/ee/eb/2119436b296b4640407bbb7cb7fb6116b0de4df43ae2fd4a6ae8dcbad5bd/django_amazon_ses-2.1.1-py2.py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "57be7cfb910bcc694aab1fe73689490f",
"sha256": "fb168c60fb9bc7fc482cf664e861643816c181dccb9e875d6ecc61f76fc0b0b3"
},
"downloads": -1,
"filename": "django-amazon-ses-2.1.1.tar.gz",
"has_sig": false,
"md5_digest": "57be7cfb910bcc694aab1fe73689490f",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*",
"size": 10586,
"upload_time": "2019-06-08T14:04:49",
"url": "https://files.pythonhosted.org/packages/f3/ff/95d3c66a7f3e20e15484b72f347e40bbdef0dd7b9c6096f76f4c5317a68f/django-amazon-ses-2.1.1.tar.gz"
}
]
}