Невозможно использовать AWS SES для отправки электронной почты Django приложением в AWS EC2 - PullRequest
0 голосов
/ 24 марта 2020

У меня есть Django приложение, которое находится в AWS EC2, я хочу подключиться к AWS SES для отправки электронной почты, поэтому я следовал этому уроку: https://kholinlabs.com/the-easiest-way-to-send-emails-with-django

Во-первых, я создал экземпляр EC2 в зоне доступности ap-southeast-1a, в которой действуют следующие правила входящего и исходящего трафика:

правило входящего трафика:

HTTP    TCP 80  0.0.0.0/0
All traffic All All 0.0.0.0/0
All traffic All All ::/0
SSH TCP 22  0.0.0.0/0
SMTPS   TCP 465 0.0.0.0/0
SMTPS   TCP 465 ::/0
HTTPS   TCP 443 0.0.0.0/0

правило исходящего трафика:

All traffic All All 0.0.0.0/0
All traffic All All ::/0

затем я создал Django приложение внутри сервера:

django-admin startproject mysite
python3 manage.py makemigrations
python3 manage.py migrate

добавьте следующие строки в установочный файл:

EMAIL_BACKEND = 'django_ses.SESBackend'
AWS_ACCESS_KEY_ID = 'secret'
AWS_SECRET_ACCESS_KEY = 'secret'
AWS_SES_REGION_NAME = 'ap-southeast-2'
AWS_SES_REGION_ENDPOINT = 'email-smtp.ap-southeast-2.amazonaws.com'

затем я создал SES экземпляр в зоне доступности ap-southeast-2.

на сервере EC2, я следую инструкциям и набираю команды:

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

, но он застрял на очень долгое время (около 10 минут) и затем показать сообщение об истечении времени ожидания.

Есть ли какой-то шаг, который я пропустил?


другая информация: для te lnet:

 telnet email-smtp.ap-southeast-2.amazonaws.com 465
Trying 3.24.207.252...
Connected to email-smtp.ap-southeast-2.amazonaws.com.
Escape character is '^]'.

465 порт может работать

 telnet email-smtp.ap-southeast-2.amazonaws.com 25
Trying 13.238.20.185...

он застрял для порта 25

telnet email-smtp.ap-southeast-2.amazonaws.com 587
Trying 3.24.207.252...
Connected to email-smtp.ap-southeast-2.amazonaws.com.
Escape character is '^]'.
220 email-smtp.amazonaws.com ESMTP SimpleEmailService-d-EHZHT2N2F i9ibRsZcZvQJA54s7GtJ
451 4.4.2 Timeout waiting for data from client.
Connection closed by foreign host.

1 Ответ

0 голосов
/ 24 марта 2020

Вы, похоже, пытаетесь отправить почту с from@example.com. Так не пойдет. Обновите адреса отправителя и получателя на электронные письма, которые вы подтвердили на SES. Ниже описано, как проверять адреса.

Также убедитесь, что вы заменили 'secret'

AWS_ACCESS_KEY_ID = 'secret'
AWS_SECRET_ACCESS_KEY = 'secret'

на фактический идентификатор ключа доступа и секретный ключ, полученный с консоли aws.

Вы можете узнать, как проверить адреса электронной почты здесь:

https://docs.aws.amazon.com/ses/latest/DeveloperGuide/verify-email-addresses.html

и как выбраться из песочницы здесь:

https://docs.aws.amazon.com/ses/latest/DeveloperGuide/request-production-access.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...