Отправка электронной почты в Django throws Семейство адресов не поддерживается исключением протокола - PullRequest
0 голосов
/ 17 марта 2020

Я отправляю электронные письма с использованием Django версии 2.2 и проверил его на локальной машине, и он работает. Но тот же код вызывает исключение [Errno 97] Address family not supported by protocol.

Я также не смог найти никакого решения онлайн. Я перепроверил свой код, и в этом нет ничего плохого. Я использую Google SMTP-сервер с app_password. Ниже приведены детали. файл settings.py

EMAIL_BACKEND = "django.core.mail.backends.smtp.EmailBackend"
EMAIL_HOST = "smtp.gmail.com"
EMAIL_USE_TLS = True
EMAIL_PORT = 587
EMAIL_HOST_USER = "*******@gmail.com"
EMAIL_HOST_PASSWORD = "app_password"

Функция отправки электронной почты

subject = 'Account Password reset mail'
ctx = {
  "user" : self.user,
  "website" : settings.WEBSITE_NAME,
  "site_url" : settings.WEBSITE_URL,
}
msg = render_to_string('login/forgot_password_email.html',ctx)
from_email = settings.WEBSITE_ADMIN_EMAIL
to_email = [self.cleaned_data.get('email'),]
result = send_mail(subject, '', from_email, to_email, fail_silently=False, html_message=msg) 
return result

Я даже пытаюсь войти на сервер через S SH и выполнить через оболочку, но возвращает ту же ошибку.

>>> from django.core.mail import send_mail
>>> res = send_mail('Subject here', 'Here is the message.',  'example@gmail.com',  ['example@gmail.com'], fail_silently=False,)
Traceback (most recent call last):
  File "<console>", line 1, in <module>
  File "/home/y6d62pncrpga/virtualenv/public_html/django/app2/3.7/lib/python3.7/site-packages/django/core/mail/__init__.py", line 60, in send_mail
    return mail.send()
  File "/home/y6d62pncrpga/virtualenv/public_html/django/app2/3.7/lib/python3.7/site-packages/django/core/mail/message.py", line 291, in send
    return self.get_connection(fail_silently).send_messages([self])
  File "/home/y6d62pncrpga/virtualenv/public_html/django/app2/3.7/lib/python3.7/site-packages/django/core/mail/backends/smtp.py", line 103, in send_messages
    new_conn_created = self.open()
  File "/home/y6d62pncrpga/virtualenv/public_html/django/app2/3.7/lib/python3.7/site-packages/django/core/mail/backends/smtp.py", line 63, in open
    self.connection = self.connection_class(self.host, self.port, **connection_params)
  File "/opt/alt/python37/lib64/python3.7/smtplib.py", line 251, in __init__
    (code, msg) = self.connect(host, port)
  File "/opt/alt/python37/lib64/python3.7/smtplib.py", line 336, in connect
    self.sock = self._get_socket(host, port, self.timeout)
  File "/opt/alt/python37/lib64/python3.7/smtplib.py", line 307, in _get_socket
    self.source_address)
  File "/opt/alt/python37/lib64/python3.7/socket.py", line 727, in create_connection
    raise err
  File "/opt/alt/python37/lib64/python3.7/socket.py", line 711, in create_connection
    sock = socket(af, socktype, proto)
  File "/opt/alt/python37/lib64/python3.7/socket.py", line 151, in __init__
    _socket.socket.__init__(self, family, type, proto, fileno)
OSError: [Errno 97] Address family not supported by protocol

Address family not supported by protocol Error

Заранее спасибо.

...