变量持有 "imaplib.IMAP4_SSL("imap.google.com")" 抛出过于模糊 "Syntax error"

Variable holding "imaplib.IMAP4_SSL("imap.google.com")" throws overly-vague "Syntax error"

我搜索了一遍又一遍,但似乎没有解决我的问题。当

mail = imaplib.IMAP4_SSL("imap.google.com")

声明它抛出一个语法错误,但绝对没有告诉我它是不正确的。有谁知道这里发生了什么或知道如何解决它?如果需要,请随时询问更多详细信息。我正在使用 SMTP 端口 143。

代码片段:

from subprocess import Popen
import smtplib
import time
import imaplib
import email
import threading

ORG_EMAIL = "@gmail.com"
FROM_EMAIL = "magikboy01" + ORG_EMAIL
FROM_PWD = "********"
SMTP_SERVER = "imap.gmail.com"
SMTP_PORT = 143

def read_email_from_gmail():
    threading.Timer(300, read_email_from_gmail().start()

    mail = imaplib.IMAP4_SSL(SMTP_SERVER)
    mail.login( FROM_EMAIL, FROM_PWD )
    mail.select( 'inbox' )

想通了:)

threading.Timer 显然与 Python 2.x 不兼容,尽管我认为 python 在版本 3.x[=10 上是 运行 =]

您缺少一个右括号:

threading.Timer(300, read_email_from_gmail().start()

应该是:

threading.Timer(300, read_email_from_gmail().start())

这是语法错误的根源,但由于编译器的工作方式,有时他们会在下一行出现错误。