解决Python不能发邮件问题

今天一下午就在搞它了。

先附上源代码:

#coding:utf-8
import smtplib
from email.mime.text import MIMEText
from email.header import Header

sender = "[email protected]"
receiver = "[email protected]" 
subject = "测试邮件"
smtpserver = "smtp.163.com"

user = '[email protected]'
password = 'mima'

msg = MIMEText('你好','text','utf-8')
msg['Subject'] = Header(subject,'utf-8')
msg['From'] = '[email protected]'#这句和下面那句话随便加不加都行。
msg['To'] = '[email protected]'
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又粘贴了回去,发现。。。原来不改也可以,这是为什么?

  额 , 难道是侥幸?醉了醉了。

贴上大神写的一些发邮件实例:http://www.cnblogs.com/lonelycatcher/archive/2012/02/09/2343463.html





你可能感兴趣的:(Python学习笔记)