django 发送邮件认证错误 但是使用 stmp 模块没有问题,怎么回事?

2016 年 8 月 2 日
 scott123

使用 django 发邮件一直报认证错误 (535, 'Error: authentication failed'),但是用 stmp 模块登录发送邮件没有问题,使同一个账户,密码也使用一样的,但是用 django 发送的时候会报错怎么回事? stmp 代码如下,可以正常的发送

 msg['to'] = 'xxxx@qq.com'
 msg['from'] = 'xxxx1234@163.com'
 msg['subject'] = 'receive or ship parts'
 try:
     server = smtplib.SMTP('smtp.163.com')
     server.login('xxxx1234@163.com','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 = 'xxxx1234@163.com'

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', 'xxxx123@163.com', 'xxxxxxx@qq.com'
        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
2845 次点击
所在节点    Python
7 条回复
julyclyde
2016 年 8 月 2 日
抓包看一下就知道了
uniquecolesmith
2016 年 8 月 2 日
SMTP 验证用的不是密码,是授权码
SErHo
2016 年 8 月 2 日
猜测:直接发没有用 tls , Django 设置使用 tls 了,改成 False 试试呢?
scott123
2016 年 8 月 2 日
@SErHo 已经试过设置 tls 为 False ,不管用。
scott123
2016 年 8 月 2 日
@uniquecolesmith 即使是授权码也不对啊,我用的是 163 要求专门给客户端设置的密码,也不是邮箱密码,我也试过邮箱密码但是不行啊。
KoleHank
2016 年 8 月 3 日
建议用个没有二次验证或授权码的邮箱,不要用 163 的
或者用 163 的旧账户,我很早的邮箱账户开启 smtp 这些的没用授权码,那个时候还没有授权码一说,那一类账户应该能正常发送邮件的
scott123
2016 年 11 月 5 日
找到原因了,重新设置一下单独 smtp 客户端密码就可以了。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/296681

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX