【问题标题】:using imaplib to access corporate gmail使用 imaplib 访问企业 gmail
【发布时间】:2018-07-11 22:48:50
【问题描述】:

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

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

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

【问题讨论】:

  • 哦,我先尝试了 libgmail,但根本不起作用,然后我发现 libgmail 已停产:(
  • 似乎在登录通过之前失败了。只是为了排除这种情况,您可以尝试 telnet imap.gmail.com 993 吗?
  • 您对个人和公司邮件都使用 SSL 吗?如果您尝试M=imaplib.IMAP('imap.gmail.com'),会发生什么?

标签: python gmail imaplib


【解决方案1】:

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

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

【讨论】:

  • 我在这里遇到同样的问题,当我使用 telnet imap.gmail.com 993 时,它失败并显示telnet: Unable to connect to remote host: Connection refused。我该怎么做才能纠正它。
  • 连接被国外主机拒绝! ?
【解决方案2】:

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

  1. 代理用于互联网访问。 Python 尝试直接连接。

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

  3. 系统本地触发或 AV 阻塞连接

【讨论】:

    猜你喜欢
    • 2016-04-18
    • 2012-09-04
    • 1970-01-01
    • 2020-07-21
    • 2011-07-08
    • 2011-07-06
    • 2014-10-30
    • 2014-10-09
    • 2011-07-18
    相关资源
    最近更新 更多