Alt8Mail Documentation
Release 3.6.0 Main site

Search the manual

Search titles and page content.

Documentation / Run

Mailbox migration

Move users and mail from Office 365, Zoho Mail, Gmail or any IMAP/POP3 provider without losing history.

Updated November 15, 2026 5 min read Maintained by Altgence

#What migration covers

Alt8Mail imports users and mail from an existing provider into a tenant. The customer-admin mailbox import is gated by the migration license feature. It copies source messages into Alt8Mail; it does not delete the source mailbox unless the source itself is changed after cutover.

Migration is not a replacement for DNS cutover planning. The target domain must already be created and verified, and the target users must exist or be created during mapping.

#Supported sources

SourceProtocol in current codeImportant detail
Generic IMAPimapRecommended path for standards-compliant providers
POP3pop3Imports the INBOX only; no folder mapping
Gmail / Google WorkspaceGmail API OAuthA source-mailbox token or refreshable token bundle is required; generic IMAP also works
Microsoft 365 / Outlook / Exchange OnlineMicrosoft Graph OAuthGeneric IMAP via outlook.office365.com also works
Zoho MailGeneric IMAPThere is no dedicated Zoho migration API path
Google Workspace domain-wide delegationNot supportedUse source-mailbox credentials or generic IMAP
PST, EWS or on-prem ExchangeNot supportedNo PST/EWS importer is present
Zoho CRMNot a mailbox importerCRM is an add-on/integration, separate from mailbox migration

Do not promise PST migration, Exchange Web Services migration or a Zoho-specific API import.

#Before you start

  1. Confirm the migration entitlement is active.
  2. Create and verify the target domain in Customer Admin.
  3. Create target users, or prepare to create them during mapping.
  4. Confirm the source provider allows the chosen protocol and the account can authenticate.
  5. For Gmail or Microsoft Graph, prepare OAuth credentials and consent for the source mailbox. Generic IMAP remains a fallback.
  6. Ensure the target user quotas and storage capacity can hold the imported mail, attachments and versions.
  7. Take a configuration backup and record the current DNS TTL before cutover.

Never send source mailbox passwords through email or support tickets. The import screen seals credentials server-side; keep the uploaded job file on a trusted administrative workstation and remove it when the job is complete.

#The import workflow

  1. Open Customer Admin → Users → Import mailboxes.
  2. Choose the protocol, host, port and security. IMAP commonly uses 993 with TLS; POP3 commonly uses 995 with TLS. Port 25 is blocked for connected-account and import egress.
  3. Choose whether to include Junk/Spam, Trash/Deleted and Drafts. Junk and Trash are off by default; Drafts are on by default. Confirm this is what your retention and user expectations require.
  4. Set the maximum message size. The default is 50 MB, with a hard maximum of 64 MB.
  5. Upload a CSV/TSV/XLSX or enter rows manually. Columns are email, password (or an OAuth token/JSON bundle), and optional notify_email.
  6. Validate the source logins. Entries that fail authentication are marked and skipped; they do not block the rest of the job.
  7. Map each source mailbox to an existing user or create a new user. Auto-match by email where possible.
  8. Start the job. It runs server-side and is resumable; a closed browser tab does not cancel it.
  9. Watch per-item progress and the event log. Cancelling stops after the current batch; already copied mail remains.
  10. Download the results CSV, which contains generated credentials where users were created.
  11. Download the fidelity report for message, folder, attachment, unread, starred and calendar counts.
  12. Spot-check the target mailbox in webmail before cutover.

The current job limit is 500 mailboxes per job. The job-creation body is limited to 8 MB. Larger migrations should be split into controlled batches.

#Copy behavior and fidelity

  • The source mailbox is not deleted by Alt8Mail.
  • Messages, folder placement, read/unread state, flags, sent dates and attachments are preserved where the source protocol exposes them.
  • POP3 imports only the INBOX and cannot provide folder fidelity.
  • ClamAV scans imported messages when configured. Infected messages are routed to quarantine; scanner failures fail the item closed with a retryable cursor.
  • Messages above the scan cap can be imported unscanned and are logged.
  • The fidelity report is the evidence to use before cutover. Do not rely only on a total message count.

#Cutover plan

Use a staged cutover rather than changing MX immediately.

  1. Pilot. Import a small group, verify folder fidelity and send/receive behavior.
  2. Bulk import. Run the remaining batches and resolve authentication or quota failures.
  3. Freeze writes. Ask users to stop sending from the old provider during the final delta if the source cannot be resynced easily.
  4. Final sync. Import new messages or rerun the batch only after understanding whether the job is idempotent for your source. Do not duplicate mail by guessing.
  5. MX cutover. Lower DNS TTL ahead of time, then make the MX/autodiscover/web changes with a rollback record.
  6. Verify inbound. Confirm new mail arrives to Alt8Mail for every target domain.
  7. Verify outbound. Confirm SPF, DKIM, DMARC and PTR are correct before inviting users to send.
  8. Retire the source only after acceptance. Keep the source read-only for a defined grace period if the contract allows it.

Old messages remain in Alt8Mail after cutover; the source can be retired once fidelity and retention obligations are satisfied.

#Troubleshooting the import

SymptomCheck
auth_failedUse the full mailbox address, confirm the password or token, and verify the provider allows IMAP/POP3 or the required OAuth scopes.
Job stallsCheck the Control mail logs, target database health and source rate limits. A resumable job can be retried; do not launch duplicate jobs against the same mailbox.
Missing foldersPOP3 cannot preserve folders. For IMAP, confirm the folders exist and are not excluded by the job options.
Missing recent mailRun a final delta or reconcile from the source before MX cutover.
Attachment mismatchesCompare the fidelity report with the provider's own export. Very large or provider-specific items may be excluded by source policy.
Target quota errorsIncrease the user/domain quota or split the import.
Mail is quarantinedReview the target quarantine queue; do not disable scanning to make an import appear complete.

#Platform-level imports

System Control has separate import tools for platform operators: IMAP, mbox files/directories and Maildir. These write into an active local mailbox and are not the tenant self-service workflow. They run one at a time, stage under /var/vmail/.control-imports, and log progress and errors. Use the customer-admin migration workflow when a tenant is moving from another provider.

Need a hand?

We can help with the next step.

Talk to the team