没有登录
中国开发网: 论坛: 程序员情感CBD: 贴子 315552
leejd
helo或者ehlo指令
163和新浪的服务器需要helo或者ehlo指令,记得新浪的是要求必须放到
第一个指令来执行。而且他们对一些认证方式不支持,所以python的
smtplib自己判断并使用的auth方式不对,导致没法登录。我以前的解决
方法是使用LOGIN指令登录,比如这样:

def send(smtpserver, fromaddr, toaddr, user, pwd, msg):
server = smtplib.SMTP(smtpserver)
server.set_debuglevel(1)
server.ehlo('xyb')
#server.login(user, pwd)
server.docmd("AUTH",
"%s %s" % ("LOGIN", encode_base64(user, eol="")))
server.docmd(encode_base64(pwd, eol=""))
server.sendmail(fromaddr, toaddr, msg)
server.quit()










python smtplib提供的操作接口是基于公共标准的操作接口。(由help(smtplib)得到)
而网易的smtp服务器作为商业的应用,在某些地方(如认证部分)做了相应的调整,这些调整导致smtplib的接口无法适应。

可执行
telnet smtp.163.com 25
EHLO ....
得到163的smtp相关信息...

相关信息:


欢迎光临本社区,您还没有登录,不能发贴子。请在 这里登录