我和imap有些麻烦。 我正在尝试做的是编写一个脚本,使用imap连接到我们的语音邮件服务器并下载所有消息。 我已经能够使用个人帐户登录,但当我尝试使用“proxyauth”以管理员身份登录并将代理登录到另一个订阅者的邮箱时,我收到以下错误:
“imaplib.error:PROXYAUTH命令错误:BAD ['无法识别的命令']”
这是我正在使用的代码:
c = imaplib.IMAP4("x.x.x.x")
c.login_cram_md5("admin", "******")
c.proxyauth("7001")
type, data = c.select()
try:
c.select('INBOX', readonly=True)
for i in c.search(None, 'All')[1][0].split():
print "\n===================================="
print "Reading Message: " + str(i) + "..."
print "====================================\n"
typ, msg_data = c.fetch(str(i), '(RFC822)')
for response_part in msg_data:
if isinstance(response_part, tuple):
print email.message_from_string(str(msg_data[0][1]))
finally:
try:
c.close()
except:
pass
c.logout()
对于我可能做错的任何想法都将不胜感激!
答案 0 :(得分:1)
PROXYAUTH是一个旧的Netscape IMAP服务器扩展。
查看您的服务器是否支持AUTHENTICATION PLAIN。在端口143上Telnet,登录并发出CAPABILITY命令,并在响应中查找AUTH = PLAIN。例如:
telnet <server> 143
* OK IMAP Server ready
1 login user password
1 OK completed
1 capability
* CAPABILITY IMAP4 IMAP4REV1 ACL NAMESPACE UIDPLUS IDLE LITERAL+ QUOTA ID MULTIAPPEND LISTEXT CHILDREN BINARY LOGIN-REFERRALS UNSELECT STARTTLS AUTH=LOGIN AUTH=PLAIN AUTH=CRAM-MD5 AUTH=DIGEST-MD5 AUTH=GSSAPI AUTH=MSN AUTH=NTLM
有关AUTHENTICATION PLAIN的详细信息,请参阅http://tools.ietf.org/html/rfc4959。
-Rick
答案 1 :(得分:0)
IMAP服务器告诉您它无法识别PROXYAUTH
命令。标准IMAP中没有这样的命令。
正确的“代理身份验证”方式取决于您的特定IMAP服务器实施;你必须查阅它的文档。有可能是通过AUTHENTICATE
命令实现的。