是什么导致AppEngine中Python脚本的imaplib错误?

1 投票
2 回答
803 浏览
提问于 2025-04-17 02:01

这个脚本:

    import imaplib

    user = "dave.trindall@gmail.com"
    pwd = "***"

    m = imaplib.IMAP4_SSL("imap.gmail.com")
    m.login(user,pwd)
    m.select("Inbox") # here you a can choose a mail box like INBOX instead
    m.search("NEW")

给我带来了这个错误:

Traceback (most recent call last):
  File "c:\Program Files\Google\google_appengine\google\appengine\ext\webapp\_webapp25.py", line 701, in __call__
    handler.get(*groups)
  File "c:\Users\Dave\git_stuff\Touch Base\Touch Base\main.py", line 30, in get
    m = imaplib.IMAP4_SSL("imap.gmail.com")
  File "c:\Python26\lib\imaplib.py", line 1138, in __init__
    IMAP4.__init__(self, host, port)
  File "c:\Python26\lib\imaplib.py", line 163, in __init__
    self.open(host, port)
  File "c:\Python26\lib\imaplib.py", line 1149, in open
    self.sock = socket.create_connection((host, port))
AttributeError: 'module' object has no attribute 'create_connection'

为什么会这样呢?

2 个回答

0

请注意,虽然你不能直接从App Engine建立原始的网络连接,但你可以使用邮件API发送邮件,还可以通过Gmail收件箱接口读取Gmail的收件箱。

4

这个问题出现是因为App Engine不允许在你的应用程序中打开套接字。你可以查看这里的“纯Python”部分,另外也可以参考这个讨论

撰写回答