【问题标题】:python imap gmail parser error: 'module' object has no attribute 'message_from_string'python imap gmail解析器错误:“模块”对象没有属性“message_from_string”
【发布时间】:2017-01-07 22:00:35
【问题描述】:

谁能帮助这个解析器

import getpass, imaplib, email

def split_addrs(s):

    if not(s): return []
    outQ = True
    cut = -1
    res = []
    for i in range(len(s)):
        if s[i]=='"': outQ = not(outQ)
        if outQ and s[i]==',':
            res.append(email.utils.parseaddr(s[cut+1:i]))
            cut=i
    res.append(email.utils.parseaddr(s[cut+1:i+1]))
    return res

def get_addresses( name, password):

    mail=imaplib.IMAP4_SSL('imap.gmail.com')
    mail.login( name , password )
    print "In email account, accessing \"%s\" All mail...\n"
    mail.select('"[Gmail]/All Mail"')
    result,data=mail.search(None,"ALL")
    ids=data[0].split()[-10:]
    print "Processing %d emails...\n" % ( len(ids) )
    msgs = mail.fetch(','.join(ids),'(BODY.PEEK[HEADER])')[1][0::2]
    addr=[]
    print msgs
    for x,msg in msgs:
        msgobj = email.message_from_string(msg)
        addr.extend(split_addrs(msgobj['to']))
        addr.extend(split_addrs(msgobj['from']))
        addr.extend(split_addrs(msgobj['cc']))

    mail.close()
    mail.logout()
    addr_set = set(addr)
    print "Fetched and writing %d unique name and emails to scraped_email.txt...\n" % ( len(addr_set) )
    f = open('scraped_emails.txt', 'w')
    for each in addr_set:
        name, address = each 
        print "%s, %s" % (name, address)
        f.write("%s, %s\n" % (name, address))
    f.close()
    print "Done"


if __name__ == '__main__':

    email_address = raw_input('Enter your email: ')
    print "Username: %s" % ( email_address )
    get_addresses( email_address, getpass.getpass())

这是我的输出

In email account, accessing "%s" All mail...

正在处理 10 封电子邮件...

Traceback (most recent call last):
  File "/home/richard/environments/google-tools/gmail-addresses/program.py", line 52, in <module>
    get_addresses( email_address, getpass.getpass())
  File "/home/richard/environments/google-tools/gmail-addresses/program.py", line 30, in get_addresses
    msgobj = email.message_from_string(msg)
AttributeError: 'module' object has no attribute 'message_from_string'

我计划稍后让该文件夹可选择,但现在想尝试让它在所有邮件上工作。

谁能发现我的错误

我正在使用带有 eclipse pydev ide 的 python 2.7

谢谢

【问题讨论】:

    标签: python parsing gmail imap


    【解决方案1】:

    在 python 3 中一切正常,所以不需要帮助

    【讨论】:

      猜你喜欢
      • 2011-06-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-31
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多