pythonpython-3.xoutlookpst

How can i open pst file (file of outlook mail ) with python?


I have pst file and i want open that with python, how can i do?

i try this library but dont work.

my code is:

import mailparser

mail = mailparser.parse_from_bytes(byte_mail)
mail = mailparser.parse_from_file('c/document/1.pst')
print(mail.attachments)  #list of all attachments

but get this errore : mailparser.exceptions.MailParserOSError: To use this function you must install 'msgconvert' tool

----------All error text:-----------------
To use this function you must install 'msgconvert' tool
Traceback (most recent call last):
  File "C:\Users\aa\AppData\Local\Programs\Python\Python37-32\lib\site-packages\mailparser\utils.py", line 229, in msgconvert
    stdout=subprocess.PIPE, stderr=subprocess.DEVNULL)
  File "C:\Users\aa\AppData\Local\Programs\Python\Python37-32\lib\subprocess.py", line 775, in __init__
    restore_signals, start_new_session)
  File "C:\Users\aa\AppData\Local\Programs\Python\Python37-32\lib\subprocess.py", line 1178, in _execute_child
    startupinfo)
FileNotFoundError: [WinError 2] The system cannot find the file specified
Traceback (most recent call last):
  File "C:\Users\aa\AppData\Local\Programs\Python\Python37-32\lib\site-packages\mailparser\utils.py", line 229, in msgconvert
    stdout=subprocess.PIPE, stderr=subprocess.DEVNULL)
  File "C:\Users\aa\AppData\Local\Programs\Python\Python37-32\lib\subprocess.py", line 775, in __init__
    restore_signals, start_new_session)
  File "C:\Users\aa\AppData\Local\Programs\Python\Python37-32\lib\subprocess.py", line 1178, in _execute_child
    startupinfo)
FileNotFoundError: [WinError 2] The system cannot find the file specified

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "D:/Drive D/my projects/azar/untitled java 13 12  2019/Pst mail.py", line 3, in <module>
    mail=mailparser.parse_from_file_msg('C:/Users/aa/Documents/1.pst')
  File "C:\Users\aa\AppData\Local\Programs\Python\Python37-32\lib\site-packages\mailparser\mailparser.py", line 89, in parse_from_file_msg
    return MailParser.from_file_msg(fp)
  File "C:\Users\aa\AppData\Local\Programs\Python\Python37-32\lib\site-packages\mailparser\mailparser.py", line 203, in from_file_msg
    f, _ = msgconvert(fp)
  File "C:\Users\aa\AppData\Local\Programs\Python\Python37-32\lib\site-packages\mailparser\utils.py", line 234, in msgconvert
    raise MailParserOSError(message)
mailparser.exceptions.MailParserOSError: To use this function you must install 'msgconvert' tool

-----------------------------------

Solution

  • my solution: I convert .pst file to .msg file and read that with python (with app: BitRecover PST Converter Wizard 10.6).

    import extract_msg 
    msg = extract_msg.Message("C:/Users/aa/Documents/delete/Untitled.msg") 
    print(msg.attachments)`