/investor/signup 处出现 SMTPConnectError (421,b'服务不可用(连接被拒绝,连接太多)')
这个错误已经延迟了好几天了,我在使用 django 发送电子邮件时真的陷入困境,而且我是 django 的初学者,为什么我对如何解决这个问题没有太多想法,请有人帮忙吗?
设置.py
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_PORT = 587
EMAIL_HOST_USER = '[email protected]'
EMAIL_HOST_PASSWORD = 'xxxxxxxxxxxxxxxxxxxx'
EMAIL_USE_TLS = True
我不知道您是否找到了这个错误的解决方案,但巧合的是,我最近遇到了同样的问题......这是对我有用的解决方案。我的假设是您已经知道如何从 gmail smpt 生成秘密密码。
我尝试使用 EmailMessage 类和 send_mail 函数。两者都完美运行。
我将分享我的settings.py和views.py文件的部分内容。希望它也适合你......干杯!
settings.py
# smtp configuration
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_PORT = 587
EMAIL_HOST_USER = '[email protected]'
EMAIL_HOST_PASSWORD = 'xxxxxxxxxxxxxxxx'
EMAIL_USE_TLS = True
views.py
# user activation
current_site = get_current_site(request)
email_subject = 'Please activate your account',
message = render_to_string('accounts/account_verification_email.html', {
'user': user,
'domain': current_site,
'uid': urlsafe_base64_encode(force_bytes(user.pk)),
'token': default_token_generator.make_token(user)
})
from_email = settings.EMAIL_HOST_USER
recipient = [email]
send_email = EmailMessage( email_subject, message, from_email, recipient)
send_email.send(fail_silently=False)
subject = 'This is a mail from IfeCog'
message = f'hi {firstname}, this mail is about your registration'
from_email = settings.EMAIL_HOST_USER
recipient_list = [email]
send_mail(subject, message, from_email, recipient_list, fail_silently=False)
您是否尝试过启用“不太安全的应用程序访问”,转到您的 Gmail 主机“管理帐户”->“安全”,确保您已启用“不太安全的应用程序访问”。
要解决此问题,最简单的方法是使用 SendGrid,因为他们的服务器不会抛出所有常规错误 gmail 简单邮件传输协议抛出。要开始在 django 中使用 SendGrid,这是最好的教程 Article 1 和 Official SendGrid X Django Docs
要解决这个问题非常具有挑战性,但答案很简单,更改 EMAIL_USE_TLS = False 并设置 EMAIL_USE_SSL = True,并将端口号更改为 465