Bring the history of a mailbox into Yuva from a file you exported, without giving Yuva any access to the account. This suits a very large mailbox, a program that has no IMAP, or an account Yuva cannot sign in to. The overview is in Move to Yuva.
Open Settings → Move to Yuva → New migration, enter the address the mail was sent to, open Or upload an export file, choose Google Takeout or Export file and pick the file. Then choose what to bring, scan and copy as in any other migration. The file is checked and read on the server; Yuva never changes it.
Files Yuva reads
| File | Notes |
|---|---|
Google Takeout .mbox |
Unzip the Takeout archive first and upload the .mbox file from its Mail folder. Gmail’s labels and threads come with it. |
An .mbox file |
mboxrd (what most programs write) or, under “mbox options”, the older mboxo. |
A .zip of .eml files |
Its folders become labels. |
A .zip of a Maildir |
Its folders become labels. |
A .zip of .mbox files |
Each file becomes a label. The .mbox files must be stored uncompressed in the zip. |
Yuva does not read .tgz or .gz files, compressed .mbox files inside a zip, or Outlook’s .pst
files. Unzip an archive and upload the .mbox inside it.
Limits
| Limit | Value |
|---|---|
| Size of one upload part | 8 MiB |
| Size of one file | 20 GiB, set by the server’s YUVA_MIGRATION_UPLOAD_MAX_BYTES |
| Entries in a zip | 1,000,000 |
| Compression of a zip entry | at most 100:1 |
Messages larger than YUVA_MIGRATION_MAX_MESSAGE_BYTES are skipped,
as in every migration. One file per migration; for another file, start a new migration.
Upload and resume
The browser cuts the file into 8 MiB parts, sends several at once and retries a part that fails. Keep the page open. If the connection drops, the upload goes on when it is back. If the page was closed or reloaded, open the migration again and pick the same file again: Yuva compares what it already has and sends only the missing parts. A different file is not mixed in; the page asks before it sends that one from the start. When all parts have arrived, Yuva reads the file and tells you its format.
When the file is refused
Yuva checks a zip before it reads anything from it. A refused file’s uploaded parts are deleted; fix the file and upload it again.
| Reason | What it means |
|---|---|
unknown_format |
It is neither an mbox nor a zip. |
empty |
There is no message in it. |
corrupt |
The zip cannot be read; it may be damaged or cut off. Make it again. |
path_traversal |
An entry has .. or an absolute path in its name. |
symlink |
An entry is a symbolic link. Make the zip again without links. |
too_many_entries |
The zip has more than 1,000,000 entries. |
zip_bomb |
An entry is compressed more than 100:1. |
entry_too_large |
An entry is larger than the server’s limit for one file. |
encrypted |
An entry has a password. |
unsupported_compression |
An entry is neither stored nor deflated. |
compressed_mbox |
An .mbox inside the zip is compressed. Unzip the archive and upload the .mbox itself. |
A file larger than the server’s limit is refused before it is sent. If the server’s limit is 0, file
imports are off.
The file is deleted
The uploaded parts, and so the file, are deleted when the migration completes, is cancelled or is deleted. Yuva keeps only what it imported. The migration page says when the file was deleted.
Get a file out of your mail
Each page below is the program’s own help.
- Google Takeout. Open Google Takeout, select only Mail, choose a
one-time export as Zip files, and create it. Google emails you a link when the archive is ready,
which can take from minutes to days; the link works for about 7 days and 5 downloads. Unzip the archive
and upload the
.mboxfile from the Mail folder. Google’s page: Export your Google data. - Apple Mail. Select the mailboxes and choose Mailbox > Export Mailbox. Mail writes each one as an
.mboxfile. Apple’s page: Import or export mailboxes in Mail. - Thunderbird. Thunderbird keeps each mail folder as an mbox file in your profile. Mozilla’s page: Profiles - Where Thunderbird stores user data. Upload a folder’s file.
- Outlook. Outlook exports to
.pst, which Yuva does not read. Convert the.pstto.mboxor.emlfiles with a conversion tool of your choice, put the.emlfiles in a.zip, and upload that. Microsoft’s page: Export or back up email to an Outlook .pst file. - Proton Mail. Proton’s export tool writes
.emlfiles. Put them in a.zipand upload it. Proton’s page: Export emails.
Very large Gmail mailboxes
Start with a Takeout file, then connect the mailbox over IMAP for the newer mail and the switch: see Gmail and Google Workspace.
From your backend
Owners, admins and API keys without an inbox limit that hold migrations:manage. Start a migration with a
file or takeout preset, then:
| Endpoint | Use |
|---|---|
GET /v1/migrations/{migrationId}/upload |
The parts the server has, to resume a cut upload. |
POST /v1/migrations/{migrationId}/upload/parts/{part} |
Send part part (from 0): a file of at most 8 MiB and its sha256, as multipart/form-data. Parts may arrive in any order and in parallel. |
POST /v1/migrations/{migrationId}/upload/complete |
Check the parts and read the file; the migration becomes connected. |
Errors worth handling: 413 part_too_large, 422 checksum_mismatch (the part is not stored),
422 hosted_limit (the file is over the server’s limit), 422 upload_incomplete (missing_parts names the
first missing parts), 422 file_refused (reason, and the zip entry when one is to blame) and
409 migration_state. The rest of the flow is in Move to Yuva; full shapes are in the
API contract.