Python论坛  - 讨论区

标题:[python-chinese] 一个关于smtplib的问题

2004年05月13日 星期四 15:16

Frank Zheng hust_zxq524 at 263.net
Thu May 13 15:16:22 HKT 2004

smtplib是python自带的module,是封装了smtp,esmtp协议的模块
我试着用了一下,发现在验证用户名和密码的时候出了一些问题
下面是一些测试代码
>>> import smtplib
>>> s = smtplib.SMTP()
>>> s.set_debuglevel(1)
>>> s.connect('smtp.263.net')
connect: ('smtp.263.net', 25)
connect: ('smtp.263.net', 25)
reply: '220 Welcome to coremail System(With Anti-Spam) 2.1 for 263(040326)\r\n'
reply: retcode (220); Msg: Welcome to coremail System(With Anti-Spam) 2.1 for 263(040326)
connect: Welcome to coremail System(With Anti-Spam) 2.1 for 263(040326)
(220, 'Welcome to coremail System(With Anti-Spam) 2.1 for 263(040326)')
>>> s.login('hust_zxq524','*****')
send: 'ehlo pc11\r\n'
reply: '250-smtp.263.net\r\n'
reply: '250-PIPELINING\r\n'
reply: '250-SIZE 30720000\r\n'
reply: '250-ETRN\r\n'
reply: '250-AUTH LOGIN\r\n'
reply: '250-AUTH=LOGIN\r\n'
reply: '250-XVERP\r\n'
reply: '250 8BITMIME\r\n'
reply: retcode (250); Msg: smtp.263.net
PIPELINING
SIZE 30720000
ETRN
AUTH LOGIN
AUTH=LOGIN
XVERP
8BITMIME
AuthMethod: None
Traceback (most recent call last):
  File "", line 1, in ?
  File "D:\tools\Python22\lib\smtplib.py", line 540, in login
    raise SMTPException("No suitable authentication method found.")
SMTPException: No suitable authentication method found.

然后我看了smtplib的代码,发现它支持两种认证方式,"PLAIN" 和 "CRAM-MD5",采用哪种需要根据发EHLO 命令给mailserver后,server的回复信息来确定(见blue字部分), 所以有效的回复应该是:
AUTH PLAIN CRAM-MD5 
或者至少有一种。
而这里的AUTH LOGIN,我google了一下,发现某人说了这样一段话:

"本质上AUTH PLAIN和AUTH LOGIN是一样的 
用户名和口令都是base64编码的明文,只不过协议命令不一样罢了 

因此要说他们的区别就必须知道SASL协议了: 

SASL协议里面并没有定义AUTH LOGIN,而是定义了与之相同的AUTH PLAIN 
但偏偏Oultook自创AUTH LOGIN,谁让MS太NB,因此sasl的一些实现版本里面就有了AUTH LOGIN
"
然后outlook在发邮件的时候是这样做的:(在发完ehlo命令以后)
AUTH LOGIN
334 VXNlcm5hbWU6                      (Base64解码后: Username:)
Ymh3YW5n                              (Base64编码前: bhwang)
334 UGFzc3dvcmQ6                      (Base64解码后: Password:)
bXlwYXNzd29yZCFteXBhc3N3b3JkISE=      (Base64编码前: ********)
235 Authentication successful

以上验证过程中都没有加密数据,:(
我试了好几个网站,263,sina,sohu都是这样的
这样看来smtplib这个模块是没法用了,我用的是2.2,不知道2.3怎么样?

Frank
Thanks



-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.exoweb.net/pipermail/python-chinese/attachments/20040513/a5c19b42/attachment.html

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2004年05月13日 星期四 16:06

黎达文 ldw at suntektech.com
Thu May 13 16:06:37 HKT 2004

既然代码都有了,改一下它的实现不就行啦?!

  _____  

发件人: python-chinese-bounces at lists.python.cn
[mailto:python-chinese-bounces at lists.python.cn] 代表 Frank Zheng
发送时间: 2004年5月13日 15:16
收件人: python-chinese at lists.python.cn
主题: [python-chinese] 一个关于smtplib的问题


smtplib是python自带的module,是封装了smtp,esmtp协议的模块
我试着用了一下,发现在验证用户名和密码的时候出了一些问题
下面是一些测试代码
>>> import smtplib
>>> s = smtplib.SMTP()
>>> s.set_debuglevel(1)
>>> s.connect('smtp.263.net')
connect: ('smtp.263.net', 25)
connect: ('smtp.263.net', 25)
reply: '220 Welcome to coremail System(With Anti-Spam) 2.1 for
263(040326)\r\n'
reply: retcode (220); Msg: Welcome to coremail System(With Anti-Spam) 2.1
for 263(040326)
connect: Welcome to coremail System(With Anti-Spam) 2.1 for 263(040326)
(220, 'Welcome to coremail System(With Anti-Spam) 2.1 for 263(040326)')
>>> s.login('hust_zxq524','*****')
send: 'ehlo pc11\r\n'
reply: '250-smtp.263.net\r\n'
reply: '250-PIPELINING\r\n'
reply: '250-SIZE 30720000\r\n'
reply: '250-ETRN\r\n'
reply: '250-AUTH LOGIN\r\n'
reply: '250-AUTH=LOGIN\r\n'
reply: '250-XVERP\r\n'
reply: '250 8BITMIME\r\n'
reply: retcode (250); Msg: smtp.263.net
PIPELINING
SIZE 30720000
ETRN
AUTH LOGIN
AUTH=LOGIN
XVERP
8BITMIME
AuthMethod: None
Traceback (most recent call last):
  File "", line 1, in ?
  File "D:\tools\Python22\lib\smtplib.py", line 540, in login
    raise SMTPException("No suitable authentication method found.")
SMTPException: No suitable authentication method found.
 
然后我看了smtplib的代码,发现它支持两种认证方式,"PLAIN" 和 "CRAM-MD5",采用
哪种需要根据发EHLO 命令给mailserver后,server的回复信息来确定(见blue字部分),
所以有效的回复应该是:
AUTH PLAIN CRAM-MD5 
或者至少有一种。
而这里的AUTH LOGIN,我google了一下,发现某人说了这样一段话:
 
"本质上AUTH PLAIN和AUTH LOGIN是一样的 
用户名和口令都是base64编码的明文,只不过协议命令不一样罢了 
 
因此要说他们的区别就必须知道SASL协议了: 
 
SASL协议里面并没有定义AUTH LOGIN,而是定义了与之相同的AUTH PLAIN 
但偏偏Oultook自创AUTH LOGIN,谁让MS太NB,因此sasl的一些实现版本里面就有了AUTH
LOGIN
"
然后outlook在发邮件的时候是这样做的:(在发完ehlo命令以后)
AUTH LOGIN
334 VXNlcm5hbWU6                      (Base64解码后: Username:)
Ymh3YW5n                              (Base64编码前: bhwang)
334 UGFzc3dvcmQ6                      (Base64解码后: Password:)
bXlwYXNzd29yZCFteXBhc3N3b3JkISE=      (Base64编码前: ********)
235 Authentication successful
 
以上验证过程中都没有加密数据,:(
我试了好几个网站,263,sina,sohu都是这样的
这样看来smtplib这个模块是没法用了,我用的是2.2,不知道2.3怎么样?
 
Frank
Thanks
 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.exoweb.net/pipermail/python-chinese/attachments/20040513/88a3f6a5/attachment.htm

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2004年05月13日 星期四 16:39

Frank Zheng hust_zxq524 at 263.net
Thu May 13 16:39:33 HKT 2004

是呀,我正有这个想法,只是觉得这么明显的问题,怎么以前没有人遇到过,还是人家国外的mail server跟咱们的都不一样。

----- Original Message ----- 
  From: 黎达文 
  To: python-chinese at lists.python.cn 
  Sent: Thursday, May 13, 2004 4:06 PM
  Subject: 答复: [python-chinese] 一个关于smtplib的问题


  既然代码都有了,改一下它的实现不就行啦?!



------------------------------------------------------------------------------
  发件人: python-chinese-bounces at lists.python.cn [mailto:python-chinese-bounces at lists.python.cn] 代表 Frank Zheng
  发送时间: 2004年5月13日 15:16
  收件人: python-chinese at lists.python.cn
  主题: [python-chinese] 一个关于smtplib的问题


  smtplib是python自带的module,是封装了smtp,esmtp协议的模块
  我试着用了一下,发现在验证用户名和密码的时候出了一些问题
  下面是一些测试代码
  >>> import smtplib
  >>> s = smtplib.SMTP()
  >>> s.set_debuglevel(1)
  >>> s.connect('smtp.263.net')
  connect: ('smtp.263.net', 25)
  connect: ('smtp.263.net', 25)
  reply: '220 Welcome to coremail System(With Anti-Spam) 2.1 for 263(040326)\r\n'
  reply: retcode (220); Msg: Welcome to coremail System(With Anti-Spam) 2.1 for 263(040326)
  connect: Welcome to coremail System(With Anti-Spam) 2.1 for 263(040326)
  (220, 'Welcome to coremail System(With Anti-Spam) 2.1 for 263(040326)')
  >>> s.login('hust_zxq524','*****')
  send: 'ehlo pc11\r\n'
  reply: '250-smtp.263.net\r\n'
  reply: '250-PIPELINING\r\n'
  reply: '250-SIZE 30720000\r\n'
  reply: '250-ETRN\r\n'
  reply: '250-AUTH LOGIN\r\n'
  reply: '250-AUTH=LOGIN\r\n'
  reply: '250-XVERP\r\n'
  reply: '250 8BITMIME\r\n'
  reply: retcode (250); Msg: smtp.263.net
  PIPELINING
  SIZE 30720000
  ETRN
  AUTH LOGIN
  AUTH=LOGIN
  XVERP
  8BITMIME
  AuthMethod: None
  Traceback (most recent call last):
    File "", line 1, in ?
    File "D:\tools\Python22\lib\smtplib.py", line 540, in login
      raise SMTPException("No suitable authentication method found.")
  SMTPException: No suitable authentication method found.

  然后我看了smtplib的代码,发现它支持两种认证方式,"PLAIN" 和 "CRAM-MD5",采用哪种需要根据发EHLO 命令给mailserver后,server的回复信息来确定(见blue字部分), 所以有效的回复应该是:
  AUTH PLAIN CRAM-MD5 
  或者至少有一种。
  而这里的AUTH LOGIN,我google了一下,发现某人说了这样一段话:

  "本质上AUTH PLAIN和AUTH LOGIN是一样的 
  用户名和口令都是base64编码的明文,只不过协议命令不一样罢了 

  因此要说他们的区别就必须知道SASL协议了: 

  SASL协议里面并没有定义AUTH LOGIN,而是定义了与之相同的AUTH PLAIN 
  但偏偏Oultook自创AUTH LOGIN,谁让MS太NB,因此sasl的一些实现版本里面就有了AUTH LOGIN
  "
  然后outlook在发邮件的时候是这样做的:(在发完ehlo命令以后)
  AUTH LOGIN
  334 VXNlcm5hbWU6                      (Base64解码后: Username:)
  Ymh3YW5n                              (Base64编码前: bhwang)
  334 UGFzc3dvcmQ6                      (Base64解码后: Password:)
  bXlwYXNzd29yZCFteXBhc3N3b3JkISE=      (Base64编码前: ********)
  235 Authentication successful

  以上验证过程中都没有加密数据,:(
  我试了好几个网站,263,sina,sohu都是这样的
  这样看来smtplib这个模块是没法用了,我用的是2.2,不知道2.3怎么样?

  Frank
  Thanks





------------------------------------------------------------------------------


  _______________________________________________
  python-chinese list
  python-chinese at lists.python.cn
  http://python.cn/mailman/listinfo/python-chinese

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.exoweb.net/pipermail/python-chinese/attachments/20040513/fc536e29/attachment.html

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2004年05月13日 星期四 16:43

黎达文 ldw at suntektech.com
Thu May 13 16:43:22 HKT 2004

这个很有可能的啊!我以前也觉得开源的代码,这么多人用,肯定没有什么问题的啦。
不过,自从使用了几个开源代码之后发现,问题还是挺多的。很多情况下,别人的用况
和我们自己的用况有些区别。另外,就是那些开源的代码很少考虑真正达到工业强度的
要求。功能实现就OK,错误检查就比较少考虑。所以,作为PM,一定要时刻提醒自己
“开源代码有风险”,选择使用之前一定是慎重考虑才行。

  _____  

发件人: python-chinese-bounces at lists.python.cn
[mailto:python-chinese-bounces at lists.python.cn] 代表 Frank Zheng
发送时间: 2004年5月13日 16:40
收件人: python-chinese at lists.python.cn
主题: Re: [python-chinese] 一个关于smtplib的问题


是呀,我正有这个想法,只是觉得这么明显的问题,怎么以前没有人遇到过,还是人家
国外的mail server跟咱们的都不一样。
 
----- Original Message ----- 

From: 黎达文 ldw at suntektech.com>  
To: python-chinese at lists.python.cn 
Sent: Thursday, May 13, 2004 4:06 PM
Subject: 答复: [python-chinese] 一个关于smtplib的问题

既然代码都有了,改一下它的实现不就行啦?!

  _____  

发件人: python-chinese-bounces at lists.python.cn
[mailto:python-chinese-bounces at lists.python.cn] 代表 Frank Zheng
发送时间: 2004年5月13日 15:16
收件人: python-chinese at lists.python.cn
主题: [python-chinese] 一个关于smtplib的问题


smtplib是python自带的module,是封装了smtp,esmtp协议的模块
我试着用了一下,发现在验证用户名和密码的时候出了一些问题
下面是一些测试代码
>>> import smtplib
>>> s = smtplib.SMTP()
>>> s.set_debuglevel(1)
>>> s.connect('smtp.263.net')
connect: ('smtp.263.net', 25)
connect: ('smtp.263.net', 25)
reply: '220 Welcome to coremail System(With Anti-Spam) 2.1 for
263(040326)\r\n'
reply: retcode (220); Msg: Welcome to coremail System(With Anti-Spam) 2.1
for 263(040326)
connect: Welcome to coremail System(With Anti-Spam) 2.1 for 263(040326)
(220, 'Welcome to coremail System(With Anti-Spam) 2.1 for 263(040326)')
>>> s.login('hust_zxq524','*****')
send: 'ehlo pc11\r\n'
reply: '250-smtp.263.net\r\n'
reply: '250-PIPELINING\r\n'
reply: '250-SIZE 30720000\r\n'
reply: '250-ETRN\r\n'
reply: '250-AUTH LOGIN\r\n'
reply: '250-AUTH=LOGIN\r\n'
reply: '250-XVERP\r\n'
reply: '250 8BITMIME\r\n'
reply: retcode (250); Msg: smtp.263.net
PIPELINING
SIZE 30720000
ETRN
AUTH LOGIN
AUTH=LOGIN
XVERP
8BITMIME
AuthMethod: None
Traceback (most recent call last):
  File "", line 1, in ?
  File "D:\tools\Python22\lib\smtplib.py", line 540, in login
    raise SMTPException("No suitable authentication method found.")
SMTPException: No suitable authentication method found.
 
然后我看了smtplib的代码,发现它支持两种认证方式,"PLAIN" 和 "CRAM-MD5",采用
哪种需要根据发EHLO 命令给mailserver后,server的回复信息来确定(见blue字部分),
所以有效的回复应该是:
AUTH PLAIN CRAM-MD5 
或者至少有一种。
而这里的AUTH LOGIN,我google了一下,发现某人说了这样一段话:
 
"本质上AUTH PLAIN和AUTH LOGIN是一样的 
用户名和口令都是base64编码的明文,只不过协议命令不一样罢了 
 
因此要说他们的区别就必须知道SASL协议了: 
 
SASL协议里面并没有定义AUTH LOGIN,而是定义了与之相同的AUTH PLAIN 
但偏偏Oultook自创AUTH LOGIN,谁让MS太NB,因此sasl的一些实现版本里面就有了AUTH
LOGIN
"
然后outlook在发邮件的时候是这样做的:(在发完ehlo命令以后)
AUTH LOGIN
334 VXNlcm5hbWU6                      (Base64解码后: Username:)
Ymh3YW5n                              (Base64编码前: bhwang)
334 UGFzc3dvcmQ6                      (Base64解码后: Password:)
bXlwYXNzd29yZCFteXBhc3N3b3JkISE=      (Base64编码前: ********)
235 Authentication successful
 
以上验证过程中都没有加密数据,:(
我试了好几个网站,263,sina,sohu都是这样的
这样看来smtplib这个模块是没法用了,我用的是2.2,不知道2.3怎么样?
 
Frank
Thanks
 




  _____  




_______________________________________________
python-chinese list
python-chinese at lists.python.cn
http://python.cn/mailman/listinfo/python-chinese


-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.exoweb.net/pipermail/python-chinese/attachments/20040513/d8fc32a7/attachment.htm

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2004年05月13日 星期四 17:09

Who Bruce whoonline at msn.com
Thu May 13 17:09:12 HKT 2004

想到个问题,如果用ZODB做数据库的话,通常有几个文件,例如
db.fs/db.fs.index/db.fs.lock/db.fs.tmp,能否让数据库文件为单一文件?

我想应该是可以的,Zope导出的文件不就是单一文件吗。

_________________________________________________________________
享用世界上最大的电子邮件系统― MSN Hotmail。  http://www.hotmail.com  



[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

如下红色区域有误,请重新填写。

    你的回复:

    请 登录 后回复。还没有在Zeuux哲思注册吗?现在 注册 !

    Zeuux © 2024

    京ICP备05028076号