Python에서 Outlook PST 파일 구문 분석

PST(Personal Storage Table)는 다양한 Microsoft 프로그램에서 사용되는 저장 파일 형식입니다. PST 파일은 메시지, 연락처, 캘린더, 이벤트 등의 데이터를 유지할 수 있습니다. MS Outlook, Exchange 및 Windows Messaging과 같은 널리 사용되는 Microsoft 소프트웨어에서 사용됩니다. 어떤 경우에는 PST 파일을 구문 분석하고 프로그래밍 방식으로 데이터를 추출해야 할 수 있습니다. 이를 달성하기 위해 이 기사에서는 Python 애플리케이션 내에서 PST 파일을 구문 분석하는 방법을 보여줍니다.

PST 파일을 구문 분석하는 Python 라이브러리

PST 파일을 구문 분석하기 위해 Aspose.Email for Python을 사용합니다. 기능이 풍부한 이메일 클라이언트를 원활하게 구현할 수 있는 강력한 Python 라이브러리입니다. 또한 널리 사용되는 이메일 및 저장 형식으로 작업할 수 있습니다. 다음 명령을 사용하여 PyPI에서 라이브러리를 설치할 수 있습니다.

> pip install Aspose.Email-for-Python-via-NET

Python에서 PST 파일 구문 분석

다음은 PST 파일을 구문 분석하고 Python에서 해당 정보를 추출하는 단계입니다.

  • PersonalStorage.from\file() 메서드를 사용하여 PST 파일을 로드합니다.
  • PersonalStorage.root\folder.get_sub\folders() 메서드를 사용하여 PST로 폴더 모음을 가져옵니다.
  • 이름, 항목 수 등과 같은 폴더 정보를 검색합니다.

다음 코드 샘플은 PST 파일을 구문 분석하고 폴더 정보를 가져오는 방법을 보여줍니다.

from aspose.email import PersonalStorage

# Load PST file
personalStorage = PersonalStorage.from_file("Outlook.pst")

# Get folders' collection
folderInfoCollection = personalStorage.root_folder.get_sub_folders()

# Extract folders' information
for folderInfo in folderInfoCollection:
	print("Folder: " + folderInfo.display_name)
	print("Total Items: " + str(folderInfo.content_count))
	print("Total Unread Items: " + str(folderInfo.content_unread_count))

Python의 PST 파일에서 메시지 추출

메시지는 MS Outlook과 같은 Microsoft 프로그램에서 PST 파일에 저장하는 주요 엔터티입니다. Python에서 PST 파일에서 메시지를 추출하는 방법을 살펴보겠습니다.

  • PersonalStorage.from\file() 메서드를 사용하여 PST 파일을 로드합니다.
  • PersonalStorage.root\folder.get_sub\folder() 메서드를 사용하여 개체에서 원하는 폴더의 참조를 가져옵니다.
  • get_contents() 메서드를 사용하여 메시지 수집을 가져옵니다.
  • 컬렉션의 메시지를 반복하고 각 메시지의 필드를 읽습니다.

다음 코드 샘플은 Python의 PST 파일에서 메시지를 추출하는 방법을 보여줍니다.

from aspose.email import PersonalStorage

# Load PST file
sourcePst = PersonalStorage.from_file("Outlook.pst")

# Select desired folder
sourceFolder = sourcePst.root_folder.get_sub_folder("Inbox")

# Get content in the folder
messageInfoCollection = sourceFolder.get_contents()

# Loop through messages in folder
for messageInfo in messageInfoCollection:
        print ("Subject: " + messageInfo.subject)
        print("To: " + messageInfo.display_to)

Python의 PST 파일에서 연락처 추출

어떤 경우에는 PST 파일에 저장된 연락처 정보를 추출해야 할 수도 있습니다. 다음 단계는 Python에서 PST 파일의 연락처에 액세스하는 방법을 보여줍니다.

  • PersonalStorage.from\file() 메서드를 사용하여 PST 파일을 로드합니다.
  • get_predefined\folder(StandardIpmFolder.CONTACTS) 메서드를 사용하여 연락처 폴더의 참조를 가져옵니다.
  • get_contents() 메서드를 사용하여 연락처 모음을 가져옵니다.
  • 컬렉션을 반복하고 각 연락처를 읽거나 저장합니다.

다음 코드 샘플은 Python의 PST 파일에서 연락처를 추출하는 방법을 보여줍니다.

from aspose.email import PersonalStorage, StandardIpmFolder, ContactSaveFormat

# Load PST file
pst = PersonalStorage.from_file("SampleContacts_out.pst")

# Select contacts folder				
folderInfo = pst.get_predefined_folder(StandardIpmFolder.CONTACTS)

# Get contacts
contactCollection = folderInfo.get_contents()

# Loop through contacts collection
for  messageInfo in contactCollection:

    # Get the contact information
    mapi = pst.extract_message(messageInfo)

    contact = mapi.to_mapi_message_item()

    # Display some contents on screen
    print("Name: " + contact.name_info.display_name)

    # Save to disc in MSG Format
    if contact.name_info.display_name is not None:
        # Save contact
        contact.save("Contacts\\" + contact.name_info.display_name + "_out.msg")
        contact.save("Contacts\\" + contact.name_info.display_name + "_out.vcf", ContactSaveFormat.VCARD)

무료 API 라이선스 받기

임시 라이선스 받기를 통해 Python용 Aspose.Email을 무료로 사용해 볼 수 있습니다.

결론

이 기사에서는 Python에서 PST 파일을 구문 분석하는 방법을 배웠습니다. 또한 Python에서 프로그래밍 방식으로 PST 파일에서 연락처와 메시지를 추출하는 방법을 살펴보았습니다. 또한 문서를 사용하여 Aspose.Email에 대해 자세히 알아볼 수 있습니다. 또한 포럼에서 질문이나 질문을 공유할 수 있습니다.

또한보십시오