【问题标题】:SMTPSenderRefused at /submit_contact_form/ - 5.5.1 Authentication RequiredSMTPSenderRefused at /submit_contact_form/ - 5.5.1 需要验证
【发布时间】:2015-09-18 03:47:26
【问题描述】:

我正在尝试将提交的表单数据发送到电子邮件地址,但收到此错误。

这是我的意见.py

def contactform(request):
    contact_form = ContactForm(data=request.POST)
    if contact_form.is_valid():
            data = contact_form.cleaned_data
            send_mail(subject=data['subject'], 
                      message=data['message'], 
                      from_email=data['email'],
                      recipient_list=['jzakaria2000@gmail.com'], 
                      fail_silently=False)
            return HttpResponseRedirect('/')

settings.py

EMAIL_USE_TLS = True
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_PORT = 587
EMAIL_HOST_USER = 'zetapsiuchicago@gmail.com'
EMAIL_HOST_PASSWORD = os.getenv('WEBSITE_PASS')

我已尝试在谷歌上搜索此错误的解决方案,但迄今为止均未成功。如果有人可以帮助我解决这个问题或为我指明正确的方向,我将不胜感激

【问题讨论】:

    标签: python django smtp


    【解决方案1】:

    以纯文本形式添加密码将删除您的 5.5.1 Authentication Required Error。

    假设你的密码是 123weq 添加为

    EMAIL_HOST_PASSWORD = '123weq'
    

    setting.py

    EMAIL_USE_TLS = True
    EMAIL_HOST = 'smtp.gmail.com'
    EMAIL_PORT = 587
    EMAIL_HOST_USER = 'zetapsiuchicago@gmail.com'
    EMAIL_HOST_PASSWORD = 'password of zetapsiuchicago@gmail.com in plain text'
    

    【讨论】:

    • 如以纯文本形式添加密码?
    • 这有什么不同?我已将密码设置为环境变量,只需使用 os.getenv('WEBSITE_PASS') 即可获取它
    • 可能是您的 pass 错误或格式不正确或 getenv 无法访问 pass 但纯文本密码对您有效。
    • 不建议将密码作为纯文本在代码存储库中作为最佳实践。所以虽然这就是它的工作原理..我仍然想知道为什么作为环境变量读取的密码不起作用..当这是读取密码的推荐方式时
    猜你喜欢
    • 2020-03-25
    • 1970-01-01
    • 2014-01-13
    • 1970-01-01
    • 1970-01-01
    • 2020-08-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多