使用 namecheap 私人电子邮件在 django 应用程序中“中继访问被拒绝”

问题描述 投票:0回答:1

所以我有一个 Django 应用程序,可以向想要注册帐户的用户发送确认电子邮件。看起来像这样

views.py

def send_activation_email(user, request):
    current_site = get_current_site(request)
    email_subject = "Activation Email"
    context = {"user": user, 
                "domain": current_site,
                'uid': urlsafe_base64_encode(force_bytes(user.pk)), 
                'token': generate_token.make_token(user)
                }
    email_body = render_to_string('email/activate.html',context)

    email = EmailMessage(subject=email_subject, body=email_body, from_email=settings.EMAIL_FROM_USER, to=[user.email])

    email.send()

并且

settings.py
看起来像这样

EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = 'mail.privateemail.com'
EMAIL_FROM_USER = '[email protected]'
EMAIL_HOST_PASSWORD = '[redacted]'
EMAIL_PORT = 587
EMAIL_USE_TLS = True
EMAIL_USE_SSL = False

问题是,当我在用户创建帐户时尝试发送电子邮件时,出现此错误

SMTPRecipientsRefused at /register/

{'[email protected]': (554, b'5.7.1 <[email protected]>: Relay access denied')}

我确定的是:

  • 这不是私人名称廉价电子邮件的问题,来自该电子邮件 我仍然可以发送电子邮件,只是不是从我的网站发送电子邮件。
  • 我也知道问题不是因为 gmail 不喜欢我的电子邮件,因为 当电子邮件发送到 yahoo.com 域时出现同样的错误。
  • 我也知道问题不在于
    settings.py
    未连接 到
    views.py
  • 我也知道所有详细信息都输入正确

据我所知并与 namecheap 支持人员交谈,该问题很可能是由电子邮件标题引起的,但据我所知,我似乎找不到任何问题。

如果有人能够帮助我,我将非常感激。我发送电子邮件时遇到问题大约 9 天了

python django email
1个回答
0
投票

我认为您需要在

EMAIL_HOST_USER
中添加
settings.py
的值。没有它,Django 将不会尝试进行身份验证。这是 docs 中的相关内容:

EMAIL_HOST_USER

默认值:''(空字符串)

用于

EMAIL_HOST
中定义的 SMTP 服务器的用户名。 如果为空,Django 将不会尝试身份验证。

用户名应与您已经提供的密码设置相匹配(即有效的私人电子邮件帐户)。

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.