How to read eml file in python?

前端 未结 4 1423
滥情空心
滥情空心 2021-01-31 12:37

I do not known how to load a eml file in python 3.4.
I want to list all and read all of them in python.

\"ente

4条回答
  •  逝去的感伤
    2021-01-31 13:00

    Posting this here for anyone looking to just extract text from an email and get a list of .eml files - took me forever to find a good answer to this online. NOTE: This will not get attachments to emails, just the text from email.

    import email
    from email import policy
    from email.parser import BytesParser
    import glob
    import os
    
    path = '/path/to/data/' # set this to "./" if in current directory
    
    eml_files = glob.glob(path + '*.eml') # get all .eml files in a list
    for eml_file in eml_files:
        with open(eml_file, 'rb') as fp:  # select a specific email file from the list
            name = fp.name # Get file name
            msg = BytesParser(policy=policy.default).parse(fp)
        text = msg.get_body(preferencelist=('plain')).get_content()
        fp.close()
     
        text = text.split("\n")
        print (name) # Get name of eml file
        print (text) # Get list of all text in email
    

    Credit to some of the code from this post: Reading .eml files with Python 3.6 using emaildata 0.3.4

提交回复
热议问题