Python IMAPlib 错误 10060

0 投票
1 回答
1703 浏览
提问于 2025-04-18 14:14

我正在写一个脚本,目的是从我网站应用发送的邮件中提取链接,然后开始一系列自动化测试。目前我的代码应该只提取邮件的内容,我还没有开始查找其中的链接,因为没有得到任何返回结果。

import imaplib

mail = imaplib.IMAP4_SSL('imap.gmail.com')
mail.login('user', 'passwd')
mail.list()
mail.select("inbox")

result, data = mail.search(None, "ALL")

ids = data[0]
id_list = ids.split()
latest_email_id = id_list[-1]

result, data = mail.fetch(latest_email_id, "(RFC822)")

raw_email = data[0][1]
print raw_email

我检查了一下我的代码,获取最新邮件(收件箱最上面的那封)没有问题,而且我的IMAP设置也正确。有没有人能告诉我,为什么我会收到这个错误:

socket.error: [Errno 10060] A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond

提前谢谢大家。

补充:公司的防火墙阻止了143和993端口(默认的IMAP(S)端口),我已经把我的解决方法发在了答案里。我的代码没有任何问题!

1 个回答

0

为了绕过公司对端口的限制,我使用了 netsh 命令把一个开放的端口转发到 993 端口(这是 imaplib 的 SSL 默认端口)。我在终端中输入了以下命令:

netsh interface portproxy add v4tov4 listenport=UNBLOCKTHISPORT listenaddress=YOURIP connectport=THISPORTISOPEN connectaddress=YOURIP

撰写回答