标签:email django-forms python django
我有一个简单的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,“未验证发件人的地址-请参阅http://help.yahoo.com/l/us/yahoo/mail/original/manage/sendfrom-07.html”、“someone@gmail.com”)
编辑-我尝试将自己的ID myid@yahoo.com放在“电子邮件”字段中,并且可以正常工作.它似乎仅适用于我的电子邮件ID.
解决方法:
几乎所有公共邮件服务器仅允许在发件人标头中包含实际作者电子邮件的电子邮件.您正在尝试通过“发件人:some_user@email.com”发送电子邮件,但该电子邮件被拒绝了.确实,这很像您在Google上遇到的问题,但是Yahoo丢弃了一个错误,而不是默默地弄乱了标题.
我将用户的电子邮件放在这里的消息正文中,也许试图将其放入“回复至” header manually中.
附言通常最好对每个可能的函数使用命名关键字参数(在您的情况下为send_mail).它通常有助于避免愚蠢的参数顺序错误.
标签:email,django-forms,python,django 来源: https://codeday.me/bug/20191122/2058778.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。