У меня проблема с отправкой электронной почты с помощью django
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 = 'info@custumemail.com'
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, in getreply line = self.file.readline(_MAXLINE + 1) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Файл "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/socket.py", строка 707, in readinto return self._sock.recv_into(b) ^^^^^^^^^^^^^^^^^^^^^^^ ConnectionResetError: [Errno 54] Connection reset by peer
Во время обработки вышеуказанного исключения произошло другое исключение:
Отслеживание (последний последний вызов): Файл "/Volumes/mac-etended/pytonDjango/django-example-4/blog/venv/lib/python3.12/site-packages/django/core/handlers/exception.py", строка 56, in inner response = get_response(request) ^^^^^^^^^^^^^^^^^^^^^ Файл "/Volumes/mac-etended/pytonDjango/django-example-4/blog/venv/lib/python3.12/site-packages/django/core/handlers/base.py", строка 197, in _get_response response = wrapped_callback(request, *callback_args, **callback_kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Файл "/Volumes/mac-etended/pytonDjango/django-example-4/blog/blog/views.py", строка 64, in post_share send_mail(subject, message, 'ddddd@gmail.com', [cd['to']]) Файл "/Volumes/mac-etended/pytonDjango/django-example-4/blog/venv/lib/python3.12/site-packages/django/core/mail/init.py", строка 87,
in send_mail return mail.send() ^^^^^^^^^^^ Файл "/Volumes/mac-etended/pytonDjango/django-example-4/blog/venv/lib/python3.12/site-packages/django/core/mail/message.py", строка 298, in send return self.get_connection(fail_silently).send_messages([self]) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Файл "/Volumes/mac-etended/pytonDjango/django-example-4/blog/venv/lib/python3.12/site-packages/django/core/mail/backends/smtp.py", строка 124, in 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, in open self.c Сообщение об ошибке, которое вы получаете, 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 Docs on sending email. Также убедитесь, что что вы обновили Django и Python. Проверьте также брандмауэр вашей системы, он может быть причиной, если все остальные решения не помогли, в чем я сомневаюсь в вашем случае.
Удача!