今天一下午就在搞它了。
先附上源代码:
#coding:utf-8
import smtplib
from email.mime.text import MIMEText
from email.header import Header
sender = "xx@163.com"
receiver = "yy@qq.com"
subject = "测试邮件"
smtpserver = "smtp.163.com"
user = 'xx@163.com'
password = 'mima'
msg = MIMEText('你好','text','utf-8')
msg['Subject'] = Header(subject,'utf-8')
msg['From'] = 'xx@163.com'#这句和下面那句话随便加不加都行。
msg['To'] = 'yy@qq.com'
smtp = smtplib.SMTP()
smtp.connect('smtp.163.com')
#smtp.connect('smtp.exmail.qq.com')#使用qq邮箱登录发邮件时用这个。
smtp.login(user,password)
smtp.sendmail(sender,receiver,msg.as_string())
smtp.quit()开始琢磨了半天,总是出现这个错误
SMTPAuthenticationError: (535, 'Authentication failed')
后天网上查了下http://blog.csdn.net/moxien/article/details/4273923
需要这样修改才能发,
按照网上的在smtplib.py上修改:
elif authmethod == AUTH_LOGIN:
#modi start 添加代碼
(code, resp) = self.docmd("AUTH", AUTH_LOGIN)
if code == 334:
(code, resp) = self.docmd(base64.encodestring(user)[:-1])
if code == 334:
(code, resp) = self.docmd(base64.encodestring(password)[:-1])但是还是没能成功,好纳闷,下午就耗在这了。
再后来继续百度呗,看了一个又一个文章,发现:
http://blog.csdn.net/bruce128/article/details/8761949
这个博主是正解,原来还需要开启下QQ邮箱的smtp服务器设置!!!我擦勒。
。。。好吧,屁颠屁颠改了,哈哈 果然好了 谢谢博主啊~~~
后来我把原版的smtplib.py又粘贴了回去,发现。。。原来不改也可以,这是为什么?
额 , 难道是侥幸?醉了醉了。