2

我一直在尝试使用 python 连接到我的 Gmail 帐户。imap已启用。

import imaplib

imap_server = imaplib.IMAP4_SSL("imap.gmail.com",993)
# also tried imap_server = imaplib.IMAP4_SSL("imap.gmail.com"), doesnt work. 

追溯是:

Traceback (most recent call last):
  File "<pyshell#2>", line 1, in <module>
    imap_server = imaplib.IMAP4_SSL("imap.gmail.com",993)
  File "/Library/Frameworks/Python.framework/Versions/3.3/lib/python3.3/imaplib.py", line 1202, in __init__
    IMAP4.__init__(self, host, port)
  File "/Library/Frameworks/Python.framework/Versions/3.3/lib/python3.3/imaplib.py", line 172, in __init__
    self.open(host, port)
  File "/Library/Frameworks/Python.framework/Versions/3.3/lib/python3.3/imaplib.py", line 1217, in open
    IMAP4.open(self, host, port)
  File "/Library/Frameworks/Python.framework/Versions/3.3/lib/python3.3/imaplib.py", line 248, in open
    self.sock = self._create_socket()
  File "/Library/Frameworks/Python.framework/Versions/3.3/lib/python3.3/imaplib.py", line 1205, in _create_socket
    sock = IMAP4._create_socket(self)
  File "/Library/Frameworks/Python.framework/Versions/3.3/lib/python3.3/imaplib.py", line 238, in _create_socket
    return socket.create_connection((self.host, self.port))
  File "/Library/Frameworks/Python.framework/Versions/3.3/lib/python3.3/socket.py", line 435, in create_connection
    raise err
  File "/Library/Frameworks/Python.framework/Versions/3.3/lib/python3.3/socket.py", line 426, in create_connection
    sock.connect(sa)
OSError: [Errno 65] No route to host
4

1 回答 1

7

什么OSError: [Errno 65] No route to host意思就是它所说的:你不能从你的机器到那台机器。

您可以通过打开终端/DOS 提示符并键入以下内容从 Python 外部对其进行测试:

ping imap.gmail.com

这可能实际上是一个名称查找错误,并且您以某种方式获得了一个错误的imap.gmail.com. 所以,为了确定,也要检查 IP 地址:

ping 74.125.129.108
ping 74.125.129.109

如果ping可行,您可以检查您的路由器是否出于某种原因阻止了对主机的 TCP 访问,例如:

telnet imap.gmail.com

如果它正在工作,这应该会挂起很长时间,或者给你一个连接被拒绝的错误;如果它给你一个 no-route-to-host 错误,这就是你看到的同样的问题。

您的路由器也可能专门阻止端口 993。您也可以对此进行测试:

telnet imap.gmail.com 993

如果它没有返回类似“已连接到 gmail-imap.l.google.com”的信息,那么这里也存在同样的问题。

无论如何,一旦您确认这是系统或网络配置问题,而不是编程问题,请前往相应站点寻求系统帮助。

于 2013-07-17T19:24:35.327 回答