python - 如何在 Python 中使用 imaplib 处理错误

标签 python email error-handling imap

我想为用户向我的脚本输入错误密码编写错误处理程序。我一直在更改 except 语句之后的代码,但我找不到正确的错误代码是什么。我错过了什么吗?

import imaplib
import email

mail = imaplib.IMAP4_SSL('imap.gmail.com')

username = raw_input('USERNAME (email):')
password = raw_input('PASSWORD: ')

    try:
        mail.login(username, password)
        print "Logged in as %r !" % username
    except: 
        imaplib.error
        print "Log in failed."

mail.list()
# Out: list of "folders" aka labels in gmail.
mail.select("inbox") # connect to inbox.

fromWho = raw_input('FROM:')

result, data = mail.uid('search', None, '(FROM fromWho)')
latest_email_uid = data[0].split()[-1]
result, data = mail.uid('fetch', latest_email_uid, '(RFC822)')
raw_email = data[0][1]

print raw_email

最佳答案

如果要捕获某个异常,try...except中的异常名称Python中的子句应该写在except关键字之后:

try:
    mail.login(username, password)
    print "Logged in as %r !" % username
except imaplib.IMAP4.error:
    print "Log in failed."

请注意,我将异常名称更改为 imaplib.IMAP4.error。这并不明显,但您可以通过查看 imaplib 的源代码找到异常的正确名称。

关于python - 如何在 Python 中使用 imaplib 处理错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18754195/

相关文章:

c# - 从 Windows 桌面应用程序发送电子邮件错误报告

python - 错误: "TypeError: ' module' object is not callable"when plotting tree for decision tree model

python - 如何在不使用 subprocess 或 pexpect 模块的情况下将输入值发送到终端

python - 类外的变量范围

html - 使用 vspace/hspace 在 HTML 电子邮件中填充图像时的双边距

sql-server - SQL TRY错误未捕获

python - 使用 Python 查找音节

php - 使用smtp发送邮件并将其反射(reflect)到电子邮件服务器的 "Sent"文件夹中

Javamail IMAP 检索特定日期时间内的最新电子邮件

c++ - 类中的错误/异常捕获