我有以下代码连接到 Microsoft Exchange 服务器(2010 版)。这是我遇到麻烦的剪断。(它可以与其他用于测试的电子邮件服务器/本地邮件服务器一起使用)。用户/密码经过验证,并且为此目的进行了硬编码,因此不会出现拼写错误。我在 Microsoft Outlook 中使用此电子邮件帐户,因此它在服务器端也有效。
self.connection = poplib.POP3_SSL('my.email.server')
self.connection.set_debuglevel(2)
print self.connection.getwelcome()
self.connection.user('myuser')
self.connection.pass_('mypassword')
结果如下:
+OK The Microsoft Exchange POP3 service is ready.
*cmd* 'USER myuser'
*put* 'USER myuser'
*get* '+OK\r\n'
*resp* '+OK'
*cmd* 'PASS mypassword'
*put* 'PASS mypassword'
*get* '-ERR Logon failure: unknown user name or bad password.\r\n'
*resp* '-ERR Logon failure: unknown user name or bad password.'
Traceback (most recent call last):
File "getMail.py", line 237, in <module>
start_deamon()
File "getMail.py", line 229, in start_deamon
deamon.process_email()
File "getMail.py", line 63, in process_email
self.connection.pass_('password')
File "C:\Python27\lib\poplib.py", line 189, in pass_
return self._shortcmd('PASS %s' % pswd)
File "C:\Python27\lib\poplib.py", line 152, in _shortcmd
return self._getresp()
File "C:\Python27\lib\poplib.py", line 128, in _getresp
raise error_proto(resp)
poplib.error_proto: -ERR Logon failure: unknown user name or bad password.
错误很明显,但我确定用户/密码是真实的,我尝试通过 POP 和 POP_SSL 连接,结果是一样的。我确实收到了欢迎消息,所以我知道服务器已启动并支持 POP3/POP3_SSL 并且端口是正确的(这是默认值)。我不在服务器位于同一网络上的任何防火墙/代理后面。
可能是什么错误?有没有其他方法可以仅使用 POP3 连接到 Microsoft Exchange?(或如果需要 IPMA)。