API로 이메일 마이그레이션 관리하기

TrekMail API로 이메일 마이그레이션을 관리하세요. 연결 테스트, 가져오기 시작, 진행 상황 모니터링, 취소, 재시도, 작업 삭제 방법을 안내합니다.

문서 정보

유형, 난이도, 요금제, 최종 업데이트 정보입니다.

유형
참조 자료
난이도
중급
요금제
Starter · Pro · Agency
최종 업데이트
2026년 9월 9일

Migration API를 사용하면 통합 또는 에이전트를 통해 모든 IMAP 제공업체의 이메일을 TrekMail 사서함으로 가져올 수 있습니다. 연결을 테스트하고, 가져오기를 시작하고, 폴더별 진행 상황을 모니터링하고, 실행 중인 작업을 취소하고, 실패한 작업을 재시도하고, 오래된 레코드를 정리할 수 있습니다.

시작하기 전에

  • Starter 이상의 요금제가 필요합니다. Nano 요금제에는 마이그레이션 도구가 포함되지 않습니다.
  • Pro와 Agency에서는 API를 통해 마이그레이션을 시작, 취소, 재시도 및 삭제할 수 있습니다(migrations:read + migrations:write). Starter에서는 API로 마이그레이션을 읽고 대시보드에서 새 마이그레이션을 실행할 수 있습니다.
  • 계정마다 한 번에 하나의 마이그레이션만 실행할 수 있습니다. 현재 마이그레이션이 끝난 후 새 마이그레이션을 시작하거나 먼저 현재 마이그레이션을 취소하세요.

범위

범위 기능 요금제
migrations:read 마이그레이션 목록 및 마이그레이션 세부 정보 보기 Starter · Pro · Agency
migrations:write 연결 테스트, 시작, 취소, 재시도, 삭제 Pro · Agency

엔드포인트

연결 테스트

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

IMAP 자격 증명을 검증하고 메시지 수가 포함된 원본 폴더 목록을 반환합니다. 마이그레이션을 시작하기 전에 이를 사용하여 연결이 작동하는지 확인하고 사용자가 가져올 폴더를 선택하도록 하세요.

요청 본문:

필드 유형 필수 설명
source_host string IMAP 서버 호스트 이름(예: imap.gmail.com)
source_port integer IMAP 포트(SSL은 일반적으로 993)
source_security string ssl, tls 또는 none
source_email string 원본 서버의 이메일 주소
source_username string 아니요 이메일과 다른 경우 사용할 사용자 이름
source_password string 비밀번호 또는 앱 비밀번호

응답(성공):

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

응답(실패): 422connection_failed 오류 코드.

마이그레이션 목록

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

계정의 마이그레이션 작업을 페이지가 매겨진 목록으로 반환합니다.

쿼리 매개변수:

매개변수 유형 설명
status string 상태별 필터링(pending, validating, planning, processing, completed, failed, cancelled)
mailbox_id integer 대상 사서함별 필터링
per_page integer 페이지당 결과 수(기본값: 20, 최대: 100)

마이그레이션 가져오기

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

폴더별 진행 상황 분석을 포함한 자세한 마이그레이션 상태를 반환합니다.

응답:

{
  "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**는 업데이트를 폴링할 빈도를 알려 줍니다. pending/validating/planning 중에는 5초, processing 중에는 10초, 종료 상태에서는 null입니다.

**source_email**은 보안을 위해 마스킹됩니다(예: j***e@gmail.com).

마이그레이션 시작

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

새 이메일 마이그레이션을 시작합니다. 계정마다 한 번에 하나의 마이그레이션만 실행할 수 있습니다.

요청 본문:

필드 유형 필수 설명
mailbox_id integer 대상 TrekMail 사서함 ID
provider string gmail, outlook, yahoo, icloud 또는 generic_imap
source_host string IMAP 서버 호스트 이름
source_port integer IMAP 포트
source_security string ssl, tls 또는 none
source_email string 원본 이메일 주소
source_username string 아니요 이메일과 다른 경우 사용할 사용자 이름
source_password string 원본 비밀번호 또는 앱 비밀번호
selected_folders string[] 아니요 가져올 특정 폴더(기본값: 모두)
import_since date 아니요 이 날짜 이후의 이메일만 가져오기
skip_duplicates boolean 아니요 중복 메시지 건너뛰기(기본값: true)

응답: 마이그레이션 작업 리소스와 함께 201 반환.

오류 응답:

상태 코드 의미
409 conflict 이 계정에서 활성 마이그레이션이 이미 실행 중임
503 migration_capacity_reached 서버 전체 마이그레이션 한도 도달(재시도 가능)
422 validation_error 매개변수가 잘못되었거나 사서함을 찾을 수 없음

마이그레이션 취소

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

실행 중인 마이그레이션을 취소합니다. 마이그레이션은 활성 상태(pending, validating, planning 또는 processing)여야 합니다.

마이그레이션 재시도

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

failed 또는 cancelled 마이그레이션을 재시도합니다. 진행률을 0으로 재설정하고 검증 파이프라인에 다시 진입합니다.

계정에서 다른 마이그레이션이 이미 실행 중이면 409를 반환합니다.

부분 마이그레이션

안전한 경우 TrekMail은 부분적으로 완료된 마이그레이션을 계속하려고 할 수 있습니다. 작업을 수행하기 전에 마이그레이션 상태를 확인하세요. 더 이상 진행되지 않으면 원본 계정 자격 증명과 한도를 검토한 후 재시도 엔드포인트 또는 대시보드의 계속 작업을 사용하세요. 최종 상태를 확인하지 않은 채 부분 가져오기가 완료될 것으로 가정하지 마세요.

마이그레이션 삭제

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

마이그레이션 레코드를 삭제합니다. 마이그레이션이 실행 중이면 안 됩니다(먼저 취소하세요).

성공하면 204 No Content를 반환합니다.

속도 제한

마이그레이션 쓰기 작업에는 표준 API 속도 제한과 별도로 토큰당 분당 10개 요청이라는 전용 속도 제한이 적용됩니다.

또한 서버는 전역 동시 실행 한도(기본값: 동시 마이그레이션 20개)를 적용합니다. 한도에 도달하면 새 마이그레이션 요청은 503과 함께 migration_capacity_reachedretryable: true를 반환합니다. 몇 분 후 다시 시도하세요.

감사 이벤트

모든 마이그레이션 API 작업은 감사 로그에 기록됩니다.

  • migration_started: 새 마이그레이션이 시작됨
  • migration_cancelled: 실행 중인 마이그레이션이 취소됨
  • migration_retried: 실패하거나 취소된 마이그레이션이 재시도됨
  • migration_deleted: 마이그레이션 레코드가 삭제됨

MCP 도구

단일 및 대량 마이그레이션을 테스트, 나열, 시작, 취소, 재시도, 재개하고 비밀번호를 업데이트하거나 삭제하는 작업을 포함하여 동일한 마이그레이션 기능을 MCP 서버에서 사용할 수 있습니다. 로컬에서 호스팅하는 MCP 관리자는 마이그레이션 쓰기에 명시적 승인을 요구할 수 있습니다. 자세한 내용은 AI 에이전트 연결(MCP)을 참조하세요.

대량 마이그레이션 API

대량 마이그레이션 API를 사용하면 CSV 형식의 데이터 페이로드로 여러 계정을 한 번에 마이그레이션할 수 있습니다. 사용자 가이드는 대량 이메일 마이그레이션을, 데이터 형식은 대량 마이그레이션 CSV 형식을 참조하세요.

엔드포인트

메서드 엔드포인트 범위 설명
POST /api/v1/migrations/bulk/preview migrations:write CSV 데이터 미리 보기 및 검증
POST /api/v1/migrations/bulk migrations:write 대량 마이그레이션 배치 시작
GET /api/v1/migrations/bulk migrations:read 대량 마이그레이션 배치 목록
GET /api/v1/migrations/bulk/{id} migrations:read 작업별 상태가 포함된 배치 세부 정보 가져오기
POST /api/v1/migrations/bulk/{id}:cancel migrations:write 전체 배치 취소
POST /api/v1/migrations/bulk/{id}:retry migrations:write 배치에서 실패한 작업 재시도
POST /api/v1/migrations/bulk/{id}:resume migrations:write 일시 중지된 배치 재개
DELETE /api/v1/migrations/bulk/{id} migrations:write 배치 레코드 삭제
PATCH /api/v1/migrations/bulk/{id}/jobs/{job}/password migrations:write 실패한 작업의 원본 비밀번호 업데이트

미리 보기 요청

POST /api/v1/migrations/bulk/preview
Scope: migrations:write
필드 유형 필수 설명
data string CSV 데이터(줄마다 한 행)
provider string 아니요 gmail, outlook, yahoo, icloud, generic_imap
source_host string 아니요 IMAP 호스트(제공업체가 generic_imap인 경우)
source_port integer 아니요 IMAP 포트(기본값 993)
source_security string 아니요 ssl, tls, none
per_row_server boolean 아니요 각 행에 자체 서버 설정 포함(6열 형식)

응답에는 분류된 행(valid, invalid_source_email, invalid_destination 등), 요금제 한도, 예상 시간 및 저장 공간 정보가 포함됩니다.

배치 시작 요청

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

미리 보기와 같은 필드에 다음이 추가됩니다.

필드 유형 필수 설명
name string 아니요 배치 이름(비어 있으면 자동 생성)
folder_strategy string 아니요 all, standard, inbox_only(기본값: all)
import_since string 아니요 날짜 필터(YYYY-MM-DD)
skip_duplicates boolean 아니요 중복 메시지 건너뛰기(기본값: true)
idempotency_key string 아니요 클라이언트가 제공한 멱등성 키

동시 실행 한도

요금제 배치당 최대 행 수 계정당 동시 실행 수
Starter 100 2
Pro 300 5
Agency 1,000 10

전역 서버 한도(동시 마이그레이션 20개)는 단일 마이그레이션과 대량 마이그레이션이 공유합니다.

MCP 도구

대량 마이그레이션 MCP 도구는 preview_bulk_migration, start_bulk_migration, list_bulk_migrations, get_bulk_migration, cancel_bulk_migration, retry_bulk_migration, resume_bulk_migration, delete_bulk_migration, update_bulk_migration_job_password입니다. 로컬에서 호스팅하는 MCP 관리자는 쓰기 작업에 명시적 승인을 요구할 수 있습니다.

빠른 해결 방법

  • 403 "insufficient_scope": 토큰에 migrations:read 또는 migrations:write가 필요합니다. 올바른 범위로 새 토큰을 만드세요.
  • 403 "token_scope_blocked_by_plan": 마이그레이션 범위에는 유료 요금제(Starter 이상)가 필요합니다.
  • 409 "active migration running": 기존 마이그레이션을 취소하거나 완료될 때까지 기다리세요.
  • 503 "migration_capacity_reached": 서버 용량이 가득 찼습니다. 몇 분 후 다시 시도하세요.
  • test-connection의 422: IMAP 자격 증명, 호스트 이름, 포트 및 보안 설정을 확인하세요.

관련 문서

워크플로를 이어가는 인근 가이드로 이동하세요.

TrekMail 운영과 보호에 필요한 기술을 사용합니다. 확인하면 쿠키 정책에 설명된 제한적인 분석 및 광고 측정도 허용됩니다.

TrekMail 로그인

대시보드, 메일함, DNS에 액세스하세요.

또는

12자 비밀번호 일치

또는

재설정 이메일 전송됨

이 이메일로 등록된 계정이 있으면 비밀번호 재설정 안내를 보내드렸습니다.

계속 진행하면 TrekMail의 이용약관개인정보 처리방침에 동의하게 됩니다.