Im attempting to setup email verification and receive the gaierror

I am on a Mac, I have doubled check the gmail credentials.

here is something from stack overflow but, it goes over my head. not even sure if its pertinent.

here is the stack trace:

Environment:


Request Method: POST
Request URL: http://127.0.0.1:8001/account/register

Django Version: 4.2.11
Python Version: 3.11.5
Installed Applications:
['django.contrib.admin',
 'django.contrib.auth',
 'django.contrib.contenttypes',
 'django.contrib.sessions',
 'django.contrib.messages',
 'django.contrib.staticfiles',
 'store',
 'cart',
 'mathfilters',
 'account',
 'crispy_forms']
Installed Middleware:
['django.middleware.security.SecurityMiddleware',
 'django.contrib.sessions.middleware.SessionMiddleware',
 'django.middleware.common.CommonMiddleware',
 'django.middleware.csrf.CsrfViewMiddleware',
 'django.contrib.auth.middleware.AuthenticationMiddleware',
 'django.contrib.messages.middleware.MessageMiddleware',
 'django.middleware.clickjacking.XFrameOptionsMiddleware']



Traceback (most recent call last):
  File "/Users/joelburns/DjangoWebstore/djangoWebstoreVenv/lib/python3.11/site-packages/django/core/handlers/exception.py", line 55, in inner
    response = get_response(request)
               ^^^^^^^^^^^^^^^^^^^^^
  File "/Users/joelburns/DjangoWebstore/djangoWebstoreVenv/lib/python3.11/site-packages/django/core/handlers/base.py", line 197, in _get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/joelburns/DjangoWebstore/ecommerce/account/views.py", line 47, in register
    user.email_user(subject=subject, message=message)
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/joelburns/DjangoWebstore/djangoWebstoreVenv/lib/python3.11/site-packages/django/contrib/auth/models.py", line 402, in email_user
    send_mail(subject, message, from_email, [self.email], **kwargs)
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/joelburns/DjangoWebstore/djangoWebstoreVenv/lib/python3.11/site-packages/django/core/mail/__init__.py", line 87, in send_mail
    return mail.send()
           ^^^^^^^^^^^
  File "/Users/joelburns/DjangoWebstore/djangoWebstoreVenv/lib/python3.11/site-packages/django/core/mail/message.py", line 298, in send
    return self.get_connection(fail_silently).send_messages([self])
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/joelburns/DjangoWebstore/djangoWebstoreVenv/lib/python3.11/site-packages/django/core/mail/backends/smtp.py", line 127, in send_messages
    new_conn_created = self.open()
                       ^^^^^^^^^^^
  File "/Users/joelburns/DjangoWebstore/djangoWebstoreVenv/lib/python3.11/site-packages/django/core/mail/backends/smtp.py", line 85, in open
    self.connection = self.connection_class(
                      
  File "/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/smtplib.py", line 255, in __init__
    (code, msg) = self.connect(host, port)
                  ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/smtplib.py", line 341, in connect
    self.sock = self._get_socket(host, port, self.timeout)
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/smtplib.py", line 312, in _get_socket
    return socket.create_connection((host, port), timeout,
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/socket.py", line 827, in create_connection
    for res in getaddrinfo(host, port, 0, SOCK_STREAM):
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/socket.py", line 962, in getaddrinfo
    for res in _socket.getaddrinfo(host, port, family, type, proto, flags):
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Exception Type: gaierror at /account/register
Exception Value: [Errno 8] nodename nor servname provided, or not known

The stack trace points to this as the source of the error:

def register(request):

    form = CreateUserForm()

    if request.method == 'POST':

        form = CreateUserForm(request.POST)

        if form.is_valid():

            user = form.save()

            user.is_active = False

            user.save()

            # email verification setup

            current_site = get_current_site(request)

            subject = 'Account Verification Email'

            message = render_to_string('account/registration/email-verification.html', 

            {
                'user': user, 
                'domain': current_site.domain ,
                'uid': urlsafe_base64_encode(force_bytes(user.pk)),
                'token': user_tokenizer_generate.make_token(user),


            })
            
            user.email_user(subject=subject, message=message)            

            return redirect ('email-verification-sent')
        
    context = {'form':form}

    return render(request, 'account/registration/register.html', context=context)


def email_verification(request, uidb64, token):

    unique_id = force_str(urlsafe_base64_decode(uidb64))
    user = User.objects.get(pk=unique_id)

    # success
    if user and user_tokenizer_generate.check_token(user, token):

        user.is_active = True

        user.save()

        return redirect('email-verification-success')

    # failed

    else:
        
        return redirect('email-verification-failed')


def email_verification_sent(request):
    
    return render(request, 'account/registration/email-verification-sent.html')


def email_verification_success(request):
    
    return render(request, 'account/registration/email-verification-success.html')


def email_verification_failed(request):
    
    return render(request, 'account/registration/email-verification-failed.html')

here is the email configurations in the settings file:

EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_PORT = '587'
EMAIL_USE_TLS = 'True'

EMAIL_HOST = '#########' #admin email
EMAIL_HOST_PASSWORD = '##########'

isn’t this a typo? it should be EMAIL_HOST_USER ?

Ugh, you’re right, I went over this at least 4 times. Thank you for pointing it out.