Scriptory

Bulk Outlook email import

Export any number of messages from Outlook into ~/Seafile/buffer/mail/. Outlook's subject-based filenames and numeric collision suffixes do not matter; the importer reads each email's headers and content hash.

Import all new messages:

~/Seafile/tower/repo/scriptory/import-outlook-mail.py

The default canonical destination is ~/Seafile/doc/job/Parallels/mail/. Messages are grouped by the year and month of the email's Date header. A normal filename is YYYYMMDD-HHMMSSZ-subject.eml; the timestamp is normalized to UTC when the header includes a timezone. A short SHA-256 suffix is added only if a different message already has the same generated filename. Unknown or invalid dates are stored under unknown-date/.

The importer regenerates index.csv from the archive with the full SHA-256, selected normalized header values, and archive path. Its duplicate rules are:

  • An existing SHA-256 is an exact duplicate and is skipped.
  • A repeated Message-ID with different bytes is preserved and reported as a variant.
  • A repeated subject alone is not a duplicate.

Each new message is copied to a temporary file beside its final destination, SHA-256 verified, and then published without overwriting an existing file. Files in ~/Seafile/buffer/mail/ are never modified or deleted. Clear the buffer manually only after confirming that Seafile has synchronized the canonical archive.

Only .eml files are imported. Other files are reported as unsupported, left untouched, and cause a nonzero exit so they are not missed before the buffer is cleared. To use different directories:

~/Seafile/tower/repo/scriptory/import-outlook-mail.py \
  --source /path/to/export \
  --archive /path/to/archive
Description
No description provided
Readme 61 KiB
Languages
Python 90.9%
Shell 9.1%