从imap或pop3服务器读取电子邮件

问题描述:

我的任务是使用imap或pop3服务器地址读取电子邮件。我正在尝试使用python完成此任务。所有示例代码avaliable做这个任务抛出下面从imap或pop3服务器读取电子邮件

“错误提到的错误:[错误10060]连接尝试失败,因为连接的方没有正确一段时间后响应或已建立的连接失败,因为连接主机未能响应”

什么可能的问题是,这是我的本地防火墙设置,或者可能是由于一些其他原因?????如下使用Telnet:

telnet imap.gmail.com 993 

如果网络是幸福的,你应该会看到类似这样的回复

import imaplib 

imap_host = 'imap.gmail.com' 
imap_user = '****@gmail.com' 
imap_pass = '****' 

## open a connection 
imap = imaplib.IMAP4_SSL(imap_host) 

## login 
imap.login(imap_user, imap_pass) 

import sys 
import chilkat 

imap = chilkat.CkImap() 

# Anything unlocks the component and begins a fully-functional 30-day trial. 
success = imap.UnlockComponent("Anything for 30-day trial") 
if (success != True): 
    print(imap.lastErrorText()) 
    sys.exit() 

# Turn on session logging: 
imap.put_KeepSessionLog(True) 

# Connect to GMail 
# Use TLS 
imap.put_Ssl(True) 
imap.put_Port(993) 
success = imap.Connect("imap.gmail.com") 
if (success != True): 
    print(imap.lastErrorText()) 
    sys.exit() 

# Login 
# Your login is typically your GMail email address. 
success = imap.Login("***@gmail.com","*****") 
if (success != True): 
    print(imap.lastErrorText()) 
    sys.exit() 

# Select an IMAP mailbox 
success = imap.SelectMailbox("Inbox") 
if (success != True): 
    print(imap.lastErrorText()) 
    sys.exit() 

# Show the session log. 
print(imap.sessionLog()) 

# Disconnect from the IMAP server. 
success = imap.Disconnect() 
+1

你能后的代码示例是值得的? 我们无法知道什么是超时的来源,而不知道您想要做什么。 – Quitty

+0

我敢打赌,您正试图在端口143上进行连接。Gmail仅在端口993上进行回复,并使用SSL封装。 – arnt

首先,我建议做一个简单的网络健全的测试如:

Trying 64.233.188.109... 
Connected to gmail-imap.l.google.com. 
Escape character is '^]'. 

它可能还查看Gmail帮助页面IMAP

https://support.google.com/mail/accounts/answer/7875

+0

**正在连接到imap.gmail.com ...无法在端口993上打开与主机的连接:连接失败** ----正在接收以下错误....原因为何会发生这种情况... 。有什么建议么? –

+0

很可能您的防火墙不允许在端口993上传出连接,这对于企业设置来说很典型,出于安全原因,他们可能想限制电子邮件进入组织的方式。 如果这是一个家庭设置,那么你可能想检查你的路由器网页管理页面。 我假设你可以ping imap.gmail.com? 要找出防火墙的地址,您可能需要查看traceroute(或windows下的tracert),这可以向您显示问题可能发生的所有网络跳跃。 – PsymonR