代码之家  ›  专栏  ›  技术社区  ›  mcnesium

消息实例没有属性“is\u multipart”

  •  0
  • mcnesium  · 技术社区  · 7 年前

    我正试着写一个脚本,让我了解所有邮件的内容 ~/Maildir . 所以我基本上复制了 this question mailbox.py

    import mailbox
    maildir = mailbox.Maildir("~/Maildir");
    for message in maildir:
        print message["subject"]
        if message.is_multipart():
            print "ok"
    

    它确实打印了第一条消息的主题,但没有打印“ok”,而是显示

    AttributeError: Message instance has no attribute 'is_multipart'
    

    1 回复  |  直到 7 年前
        1
  •  1
  •   phd    7 年前

    你忘了给你的Python版本命名,所以让我猜它是Python 2.7,对吗?在Python 2.7中 mailbox.Maildir 默认情况下 returns 实例 rfc822.Messages email.Message s rfc822.Message 有一个完全不同的 API

    如果你想的话 邮箱邮件目录 返回 s删除默认值 factory

    maildir = mailbox.Maildir("~/Maildir", factory=None)
    

    在Python 3中 rfc822.消息 因此被删除 退货 电子邮件消息