/*************************************************************************** * python auto send email * 声明: * 本文主要是记录如何使用python的smtplib发邮件,中间遇到授权密码和邮箱 * 密码不同的问题。 * * 2016-2-17 深圳 南山平山村 曾剑锋 **************************************************************************/ 一、参考文章: 163邮箱报错WARN: 535 Error: authentication failed.啥问题? http://www.zhihu.com/question/32009096 二、error: 1. 错误现象: (535, 'Error: authentication failed') 2. 解决办法: smtplib用的邮箱登入密码是授权密码,不是邮箱密码。授权密码需要在邮箱设置中设置,我用的是163的邮箱,所以需要在163邮箱中设置。 三、demo code: # encoding: utf-8 import smtplib sender = "zengjf42@163.com" receivers = ["64128306@qq.com"] message = """From: zengjf <zengjf42@163.com> To: zoro <64128306@qq.com> Subject: test email for python this is a test email. """ try: smtpObj = smtplib.SMTP() smtpObj.connect("smtp.163.com", "25") # 千万请注意下面的password是授权密码,不是邮箱的密码。 # 授权密码需要在163邮箱设置中设置。 state = smtpObj.login("zengjf42@163.com", "填入授权密码") if state[0] == 235: smtpObj.sendmail(sender, receivers, message) print "send email success" smtpObj.quit() except smtplib.SMTPException, e: print str(e)