* adding exports to backend package, page icons update * Integrity report PDF generation * Fixed inline attachment images not displaying in the email preview by modifying `EmailPreview.svelte`. The email HTML references embedded images via `cid:` URIs (e.g., `src="cid:ii_19c6d5f8d5eee7bd6d91"`), but the component never resolved those `cid:` references to actual image data, even though `postal-mime` already parses inline attachments with their `contentId` and binary `content`. The `emailHtml` derived value now calls `resolveContentIdReferences()` before rendering, so inline/embedded images display correctly in the iframe preview. * feat: strip non-inline attachments from EML before storage Add nodemailer dependency and emlUtils helper to remove non-inline attachments from .eml buffers during ingestion. This avoids double-storing attachment data since attachments are already stored separately. * upload error handing for file based ingestion * Use Postgres for sync session management * Google workspace / MS 365 duplicate check, avoid extra API call when previous ingestion fails * OpenAPI specs for API docs * code formatting * ran duplicate check for IMAP import, optimize message listing * Version update
2.1 KiB
EML Import
OpenArchiver allows you to import EML files from a zip archive. This is useful for importing emails from a variety of sources, including other email clients and services.
Preparing the Zip File
To ensure a successful import, you should compress your .eml files to one zip file according to the following guidelines:
- Structure: The zip file can contain any number of
.emlfiles, organized in any folder structure. The folder structure will be preserved in OpenArchiver, so you can use it to organize your emails. - Compression: The zip file should be compressed using standard zip compression.
Here's an example of a valid folder structure:
archive.zip
├── inbox
│ ├── email-01.eml
│ └── email-02.eml
├── sent
│ └── email-03.eml
└── drafts
├── nested-folder
│ └── email-04.eml
└── email-05.eml
Creating an EML Ingestion Source
-
Go to the Ingestion Sources page in the OpenArchiver dashboard.
-
Click the Create New button.
-
Select EML Import as the provider.
-
Enter a name for the ingestion source.
-
Choose Import Method:
- Upload File: Click Choose File and select the zip archive containing your EML files. (Best for smaller archives)
- Local Path: Enter the path to the zip file inside the container. (Best for large archives)
Note on Local Path: When using Docker, the "Local Path" is relative to the container's filesystem.
- Recommended: Place your zip file in a
tempfolder inside your configured storage directory (STORAGE_LOCAL_ROOT_PATH). This path is already mounted. For example, if your storage path is/data, put the file in/data/temp/emails.zipand enter/data/temp/emails.zipas the path. - Alternative: Mount a separate volume in
docker-compose.yml(e.g.,- /host/path:/container/path) and use the container path.
-
Click the Submit button.
OpenArchiver will then start importing the EML files from the zip archive. The ingestion process may take some time, depending on the size of the archive.