代码之家  ›  专栏  ›  技术社区  ›  LeonH

Python IMAPlib错误号10060

  •  0
  • LeonH  · 技术社区  · 11 年前

    我正在编写一个脚本,从我的web应用程序发送的电子邮件中获取链接,然后开始一系列自动化测试。此刻我的代码 应该 只抓取邮件的正文,我还没有开始扫描其中的链接,因为我没有收到回复。

    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 回复  |  直到 11 年前
        1
  •  0
  •   LeonH    11 年前

    为了绕过公司端口限制,我使用netsh命令在终端中使用以下命令将打开的端口转发到端口993(imaplib的SSL的默认值)

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