[请教] python发送邮件失败,各位大侠帮忙看看

[请教] python发送邮件失败,各位大侠帮忙看看

发送邮件的代码如下:   
def send_email(host,src,des,subject,data,account,password):
     """ send the email to user """
     try:
       Msg ['Subject'] = subject
       Msg ['From'] = src
       Msg ['To'] = des
       Msg = MIMEText(data,_subtype='plain',_charset='gb2312')

       print Msg
       smtp = smtplib.SMTP(host)
       smtp.login(account,password)
       smtp.sendmail(src,des,Msg.as_string())
       smtp.close()
     except Exception,e:
       raise Exception, str(e)

每次执行到smtp.login那里就出错了,返回的错误是error: (535, 'Error: authentication failed')
我用的是smtp.163.com做测试的, 用户名和密码是绝对正确的.
不知道这是为什么,哪位兄弟知道原因,麻烦告知一下,谢谢.
测试代码如下:
host = 'smtp.163.com'
src = "xxx@163.com"
des   = 'xxx@163.com
subject = "hi "
data = "this is test!!"
username = "xxx@163.com"
password = "yourkey"
try:
     send_email(host,src,des,subject,data,username,password)
     print 'success!!'
except Exception,e:
     print "error: %s" % str(e)
我试了一下,这不是程序的问题。我用我们自己的邮件服务器的HOST,账号,密码,能正常发信的
呵呵,常见现象,我开发的系统也遇到了,这是服务器本身设置问题。
去掉login那行认证,一般就可以了,这是relay方式。
恩,这不错啊
把这行代码
smtp.esmtp_features["auth"]="LOGIN PLAIN"
加在
smtp.login(account,password)
之前