#python #django #email #amazon-ses
#python #django #Адрес электронной почты #amazon-ses
Вопрос:
Я пытаюсь отправить электронное письмо через AWS SES с включенным tls. Для SES требуется включить протокол tls. Однако, когда я настраиваю свое smtp-соединение на использование tls, я получаю это исключение. И когда я не устанавливаю use_tls
значение True
, я получаю другое исключение, в котором указывается, что для использования ses требуется протокол tls.
Код
from django.core.mail import get_connection #1
# msg composed
connection = get_connection() #2
connection.use_tls = True #3
connection.send_messages([msg, ]) #4
Обратная трассировка ошибки:
Файл «/home/myproject/venv/local/lib/python2.7/site-packages/django/core/mail/backends/smtp.py «, строка 51, в открытом файле self.connection.starttls() «/usr/lib/python2.7/smtplib.py «, строка 635, в starttls вызывает исключение SmtpException(«Расширение STARTTLS не поддерживается сервером».) Исключение SmtpException: расширение STARTTLS не поддерживается сервером
Комментарии:
1. Вы уверены, что подключаетесь к правильному порту? Обратите внимание, STARTTLS и SMTP через SSL — разные вещи . В то время как STARTTLS обычно доступен на стандартном SMTP-порту (25), SMTP через SSL обычно доступен на порту 465
2. @goncalopp: Я перепробовал каждое из 587, 465 и 25. Это единственные параметры порта SMTP, которые я вижу в SES. Все они выдают одну и ту же ошибку.
3. Я предполагаю, что это может быть временная проблема с Amazon SES, поскольку она начала работать сейчас.
4. Для порта 465 (smtps) вы должны использовать use_ssl, а не use_tls. use_tls предназначен только для STARTTLS (т. Е. обновить обычное соединение до SSL), но smtps подключается напрямую через SSL.