【问题标题】:Get email subject and sender using imaplib?使用 imaplib 获取电子邮件主题和发件人?
【发布时间】:2011-09-06 18:24:09
【问题描述】:

执行响应下方显示的代码后,我收到以下响应。如何解析此响应以获取发件人(John Smith)和主题(测试)?

[('13010 (BODY[HEADER.FIELDS (SUBJECT FROM)] {57}', 'From: John Smith <jsmith@gmail.com>\r\nSubject: test\r\n\r\n'), ')']

-

conn.fetch(message, '(BODY[HEADER.FIELDS (SUBJECT FROM)])')

【问题讨论】:

    标签: python imap imaplib


    【解决方案1】:

    也许问题/答案here 会有所帮助。试试这样的:

    from email.parser import HeaderParser
    data = conn.fetch(message, '(BODY[HEADER.FIELDS (SUBJECT FROM)])')
    header_data = data[1][0][1]
    parser = HeaderParser()
    msg = parser.parsestr(header_data)
    

    然后msg 应该是字典。

    【讨论】:

      【解决方案2】:

      你可以试试这个来获取所有邮件的标题信息。

      import imaplib
      import email
      
      obj = imaplib.IMAP4_SSL('imap.gmail.com', 993)
      obj.login('username', 'password')
      obj.select('folder_name')
      resp, data = obj.uid('FETCH', ','.join(map(str,uidl_list)) , '(BODY.PEEK[HEADER.FIELDS (From Subject)] RFC822.SIZE)')
      

      注意:这里的 'uidl_list' 是您想要主题的邮件的 uid 列表。

      【讨论】:

        猜你喜欢
        • 2015-04-29
        • 1970-01-01
        • 2015-04-17
        • 2021-07-29
        • 2012-10-24
        • 2018-06-01
        • 2011-11-11
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多