使用imaplib访问企业Gmail

时间:2012-10-11 21:25:04

标签: python gmail imaplib

我有以下代码,它适用于我自己的个人电子邮件。

import getpass, imaplib
import email
import libgmail
import re

#M=imaplib.IMAP4()
M=imaplib.IMAP4_SSL('imap.gmail.com',993)
M.login('loginname@company.com','password')
M.select('bur-dev')

typ, data = M.search(None, 'ALL')
for num in data[0].split():
    typ, data = M.fetch(num, '(RFC822)')
    print 'Message %s\n%s\n' % (num, data[0][1])
M.close()
M.logout()

虽然我的公司邮件(我确实已经打开了imap)但我有一个连接超时 -

    C:\Python24\libgmail-0.1.11>python gmail_app.py
Traceback (most recent call last):
  File "gmail_app.py", line 7, in <module>
    M=imaplib.IMAP4_SSL('imap.gmail.com',993)
  File "/usr/lib/python2.6/imaplib.py", line 1138, in __init__
    IMAP4.__init__(self, host, port)
  File "/usr/lib/python2.6/imaplib.py", line 163, in __init__
    self.open(host, port)
  File "/usr/lib/python2.6/imaplib.py", line 1149, in open
    self.sock = socket.create_connection((host, port))
  File "/usr/lib/python2.6/socket.py", line 514, in create_connection
    raise error, msg
socket.error: [Errno 116] Connection timed out

有关如何调试此问题的任何想法?该端口没有防火墙,因为它适用于我的个人电子邮件。

2 个答案:

答案 0 :(得分:0)

您似乎遇到了防火墙问题 您的公司不允许在端口993上连接到imap.gmail.com 正如其中一条评论中所建议的那样,从命令行尝试:
telnet imap.gmail.com 993

如果超时或出错,则不允许从您的机器访问该端口。

答案 1 :(得分:0)

连接被阻塞。以下可能是可能的原因:

  1. proxy用于Internet访问。 Python尝试直接连接。

  2. 防火墙或网络安全设备阻止连接

  3. 系统或AV阻止连接的本地防火墙