簡體   English   中英

使用 Django 通過 gmail 發送 email 時發生 ConnectionRefusedError

[英]ConnectionRefusedError while sending email through gmail using Django

我正在嘗試通過我的 Gmail 帳戶為我的 Django 應用程序發送電子郵件。 我在 settings.py 文件中使用以下配置。

EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST_USER = 'username@gmail.com'
EMAIL_HOST = 'smtp.gmail.com' # tried smtp-relay.gmail.com also
EMAIL_PORT = '587'
EMAIL_USE_TLS = True
EMAIL_HOST_PASSWORD = 'Gmail password / app password' 

這方面的導入語句:

from django.core.mail import send_mail, EmailMessage
from django.conf import settings

以下是我的觀點 function:

    message = EmailMessage(subject=email_subject, body=email_message, from_email=settings.EMAIL_HOST_USER,  to=[email, 'username@gmail.com'])
    message.send(fail_silently=False)

我也試過這個:

send_mail(email_subject, email_message , settings.EMAIL_HOST_USER, [email, 'username@gmail.com'] , fail_silently=False, )

任何幫助深表感謝。 請注意,我已經嘗試過:

  1. 在 Gmail 中啟用不太安全的應用程序按鈕
  2. 然后,我禁用了不太安全的應用程序,啟用了 2 因素身份驗證並使用 Google 的應用程序密碼選項。

這是完整的回溯:

    Traceback (most recent call last):
  File "/Users/jatinsinghbhati/Documents/workspaces/djangoenv/lib/python3.9/site-packages/django/core/handlers/exception.py", line 47, in inner
    response = get_response(request)
  File "/Users/jatinsinghbhati/Documents/workspaces/djangoenv/lib/python3.9/site-packages/django/core/handlers/base.py", line 181, in _get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "/Users/jatinsinghbhati/Documents/workspaces/pollsite/signup/views.py", line 40, in index
    message.send(fail_silently=False)
  File "/Users/jatinsinghbhati/Documents/workspaces/djangoenv/lib/python3.9/site-packages/django/core/mail/message.py", line 284, in send
    return self.get_connection(fail_silently).send_messages([self])
  File "/Users/jatinsinghbhati/Documents/workspaces/djangoenv/lib/python3.9/site-packages/django/core/mail/backends/smtp.py", line 102, in send_messages
    new_conn_created = self.open()
  File "/Users/jatinsinghbhati/Documents/workspaces/djangoenv/lib/python3.9/site-packages/django/core/mail/backends/smtp.py", line 62, in open
    self.connection = self.connection_class(self.host, self.port, **connection_params)
  File "/Users/jatinsinghbhati/.pyenv/versions/3.9.0/lib/python3.9/smtplib.py", line 253, in __init__
    (code, msg) = self.connect(host, port)
  File "/Users/jatinsinghbhati/.pyenv/versions/3.9.0/lib/python3.9/smtplib.py", line 339, in connect
    self.sock = self._get_socket(host, port, self.timeout)
  File "/Users/jatinsinghbhati/.pyenv/versions/3.9.0/lib/python3.9/smtplib.py", line 310, in _get_socket
    return socket.create_connection((host, port), timeout,
  File "/Users/jatinsinghbhati/.pyenv/versions/3.9.0/lib/python3.9/socket.py", line 843, in create_connection
    raise err
  File "/Users/jatinsinghbhati/.pyenv/versions/3.9.0/lib/python3.9/socket.py", line 831, in create_connection
    sock.connect(sa)
ConnectionRefusedError: [Errno 61] Connection refused
[25/Feb/2021 19:38:20] "POST /signup/ HTTP/1.1" 500 101708

它應該是

電子郵件端口 = 587

但不是

EMAIL_PORT = '587'

端口號是 integer 不是字符串。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM