socket.gaierror: [Errno 10047] сбой getaddrinfo - PullRequest
2 голосов
/ 18 апреля 2020

Я много искал, но не нашел правильного решения. Похоже, что раньше никто не сталкивался с этой проблемой.

Обратите внимание, что мой socket.gaierror [Errno 10047], что означает "Семейство адресов, не поддерживаемое семейством протоколов"

Ошибка, которую я получаю, это когда я попробуйте интегрировать SMTP в мой проект, чтобы я мог отправлять письма.

  File "C:\Users\Ubaid Parveez\AppData\Local\Programs\Python\Python36\lib\smtplib.py", line 336, in connect
    self.sock = self._get_socket(host, port, self.timeout)
  File "C:\Users\Ubaid Parveez\AppData\Local\Programs\Python\Python36\lib\smtplib.py", line 307, in _get_socket
    self.source_address)
  File "C:\Users\Ubaid Parveez\AppData\Local\Programs\Python\Python36\lib\socket.py", line 705, in create_connection
    for res in getaddrinfo(host, port, 1, SOCK_STREAM):
  File "C:\Users\Ubaid Parveez\AppData\Local\Programs\Python\Python36\lib\socket.py", line 748, in getaddrinfo
    for res in _socket.getaddrinfo(host, port, family, type, proto, flags):
socket.gaierror: [Errno 10047] getaddrinfo failed

Вот мои настройки для smtp

SERVER_EMAIL = 'abc@example.com'
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_HOST_PASSWORD = 'password_here'
EMAIL_HOST_USER = SERVER_EMAIL
EMAIL_PORT = 587
EMAIL_USE_TLS = True
DEFAULT_FROM_EMAIL = EMAIL_HOST_USER

Вот мой взгляд на отправку электронного письма

class ContactView(generic.TemplateView):
    template_name = "contact.html"

    def post(self,request,*args,**kwargs):
       send_mail(
         'Subject here',
         'Here is the message.',
         EMAIL_HOST_USER,
         ['to@example.com'],
         fail_silently=False,
      )

И когда я использую функцию send_mail () на мой взгляд. Я получаю эту ошибку сокета. Эта ошибка исчезнет, ​​если я изменю свой почтовый сервер на «django .core.mail.backends.console.EmailBackend».

...