【问题标题】:Receiving Emails in Python在 Python 中接收电子邮件
【发布时间】:2016-08-03 16:07:11
【问题描述】:

我正在尝试在我的 Pi 上接收电子邮件,到目前为止,我正在从我的收件箱中接收来自 gmail 的电子邮件,但是我正在尝试在没有添加所有内容(例如消息 ID 和内容类型)的情况下接收它们。我正在寻找纯电子邮件正文。到目前为止,我已经得到了这个......

 import imaplib

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

 mail.login('xxxxxxx', 'xxxxxx')

 mail.list

 mail.select("inbox")


 obj, data = mail.search(None, 'ALL')

 for num in data [0].split():

 typ, data = mail.fetch(num, '(RFC822)')

 print 'Message %s\n%s\n' % (num, data[0][1])

 mail.close()

【问题讨论】:

    标签: python email imaplib


    【解决方案1】:

    尝试将'BODY[1]' 作为字符串传递,而不是'(RFC822)'

    'BODY[1]' 所做的是它指定您只需要电子邮件的文本/纯文本部分。您可以在此文档RFC 3501 中找到,该文档在第 6.4.5 节或第 53 页下详细解释了 FETCH 命令。

    希望这会有所帮助!

    【讨论】:

    • 我遇到了很多错误:(文件“email.py”, 类型中的第 9 行,data = mail.fetch(num, 'BODY[1]') 和一堆第 455 行和第 1087 行中的其他错误
    • 您遇到了什么样的错误?我编辑了我的答案,使其不太具体(我没有太多使用 Python 2.x 的经验,主要使用 Python 3.4)。但是,字符串规范应该是正确的。
    • 我得到一个 fetch 命令错误:BAD ['Could not parse command'] 但它也不喜欢 BODY[1] 编辑
    • 绝妙的答案。链接也很棒。谢谢!
    【解决方案2】:

    所以我犯了一个菜鸟错误,将我的文件命名为 email.py,也没有导入电子邮件!

    谢谢。

    【讨论】:

      猜你喜欢
      • 2010-09-25
      • 1970-01-01
      • 2023-04-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-27
      • 2016-07-23
      • 2012-06-06
      相关资源
      最近更新 更多