SMTPSenderRefused - 553,来自未经验证的地址 - Django Email Forms

时间:2013-12-27 21:36:19

标签: python django email django-forms

我有一个简单的Django联系表单(用户电子邮件,消息)。我已经配置了一个Gmail服务器并且它正在运行,但它总是用this answer指出的settings.py中列出的地址重写了地址。所以我使用Yahoo Mail服务器配置了我的设置。

这是我的 settings.py 文件

EMAIL_HOST = 'smtp.mail.yahoo.com'
EMAIL_HOST_USER = 'myid@yahoo.com'
EMAIL_HOST_PASSWORD = 'mypass'
EMAIL_PORT = 587
EMAIL_USE_TLS = True 

这是我的 views.py

def contact(request):
    if request.method == 'POST':
        form = ContactForm(request.POST)
        if form.is_valid():
            cd = form.cleaned_data
            send_mail(
                'Contact Us',
                cd['message'],
                cd.get('email', ''),
                ['myid@yahoo.com'],
            )
            return HttpResponseRedirect('thanks')
    else:
        form = ContactForm()
    return render(request, 'hunt/contact.html', {'form': form})

现在我收到SMTPSenderRefused例外。

例外值 - (553, 'From address not verified - see http://help.yahoo.com/l/us/yahoo/mail/original/manage/sendfrom-07.html', 'someone@gmail.com')

编辑 - 我尝试将自己的ID myid@yahoo.com放入电子邮件字段中,然后才有效。它似乎只适用于我的电子邮件ID。

1 个答案:

答案 0 :(得分:3)

几乎所有公共邮件服务器都只允许在From标题中包含具有实际作者电子邮件的电子邮件。您正尝试使用" From:some_user@email.com"发送电子邮件,该邮件被拒绝。真的,这很像你在谷歌的问题,但是雅虎会丢失一个错误,而不是默默地搞乱标题。

我已将用户的电子邮件放入邮件正文中,并可能尝试将其放入“回复”中。 header manually

P.S。对每个可能的函数使用命名关键字参数通常更好(在您的情况下 - send_mail)。它通常有助于避免愚蠢的论点订单错误。