2014-07-22 109 views
0

我正在编写一个脚本来抓取来自我的Web应用程序发出的电子邮件的链接,然后开始一组自动化测试。当时我的代码应该只抓住电子邮件的正文,我还没有开始扫描内的链接,因为我没有得到回报。Python IMAPlib ErrNo 10060

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

作品使用netsh命令来使用以下命令端口转发开放端口到端口993(默认imaplib的SSL)以及在这里。您确定公司的防火墙,IT策略或某些防病毒/防火墙配置在您的机器上不会阻止它吗? – sk11

+0

这可能是公司的防火墙! – Stormie

回答

0

为了解决该公司端口限制我端子

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