1

私は次のコードを持っています。それは私自身の個人的な電子メールで機能します。

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

これをデバッグする方法についてのアイデアはありますか? ポートは個人の電子メール用に機能しているため、ファイアウォールで保護されていません。

4

2 に答える 2

0

ファイアウォールに問題があるようです。
あなたの会社はポート993でimap.gmail.comへの接続を許可していません。
コメントの1つで提案されているように、コマンドラインから試してください:
telnet imap.gmail.com 993

タイムアウトするかエラーが発生した場合は、マシンからそのポートにアクセスすることはできません。

于 2012-10-17T08:41:38.487 に答える
0

接続がブロックされています。考えられる理由は次のとおりです。

  1. プロキシは、インターネット アクセスに使用されます。Python は直接接続を試みます。

  2. ファイアウォールまたはネットワーク セキュリティ アプライアンスのブロック接続

  3. システムまたは AV ブロッキング接続のローカル ファイアオール

于 2018-07-11T14:48:50.880 に答える