import smtplib
from email.mime.text import MIMEText
mailto_list=["xxx@163.com"]
mail_host="smtp.163.com"
mail_user="xxxx@163.com"
mail_pass="xxx"
def send_mail(to_list,sub,content):
me="hello"
msg = MIMEText(content,_subtype='html',_charset='gb2312')
msg['Subject'] = sub
msg['From'] = me
msg['To'] = ";".join(to_list)
try:
s = smtplib.SMTP()
s.connect(mail_host)
s.login(mail_user,mail_pass)
s.sendmail(me, to_list, msg.as_string())
s.close()
return True
except Exception, e:
print str(e)
return False
if __name__ == '__main__':
if send_mail(mailto_list,"hello","<a href='http://www.cnblogs.com/'>hello</a>"):
print "success"
else:
print "fail"
认证出了问题。SMTP有两种,一种强制要求验证,称为ESMTP。还有一种不要求验证,早的版本。
确认一下该SMTP是否要求验证?
我解决了 把mail_pass="xxx" 里面的xxx换成163邮箱里面的POP3/SMPT里面的授权码 亲测有效
百度都是说认证出了问题,但是密码和账号都是对的,而且邮箱也开启了smtp服务,请帮帮忙啊。是不是还有什么细节。
163不一定支持你这么做,估计光有邮箱,密码不够
有的时候是通过账号和密码验证
有的时候是通过邮箱地址和密码验证,你试试用 mail_user 不要加@163.com
我也遇到同样的问题,不知楼主解决了吗?
碰到一样的问题。并且企业邮箱还强制开始了微信安全登录,使用授权码去登录,一直都是提示这个。不明白是怎么回事!