Рубрики
Без рубрики

Самый простой способ отправлять электронные письма с Django (с помощью SES от AWS)

После прочтения этой статьи вы сможете отправлять любые виды электронных писем из вашего приложения Django. Помечено Python, Django, AWS, WebDev.

Вы хотите отправить электронные письма в своем приложении? Уведомления, информационные бюллетени, акции, существует так много причин отправлять электронные письма.

Прочитав эту статью, вы так сможете отправлять любые виды электронных писем из вашего приложения Django.

Есть много способов отправлять электронные письма, используя различные отправляющие по электронной почте. Но в этом руководстве я охвачу одну из самых популярных услуг, SES или простой сервис электронной почты. Он был разработан Amazon и может быть использован бесплатно до 62000 электронных писем в месяц.

Для работы с SES мы будем использовать Django-Ses библиотека. Это очень легко настроить и использовать.

Но прежде чем мы сможем начать нам нужно …

Если у вас еще нет учетной записи AWS, вам нужно получить один. Вы просто не сможете использовать SES без него.

Чтобы зарегистрироваться, вам нужно пойти на AWS регистрация страницы Отказ

Я предполагаю, что у вас уже есть проект Django. Чтобы установить Django-Ses Библиотека, которую нужно для выполнения следующей команды

pip install django-ses

Как только библиотека установлена, вам нужно сказать Django использовать эту библиотеку как по электронной почте, добавив следующую строку в свой settings.py.

EMAIL_BACKEND = 'django_ses.SESBackend'

Тогда вам нужно получить учетные данные для SES

  1. Перейти к AWS.
  2. Выберите IAM Service
  3. Добавить пользователя
  4. Выберите имя для пользователя и «Программный доступ» (чтобы получить доступ ключей ключа доступа и ключа секретного доступа)
  5. Прикрепить Amazonsesfullaccess разрешение
  6. Создать пользователя

После этого вы должны увидеть «ключ доступа ID» и «ключ секретного доступа». Добавьте их в settings.py как это

AWS_ACCESS_KEY_ID = 'YOUR-ACCESS-KEY-ID'
AWS_SECRET_ACCESS_KEY = 'YOUR-SECRET-ACCESS-KEY'

Теперь, когда у нас есть все учетные данные на месте, мы можем отправить электронную почту. Мы можем сделать это с помощью основной функции Django ( django.core.mail.send_mail быть более конкретным).

from django.core.mail import send_mail
send_mail(
    'Subject here',
    'Here is the message.',
    'from@example.com',
    ['to@example.com']
)

И это письмо должно быть отправлено с использованием SES.

Итак, давайте прыгнем в ракушку Джанго и попробовать.

python manage.py shell
>>> from django.core.mail import send_mail
>>> send_mail(
...    'Subject here',
...    'Here is the message.',
...    'from@example.com',
...    ['to@example.com']
...)
boto.ses.exceptions.SESAddressNotVerifiedError: SESAddressNotVerifiedError: 400 Email address is not verified.

  
    Sender
    MessageRejected
    Email address is not verified. The following identities failed the check in region US-EAST-1: from@example.com
  
  3966220a-3c6c-11e9-909d-889357e40867

О, нет! Мы получили ошибку … Кто бы подумал, что мы не смогли отправить электронные письма от from@example.com. . Давайте исправим это.

Для начала мы можем отправить электронное письмо с вашего личного адреса электронной почты. Это должно быть довольно приемлемо, если вы строите MVP.

Если вы не хотите, чтобы все могли видеть вашу личную электронную почту, вы можете создать отдельный адрес электронной почты для вашего приложения, например Ваш. Используйте@gmail.com Отказ Если люди начнут блокировать ваше письмо по какой-то причине, это не повлияет на ваше личное здоровье по электронной почте.

Отправлять электронные письма с вашего адреса электронной почты, вам нужно

  1. Перейти к AWS.
  2. Выберите SES Service
  3. Перейдите на вкладку «Адреса электронной почты»
  4. Нажмите «Проверьте новый адрес электронной почты»
  5. Введите адрес электронной почты по выбору
  6. Перейдите в почтовый ящик для электронной почты Вы указали
  7. Подтвердите, что вы хотите использовать вашу электронную почту в SES

Как только вы закончите, вы должны быть в состоянии отправить электронное письмо с Shell Django

>>>send_mail(
...    'Subject here',
...    'Here is the message.',
...    'your.application@gmail.com',
...    ['your.email.address+to.test@example.com']
...)
1

После этого вы должны получить электронное письмо

Возможно, вы заметили номер, который был возвращен send_mail метод. Это число успешно отправленных электронных писем, которое в нашем случае было 1.

Если мы попытаемся отправить электронное письмо на определенный адрес, и он потерпит неудачу, то неудачный электронный адрес не будет подсчитан

>>> send_mail(
...     'Subject here',
...     'Here is the message.',
...     'your.application@gmail.com',
...     ['your.email.address+to.test@example.com', 'not.existing.email.for.real.asdvsrg@gmail.com']
... )
1

Это send_mail Вызов вернулся 1, потому что он не может отправить электронное письмо на второй адрес ( not.existing.email.for.real.asdvsrg@gmail.com ) потому что это не существует. Я только что сделал это.

Как только ваш MVP работает, и у вас есть домен для вашего приложения, пришло время отправлять электронные письма из этого домена. Для этого вам нужно добавить этот домен в SES

  1. Перейти к AWS.
  2. Выберите SES Service
  3. Перейти на вкладку «Домены»
  4. Нажмите «Проверьте новый домен»

Если у вас уже есть свой домен на AWS Route53, вы просто нажимаете, и ваш домен будет готов.

Если у вас есть ваш домен, настроен где-то еще, вам нужно следовать указанным инструкциям.

Как только вы следуете инструкциям правильно, вы должны увидеть зеленый проверенный статус, а домен должен быть готов к отправке электронных писем через SES. Мы можем вернуться к нашему оболочку Django и тестируйте отправку электронных писем из нового и блестящего домена

>>>send_mail(
...    'Subject here',
...    'Here is the message.',
...    'hello@yourdomain.com',
...    ['your.email.address+to.test@example.com']
...)
1

Вот твое письмо

Довольно аккуратно, верно? Но это может быть еще более красиво …

Вы когда-нибудь замечали симпатичное имя электронной почты? Что-то вроде этого

Это даже включает ссылку на отписаться. Вы тоже можете быть так круто. Это очень легко. Вам просто нужно изменить имя отправителя. Добавьте нужное имя в начале двойных кавычек и адрес электронной почты. Электронная почта будет отправлена в конце <> Как этот «Желаемое имя» Отказ

>>>send_mail(
...    'Subject here',
...    'Here is the message.',
...    '"Hello, you" ',
...    ['your.email.address+to.test@example.com']
...)
1

Теперь у вас тоже крутое имя

И это может быть все, что вы хотите.

Теперь вы должны знать, как

  • настроить django-ses. библиотека
  • Используйте его, чтобы отправить электронные письма
  • Настройте электронные письма в SES
  • Настройте домены в SES
  • Сделайте информацию отправителя электронной почты прерывее

Это шестая часть ряд статей о MUN Отказ Оставайтесь настроиться на часть 7. Вы можете найти Кодекс этого проекта , а также моих других проектов, на моем Страница GitHub Отказ Оставьте свои комментарии ниже и следуйте за мной, если вам понравилась эта статья.

Оригинал: “https://dev.to/hmlon/the-easiest-way-to-send-emails-with-django-using-ses-from-aws-3gl8”