使用 django 发邮件一直报认证错误 (535, 'Error: authentication failed'),但是用 stmp 模块登录发送邮件没有问题,使同一个账户,密码也使用一样的,但是用 django 发送的时候会报错怎么回事? stmp 代码如下,可以正常的发送
msg['to'] = '[email protected]'
msg['from'] = '[email protected]'
msg['subject'] = 'receive or ship parts'
try:
server = smtplib.SMTP('smtp.163.com')
server.login('[email protected]','xxxxx555')
server.sendmail(msg['from'],msg['to'],msg.as_string())
server.quit()
print 'successfully'
except Exception, e:
print str(e)
if __name__=='__main__':
sendmail(item_list,meta_dict)
django setting 代码如下:
EMAIL_USE_TLS = True
EMAIL_HOST = 'smtp.163.com'
EMAIL_HOST_USER = '[email protected]'
EMAIL_HOST_PASSWORD = 'xxxxx555'
EMAIL_PORT = 25
email 函数如下:
template_html = get_template('email.html')
context = Context({'user': user, 'other_info': info})
if not user.e
try:
subject, from_email, to = 'hello world', '[email protected]', '[email protected]'
text_content = 'This is an import message.'
html_content = '<p>This is an <strong>important</strong> message.</p>'
msg = EmailMultiAlternatives(subject, text_content, from_email, [to])
msg.attach_alternative(html_content, "text/html")
msg.send()
print 'sucessful'
except Exception, e:
print 'failed', e
1
julyclyde 2016-08-02 23:06:57 +08:00
抓包看一下就知道了
|
2
uniquecolesmith 2016-08-02 23:16:53 +08:00
SMTP 验证用的不是密码,是授权码
|
3
SErHo 2016-08-02 23:18:04 +08:00 via iPad
猜测:直接发没有用 tls , Django 设置使用 tls 了,改成 False 试试呢?
|
5
scott123 OP @uniquecolesmith 即使是授权码也不对啊,我用的是 163 要求专门给客户端设置的密码,也不是邮箱密码,我也试过邮箱密码但是不行啊。
|
6
KoleHank 2016-08-03 08:42:31 +08:00
建议用个没有二次验证或授权码的邮箱,不要用 163 的
或者用 163 的旧账户,我很早的邮箱账户开启 smtp 这些的没用授权码,那个时候还没有授权码一说,那一类账户应该能正常发送邮件的 |
7
scott123 OP 找到原因了,重新设置一下单独 smtp 客户端密码就可以了。
|