【问题标题】:Download HTML from Gmail in Python用 Python 从 Gmail 下载 HTML
【发布时间】:2013-10-10 18:38:03
【问题描述】:

我正在尝试在我的 gmail 中下载来自某个发件人的所有电子邮件以进行分析。我在第 23 行遇到了错误。

这是我的代码:

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.IMAP4.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 )') # search and return uids instead
latest_email_uid = data[0].split()[-1]
result, data = mail.uid('fetch', latest_email_uid, '(RFC822)')
raw_email = data[0][1]

这是我得到的错误:

Traceback (most recent call last):
  File "test.py", line 23, in <module>

有什么想法吗??

【问题讨论】:

  • 它说我不能投票?
  • 可能是你的声望不够。欢迎使用 stackoverflow!

标签: python parsing email gmail imap


【解决方案1】:

IMAP4.uid 用作命令方法,仅使用 UID。第一部分必须是一个命令,作为搜索。因此,其他参数应与搜索方法中的参数相同,只需记住在命令字符串中引用名称即可。

你应该尝试类似的东西

IMAP4.uid('SEARCH', None, '(FROM "{}")'.format(fromWho))

【讨论】:

  • 更改 FROM 的格式有效。我没有使用格式(fromWho),它仍然有效
  • 我去掉了变量,只输入了实际的电子邮件。这是有效的:“(来自'tiffany@e.tiffany.com')”
  • 这样您就不能轻易更改电子邮件。这应该 100% 等同于使用格式(fromWho)。
猜你喜欢
  • 1970-01-01
  • 2022-11-11
  • 1970-01-01
  • 2014-11-08
  • 1970-01-01
  • 1970-01-01
  • 2022-08-24
  • 1970-01-01
  • 2019-03-16
相关资源
最近更新 更多