我正在尝试将 python 脚本添加到共享网络托管帐户,但即使是最基本的脚本也无法与 gmail 建立有效的 imap 连接。作为测试用例,我创建了以下脚本:
import imaplib
conn = imaplib.IMAP4_SSL("imap.gmail.com", 993)
conn.login(<EMAIL_ADDRESS>, <PASSWORD>)
这将产生以下输出:
回溯(最近一次调用最后一次):
文件“imapTest.py”,第 2 行,位于?conn = imaplib.IMAP4_SSL(“imap.gmail.com”,993)文件“/usr/lib64/python2.4/imaplib.py”,第 1101 行,位于在里面 IMAP4。在里面(自身,主机,端口)文件“/usr/lib64/python2.4/imaplib.py”,第 160 行,位于在里面 self.open(host, port) 文件“/usr/lib64/python2.4/imaplib.py”,第 1113 行,打开 self.sock.connect((host, port)) 文件“”,第 1 行,连接 socket.error: (110,'连接超时')
我该如何解决此问题?我的托管服务提供商是否可能阻止了传出的 imap 请求?
答案1
TELNET 始终是一个很好的通用 TCP 测试工具,在大多数操作系统上都可以开箱即用。
您能否从托管机上的 shell 通过 TELNET 连接到 imap.gmail.com,端口 993,并获得开放的 TCP 连接?如果不行,我会开始与主机交谈,了解他们是否阻止了该流量。
编辑:
要使用 TELNET 测试与任意 TCP 端口的连接,您需要在 TELNET 命令上指定端口号,例如,对于端口 993:
telnet imap.gmail.com 993
如果您未指定端口号,则假定使用 TELNET 的默认端口 23。