【发布时间】:2021-05-27 21:15:02
【问题描述】:
我正在尝试通过我的 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
以下是我的观点功能:
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, )
非常感谢任何帮助。请注意,我已经尝试过:
- 在 Gmail 中启用不太安全的应用按钮
- 然后,我禁用了安全性较低的应用,启用了 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
【问题讨论】:
-
你能分享完整的错误追溯吗
-
试试这个 smtp-relay.gmail.com 到 smtp.gmail.com
-
您的
EMAIL_HOST_PASSWORD设置看起来很奇怪,您确定密码正确吗?您是否还检查了您的电子邮件 gmail 设置中的启用来自不太安全的应用程序的访问设置? -
@c.grey 我已将回溯添加到问题描述中。我也试过 smtp.gmail.com 但没有运气。
-
@SLDem 安全性较低的应用程序也已启用。我在问题中使用了伪密码,在应用程序中我使用了正确的密码。
标签: python django django-rest-framework email