Управление записями журнала Outlook MAPI в файлах PST

Добавить записи MAPI Journal в PST‑файлы

Создать новый файл PST и добавить подпапки показывает, как создать новый PST‑файл и добавить в него подпапку. С помощью Aspose.Email также можно создать новую запись MAPI journal и добавить её в PST‑файл. Приведённый ниже пример кода демонстрирует, как создать запись журнала, установить её свойства и сохранить её в только что созданном PST‑файле:

  1. Создать запись MAPI Journal: Создайте экземпляр MapiJournal объект с темой, телом и типом.
  2. Задать время журнала: Определите время начала записи журнала как текущее дата‑время, используя dt.datetime.now() и установите конечное время на один час позже, используя dt.datetime.today() + timedelta(hours=1).
  3. Создать PST‑файл: Используйте PersonalStorage.create для создания нового PST‑файла в формате UNICODE.
  4. Создать папку журнала: В новом PST‑файле создайте предопределённую папку с именем "Journal" с помощью create_predefined_folder с StandardIpmFolder.JOURNAL параметра.
  5. Добавить запись журнала в папку: Добавьте ранее созданную запись журнала MAPI в папку "Journal" с помощью add_mapi_message_item.

Добавить вложения к записям MAPI Journal в PST‑файлах

Приведённый ниже пример кода демонстрирует, как создать и сохранить элемент MAPI journal с помощью библиотеки Aspose.Email. Запись журнала относится к телефонному звонку и включает файлы вложений.

  1. Определить каталог и вложения:
    • data_dir: Переменная, содержащая путь к каталогу данных, где будут храниться файлы и результаты.
    • attach_file_names: Список, содержащий полные пути к именам файлов вложений, которые будут добавлены к журналу.
  2. Создать объект MapiJournal:
    • A MapiJournal объект создаётся с заголовком "testJournal". Эта запись журнала описана как "Phone call" и в поле темы, и в поле типа.
    • journal.start_time устанавливается в текущее время с помощью datetime.now().
    • journal.end_time рассчитывается путем добавления одного часа к времени начала с помощью timedelta(hours=1).
  3. Установить участвующие компании:
    • Этот journal.companies атрибут обновляется списком компаний, участвующих в этой записи журнала.
  4. Прикрепить файлы к журналу:
    • Цикл перебирает каждый файл в attach_file_names. Для каждого файла он добавляет файл в journal.attachments путём чтения содержимого файла в бинарном режиме.
  5. Сохранить MapiJournal:
    • В конце запись журнала сохраняется как файл ".msg" в указанном каталоге данных.
import os
from datetime import datetime, timedelta
from aspose.email.mapi import MapiJournal

data_dir = "path_to_data_directory"
attach_file_names = [os.path.join(data_dir, "Desert.jpg"), os.path.join(data_dir, "download.png")]

journal = MapiJournal("testJournal", "This is a test journal", "Phone call", "Phone call")
journal.start_time = datetime.now()
journal.end_time = journal.start_time + timedelta(hours=1)
journal.companies = ["company 1", "company 2", "company 3"]

for attach in attach_file_names:
    journal.attachments.append(attach, open(attach, 'rb').read())

journal.save(os.path.join(data_dir, "AddAttachmentsToMapiJournal_out.msg"))