E-mailmigraties beheren via de API

Beheer e-mailmigraties via de TrekMail API. Test verbindingen, start imports, volg voortgang, annuleer, probeer opnieuw en verwijder taken.

Artikeldetails

Type, moeilijkheid, abonnementen en wanneer het laatst is bijgewerkt.

Type
Naslagwerk
Moeilijkheid
Gemiddeld
Abonnementen
Starter · Pro · Agency
Laatst bijgewerkt
9 sep. 2026

Met de Migration API kun je via een integratie of agent e-mail van elke IMAP-provider importeren in een TrekMail-mailbox. Je kunt verbindingen testen, imports starten, de voortgang per map volgen, actieve taken annuleren, mislukte taken opnieuw proberen en oude records opruimen.

Voordat je begint

  • Je hebt een Starter-abonnement of hoger nodig. Het Nano-abonnement bevat de migratietool niet.
  • Met Pro en Agency kun je migraties via de API starten, annuleren, opnieuw proberen en verwijderen (migrations:read + migrations:write). Met Starter kun je migraties via de API lezen en nieuwe migraties vanuit het dashboard uitvoeren.
  • Er kan per account één migratie tegelijk worden uitgevoerd. Start een nieuwe nadat de huidige is voltooid of annuleer eerst de huidige migratie.

Scopes

Scope Wat deze doet Abonnementen
migrations:read Migraties weergeven, migratiedetails bekijken Starter · Pro · Agency
migrations:write Verbindingen testen, starten, annuleren, opnieuw proberen, verwijderen Pro · Agency

Endpoints

Verbinding testen

POST /api/v1/migrations/test-connection
Scope: migrations:write

Valideert IMAP-inloggegevens en retourneert een lijst met bronmappen en het aantal berichten. Gebruik dit voordat je een migratie start om te controleren of de verbinding werkt en de gebruiker te laten kiezen welke mappen moeten worden geïmporteerd.

Aanvraagbody:

Veld Type Vereist Beschrijving
source_host string Ja Hostnaam van de IMAP-server (bijvoorbeeld imap.gmail.com)
source_port integer Ja IMAP-poort (meestal 993 voor SSL)
source_security string Ja ssl, tls of none
source_email string Ja E-mailadres op de bronserver
source_username string Nee Gebruikersnaam als deze afwijkt van het e-mailadres
source_password string Ja Wachtwoord of appwachtwoord

Reactie (geslaagd):

{
  "success": true,
  "folders": {
    "INBOX": 1234,
    "Sent": 567,
    "Drafts": 12,
    "Work": 89
  }
}

Reactie (mislukt): 422 met foutcode connection_failed.

Migraties weergeven

GET /api/v1/migrations
Scope: migrations:read

Retourneert een gepagineerde lijst met migratietaken voor je account.

Queryparameters:

Parameter Type Beschrijving
status string Filteren op status (pending, validating, planning, processing, completed, failed, cancelled)
mailbox_id integer Filteren op doelmailbox
per_page integer Resultaten per pagina (standaard: 20, maximaal: 100)

Migratie ophalen

GET /api/v1/migrations/{id}
Scope: migrations:read

Retourneert de gedetailleerde migratiestatus, inclusief een uitsplitsing van de voortgang per map.

Reactie:

{
  "data": {
    "id": 5,
    "mailbox_id": 10,
    "mailbox_email": "support@acme.com",
    "provider": "gmail",
    "source_host": "imap.gmail.com",
    "source_email": "j***e@gmail.com",
    "status": "processing",
    "progress": 45,
    "total_messages": 1234,
    "imported_messages": 556,
    "failed_messages": 2,
    "skipped_duplicates": 12,
    "selected_folders": ["INBOX", "Sent"],
    "import_since": "2025-01-01",
    "skip_duplicates": true,
    "folders": [
      { "name": "INBOX", "status": "processing", "expected": 1000, "imported": 450, "failed": 2, "skipped": 10 },
      { "name": "Sent", "status": "pending", "expected": 234, "imported": 0, "failed": 0, "skipped": 0 }
    ],
    "error_message": null,
    "poll_hint_seconds": 10,
    "started_at": "2026-03-13T10:00:00+00:00",
    "finished_at": null,
    "created_at": "2026-03-13T09:59:50+00:00"
  }
}

poll_hint_seconds geeft aan hoe vaak je op updates moet controleren: 5 seconden tijdens pending/validating/planning, 10 seconden tijdens processing en null voor eindstatussen.

source_email wordt om veiligheidsredenen gemaskeerd (bijvoorbeeld j***e@gmail.com).

Migratie starten

POST /api/v1/migrations
Scope: migrations:write

Start een nieuwe e-mailmigratie. Er kan per account één migratie tegelijk worden uitgevoerd.

Aanvraagbody:

Veld Type Vereist Beschrijving
mailbox_id integer Ja ID van de TrekMail-doelmailbox
provider string Ja gmail, outlook, yahoo, icloud of generic_imap
source_host string Ja Hostnaam van de IMAP-server
source_port integer Ja IMAP-poort
source_security string Ja ssl, tls of none
source_email string Ja E-mailadres van de bron
source_username string Nee Gebruikersnaam als deze afwijkt van het e-mailadres
source_password string Ja Bronwachtwoord of appwachtwoord
selected_folders string[] Nee Specifieke mappen om te importeren (standaard: alle)
import_since date Nee Alleen e-mails na deze datum importeren
skip_duplicates boolean Nee Dubbele berichten overslaan (standaard: true)

Reactie: 201 met de resource van de migratietaak.

Foutreacties:

Status Code Betekenis
409 conflict Er wordt al een actieve migratie uitgevoerd op dit account
503 migration_capacity_reached De migratielimiet voor de hele server is bereikt (opnieuw proberen is mogelijk)
422 validation_error Ongeldige parameters of mailbox niet gevonden

Migratie annuleren

POST /api/v1/migrations/{id}:cancel
Scope: migrations:write

Annuleert een actieve migratie. De migratie moet een actieve status hebben (pending, validating, planning of processing).

Migratie opnieuw proberen

POST /api/v1/migrations/{id}:retry
Scope: migrations:write

Probeert een failed of cancelled migratie opnieuw. Zet de voortgang terug op 0 en gaat opnieuw de validatiepijplijn in.

Retourneert 409 als er al een andere migratie op het account wordt uitgevoerd.

Gedeeltelijke migraties

TrekMail kan proberen een gedeeltelijk voltooide migratie voort te zetten wanneer dit veilig is. Controleer de migratiestatus voordat je actie onderneemt. Als de migratie niet meer vordert, controleer je de inloggegevens en limieten van het bronaccount. Gebruik daarna het endpoint om opnieuw te proberen of de actie Doorgaan in het dashboard. Ga er niet van uit dat een gedeeltelijke import wordt voltooid zonder de eindstatus te controleren.

Migratie verwijderen

DELETE /api/v1/migrations/{id}
Scope: migrations:write

Verwijdert een migratierecord. De migratie mag niet actief zijn (annuleer deze eerst).

Retourneert bij succes 204 No Content.

Frequentielimieten

Schrijfbewerkingen voor migraties hebben een eigen frequentielimiet van 10 verzoeken per minuut per token, los van de standaard frequentielimiet van de API.

Daarnaast hanteert de server een globale gelijktijdigheidslimiet (standaard: 20 gelijktijdige migraties). Wanneer de limiet is bereikt, retourneren nieuwe migratieverzoeken 503 met migration_capacity_reached en retryable: true. Wacht een paar minuten en probeer het opnieuw.

Auditgebeurtenissen

Alle acties van de migratie-API worden vastgelegd in het auditlogboek:

  • migration_started: er is een nieuwe migratie gestart
  • migration_cancelled: een actieve migratie is geannuleerd
  • migration_retried: een mislukte of geannuleerde migratie is opnieuw geprobeerd
  • migration_deleted: een migratierecord is verwijderd

MCP-tools

Dezelfde migratiemogelijkheden zijn beschikbaar via de MCP-server, waaronder acties om enkele en bulkmigraties te testen, weer te geven, te starten, te annuleren, opnieuw te proberen, te hervatten, het wachtwoord bij te werken en te verwijderen. Een lokaal gehoste MCP-beheerder kan expliciete goedkeuring vereisen voor schrijfbewerkingen voor migraties. Zie AI-agenten verbinden (MCP) voor meer informatie.

API voor bulkmigraties

Met de API voor bulkmigraties kun je veel accounts tegelijk migreren via een gegevenspayload in CSV-stijl. Zie Bulk-e-mailmigratie voor de gebruikershandleiding en CSV-indeling voor bulkmigraties voor de gegevensindeling.

Endpoints

Methode Endpoint Scope Beschrijving
POST /api/v1/migrations/bulk/preview migrations:write CSV-gegevens vooraf bekijken en valideren
POST /api/v1/migrations/bulk migrations:write Een batch met bulkmigraties starten
GET /api/v1/migrations/bulk migrations:read Batches met bulkmigraties weergeven
GET /api/v1/migrations/bulk/{id} migrations:read Batchdetails met de status per taak ophalen
POST /api/v1/migrations/bulk/{id}:cancel migrations:write De hele batch annuleren
POST /api/v1/migrations/bulk/{id}:retry migrations:write Mislukte taken in de batch opnieuw proberen
POST /api/v1/migrations/bulk/{id}:resume migrations:write Een gepauzeerde batch hervatten
DELETE /api/v1/migrations/bulk/{id} migrations:write Het batchrecord verwijderen
PATCH /api/v1/migrations/bulk/{id}/jobs/{job}/password migrations:write Het bronwachtwoord voor een mislukte taak bijwerken

Aanvraag voor voorvertoning

POST /api/v1/migrations/bulk/preview
Scope: migrations:write
Veld Type Vereist Beschrijving
data string Ja CSV-gegevens (één rij per regel)
provider string Nee gmail, outlook, yahoo, icloud, generic_imap
source_host string Nee IMAP-host (als de provider generic_imap is)
source_port integer Nee IMAP-poort (standaard 993)
source_security string Nee ssl, tls, none
per_row_server boolean Nee Elke rij heeft eigen serverinstellingen (indeling met 6 kolommen)

De reactie bevat gecategoriseerde rijen (valid, invalid_source_email, invalid_destination, enzovoort), abonnementslimieten, een tijdsschatting en opslaginformatie.

Aanvraag om batch te starten

POST /api/v1/migrations/bulk
Scope: migrations:write

Dezelfde velden als voor de voorvertoning, plus:

Veld Type Vereist Beschrijving
name string Nee Batchnaam (automatisch gegenereerd als deze leeg is)
folder_strategy string Nee all, standard, inbox_only (standaard: all)
import_since string Nee Datumfilter (YYYY-MM-DD)
skip_duplicates boolean Nee Dubbele berichten overslaan (standaard: true)
idempotency_key string Nee Door de client verstrekte idempotentiesleutel

Gelijktijdigheidslimieten

Abonnement Maximumaantal rijen per batch Gelijktijdig per account
Starter 100 2
Pro 300 5
Agency 1,000 10

De globale serverlimiet (20 gelijktijdige migraties) wordt gedeeld door afzonderlijke migraties en bulkmigraties.

MCP-tools

De MCP-tools voor bulkmigratie zijn preview_bulk_migration, start_bulk_migration, list_bulk_migrations, get_bulk_migration, cancel_bulk_migration, retry_bulk_migration, resume_bulk_migration, delete_bulk_migration en update_bulk_migration_job_password. Een lokaal gehoste MCP-beheerder kan expliciete goedkeuring vereisen voor schrijfacties.

Snelle oplossingen

  • 403 "insufficient_scope": je token heeft migrations:read of migrations:write nodig. Maak een nieuw token met de juiste scopes.
  • 403 "token_scope_blocked_by_plan": voor migratiescopes is een betaald abonnement nodig (Starter of hoger).
  • 409 "active migration running": annuleer de bestaande migratie of wacht totdat deze is voltooid.
  • 503 "migration_capacity_reached": de server heeft de maximale capaciteit bereikt. Probeer het over een paar minuten opnieuw.
  • 422 bij test-connection: controleer je IMAP-inloggegevens, hostnaam, poort en beveiligingsinstelling.

Gerelateerde artikelen

Spring naar nabije gidsen die de workflow voortzetten.

We gebruiken noodzakelijke technologieën om TrekMail te laten werken en te beveiligen. Door te bevestigen staat u ook beperkte analyses en advertentiemeting toe zoals beschreven in ons Cookiebeleid.

Inloggen bij TrekMail

Toegang tot je dashboard, mailboxen en DNS.

of

12 tekens wachtwoorden komen overeen

of

Herstelmail verzonden

Als er een account bestaat voor dit e-mailadres, hebben we instructies gestuurd om je wachtwoord opnieuw in te stellen.

Door verder te gaan ga je akkoord met de TrekMail- Voorwaarden en het Privacybeleid.