I have a problem with send_email by django
I tryed gmail and hotmail and email private , all of them return the same error code
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = 'mail.privateemail.com'
EMAIL_HOST_USER = '[email protected]'
EMAIL_HOST_PASSWORD = 'xxxxxx'
EMAIL_USE_TLS = False
EMAIL_PORT = 465
Error console:
` Файл "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/smtplib.py", строка 398, в getreply строка = self.file.readline(_MAXLINE + 1) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Файл "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/socket.py", строка 707, в readinto вернуть self._sock.recv_into(b) ^^^^^^^^^^^^^^^^^^^^^^^ ConnectionResetError: [Errno 54] Сброс соединения узлом
Во время обработки вышеуказанного исключения произошло другое исключение:
Traceback (последний вызов последний): Файл "/Volumes/mac-etended/pytonDjango/django-example-4/blog/venv/lib/python3.12/site-packages/django/core/handlers/Exception.py", строка 56, во внутреннем ответ = get_response (запрос) ^^^^^^^^^^^^^^^^^^^^^^ Файл «/Volumes/mac-etended/pytonDjango/django-example-4/blog/venv/lib/python3.12/site-packages/django/core/handlers/base.py», строка 197, в _get_response ответ = обернутый_callback(запрос, *callback_args, **callback_kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^ Файл «/Volumes/mac-etended/pytonDjango/django-example-4/blog/blog/views.py», строка 64, в post_share send_mail(тема, сообщение, '[email protected]', [cd['to']]) Файл «/Volumes/mac-etended/pytonDjango/django-example-4/blog/venv/lib/python3.12/site-packages/django/core/mail/init.py», строка 87, в send_mail вернуть почту.отправить() ^^^^^^^^^^^ Файл "/Volumes/mac-etended/pytonDjango/django-example-4/blog/venv/lib/python3.12/site-packages/django/core/mail/message.py", строка 298, в отправке return self.get_connection(fail_silily).send_messages([self]) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ Файл «/Volumes/mac-etended/pytonDjango/django-example-4/blog/venv/lib/python3.12/site-packages/django/core/mail/backends/smtp.py», строка 124, в send_messages new_conn_created = self.open() ^^^^^^^^^^^ Файл "/Volumes/mac-etended/pytonDjango/django-example-4/blog/venv/lib/python3.12/site-packages/django/core/mail/backends/smtp.py", строка 80, открыта self.connection = self.connection_class( ^^^^^^^^^^^^^^^^^^^^^^ Файл «/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/smtplib.py», строка 255, в инициализации (код, сообщение) = self.connect(хост, порт) ^^^^^^^^^^^^^^^^^^^^^^^^^ Файл "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/smtplib.py", строка 343, в соединении (код, сообщение) = self.getreply() ^^^^^^^^^^^^^^^^ Файл "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/smtplib.py", строка 401, в getreply поднять SMTPServerDisconnected("Соединение неожиданно закрыто: " smtplib.SMTPServerDisconnected: соединение неожиданно закрыто: [Errno 54] Соединение сброшено узлом`
Сообщение об ошибке, которое вы получаете, ConnectionResetError: [Errno 54] Connection reset by peer
возникает, когда удаленный сервер неожиданно закрывает соединение.
Вам следует настроить это на своем Email config settings.py also
, поскольку вы используете SMPTS через SSL (с портом 465), чтобы это работало:
EMAIL_USE_SSL = True
Однако если вы хотите использовать TLS, типичный порт — 587, и вам следует установить EMAIL_USE_TLS = True
. Однако я часто использую версию TLS.
Здесь:
# set your environmental variables on .env file of your project root directory.
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_PORT = 587
EMAIL_USE_TLS = True
EMAIL_HOST_PASSWORD = os.getenv('EMAIL_HOST_PASSWORD')
EMAIL_HOST_USER = os.getenv('EMAIL_HOST_USER')
DEFAULT_FROM_EMAIL = os.getenv("DEFAULT_FROM_EMAIL")
PS: Убедитесь, что ваш поставщик услуг электронной почты разрешает подключения с хоста вашего приложения и что вы включили необходимые разрешения для доступа к вашей учетной записи электронной почты со стороны вашего приложения Django.
Для получения дополнительной информации ознакомьтесь с Документами Django по отправке электронной почты. Также убедитесь, что что вы обновили свои Django и Python. Проверьте также брандмауэры вашей системы, это может быть причиной того, что все остальные решения не помогли, в чем я сомневаюсь в вашем случае.
Удачи!
спасибо, я попробовал отправить электронное письмо со своего сервера Ubuntu и успешно>