Mailtrap

resmi

Terintegrasi dengan Mailtrap Email API.

Apa yang bisa Anda lakukan dengan Mailtrap MCP?

  • Mengirim email transaksional — Minta asisten Anda untuk mengirim email transaksional dengan konten inline atau template melalui send-email.
  • Menguji email di sandbox — Kirim email uji ke kotak masuk sandbox dan periksa konten, skor spam, serta analisis HTML.
  • Memantau log pengiriman — Cari log email dan periksa riwayat peristiwa untuk men-debug masalah pengiriman dengan list-email-logs.
  • Mengelola template email — Buat, daftarkan, perbarui, atau hapus template menggunakan perintah bahasa alami.
  • Menganalisis statistik pengiriman — Dapatkan tingkat pengiriman, bounce, buka, dan klik untuk rentang tanggal apa pun dengan get-sending-stats.
  • Mengelola domain pengirim — Daftarkan, buat, dan konfigurasikan domain pengirim dengan verifikasi DNS dan pelacakan klik.

Dokumentasi

TypeScript test NPM

Server MCP Resmi Mailtrap

Server MCP resmi untuk Mailtrap — platform pengiriman email. Server ini menghubungkan akun Mailtrap Anda ke Claude, Cursor, VS Code, dan asisten AI lain yang kompatibel dengan MCP.

Kirim email transaksional dan massal, uji pesan dengan aman di Email Sandbox, kelola template, kontak, domain pengirim, dan webhook, periksa log email dan statistik pengiriman, selesaikan masalah deliverability, dan kelola sumber daya akun — semuanya menggunakan perintah bahasa alami.

Kemampuan

  • Email API dan SMTP — Kirim email transaksional dan massal, termasuk pesan berbasis batch dan template.
  • Pengujian email — Uji pesan di Email Sandbox dan periksa konten, header, lampiran, skor spam, dan kompatibilitas klien HTML.
  • Pemantauan pengiriman — Cari log email, periksa riwayat peristiwa, dan analisis tingkat pengiriman, bounce, buka, klik, dan spam.
  • Infrastruktur email — Kelola domain pengirim, verifikasi DNS, webhook, dan penekanan (suppressions).
  • Kontak — Kelola kontak, daftar, bidang kustom, dan peristiwa, dengan impor dan ekspor.
  • Manajemen akun — Tinjau penggunaan penagihan dan kelola akses, izin, token API, dan sub-akun.

Klien MCP yang Didukung

Berfungsi dengan Claude Desktop, Claude Code, Cursor, VS Code, dan klien lain yang kompatibel dengan MCP. Petunjuk pengaturan untuk masing-masing ada di bawah.

Prasyarat

Sebelum menggunakan server MCP ini, Anda perlu:

  1. Buat akun Mailtrap
  2. Verifikasi domain Anda
  3. Dapatkan token API dari Pengaturan API Mailtrap
  4. Dapatkan ID Akun dari Manajemen akun Mailtrap

Variabel Lingkungan yang Diperlukan:

  • MAILTRAP_API_TOKEN - Diperlukan untuk semua fungsi
  • MAILTRAP_ACCOUNT_ID - Diperlukan untuk template, statistik, log email, daftar/tampilkan sandbox, domain pengirim, dan penekanan. Opsional hanya untuk alat kirim (send-email, send-sandbox-email, dan alat batch-send-*), alat kampanye email, alat info perusahaan, dan alat opt-out pelacakan.

Opsional (dapat diberikan sebagai parameter alat):

  • DEFAULT_FROM_EMAIL - Email pengirim default saat from tidak diberikan ke send-email, send-sandbox-email, atau alat batch-send-* (yang mengisi base.from). Memungkinkan penggantian pengirim per panggilan melalui parameter from.
  • MAILTRAP_SANDBOX_ID - ID sandbox default untuk alat sandbox saat sandbox_id tidak diberikan. Memungkinkan peralihan antar sandbox per panggilan melalui parameter sandbox_id.
  • MAILTRAP_TEST_INBOX_ID - ID kotak masuk uji default untuk alat sandbox saat test_inbox_id tidak diberikan. Memungkinkan peralihan antar kotak masuk per panggilan melalui parameter test_inbox_id. Alias lama untuk MAILTRAP_SANDBOX_ID, masih dihormati sebagai cadangan.
  • MAILTRAP_ORGANIZATION_ID - Diperlukan untuk alat organisasi (list-sub-accounts, create-sub-account).
  • MAILTRAP_ORGANIZATION_API_TOKEN - Token API dengan cakupan organisasi. Diperlukan untuk alat organisasi (terpisah dari MAILTRAP_API_TOKEN).

Instalasi Cepat

Install in Cursor

Install with Node in VS Code

CLI Smithery

Smithery adalah penginstal dan pengelola registri untuk server MCP yang berfungsi dengan semua klien AI.

npx @smithery/cli install mailtrap

Smithery secara otomatis menangani konfigurasi klien dan menyediakan proses pengaturan interaktif. Ini adalah cara termudah untuk memulai dengan server MCP secara lokal.

Pengaturan

Claude Desktop

Gunakan MCPB untuk menginstal server Mailtrap. Anda dapat menemukan file tersebut di Rilis.
Unduh file .MCPB dan buka. Jika Anda memiliki Claude Desktop - file akan terbuka dan menyarankan untuk dikonfigurasi.

Claude Desktop atau Cursor

Tambahkan konfigurasi berikut:

{
  "mcpServers": {
    "mailtrap": {
      "command": "npx",
      "args": ["-y", "mcp-mailtrap"],
      "env": {
        "MAILTRAP_API_TOKEN": "your_mailtrap_api_token",
        "DEFAULT_FROM_EMAIL": "your_sender@example.com",
        "MAILTRAP_ACCOUNT_ID": "your_account_id",
        "MAILTRAP_TEST_INBOX_ID": "your_test_inbox_id"
      }
    }
  }
}

Jika Anda menggunakan asdf untuk mengelola Node.js, Anda harus menggunakan jalur absolut ke executable (contoh untuk Mac)

{
  "mcpServers": {
    "mailtrap": {
      "command": "/Users/<username>/.asdf/shims/npx",
      "args": ["-y", "mcp-mailtrap"],
      "env": {
        "PATH": "/Users/<username>/.asdf/shims:/usr/bin:/bin",
        "ASDF_DIR": "/opt/homebrew/opt/asdf/libexec",
        "ASDF_DATA_DIR": "/Users/<username>/.asdf",
        "ASDF_NODEJS_VERSION": "20.6.1",
        "MAILTRAP_API_TOKEN": "your_mailtrap_api_token",
        "DEFAULT_FROM_EMAIL": "your_sender@example.com",
        "MAILTRAP_ACCOUNT_ID": "your_account_id",
        "MAILTRAP_TEST_INBOX_ID": "your_test_inbox_id"
      }
    }
  }
}

Lokasi file konfigurasi Claude Desktop

Mac: ~/Library/Application Support/Claude/claude_desktop_config.json

Windows: %APPDATA%\Claude\claude_desktop_config.json

Lokasi file konfigurasi Cursor

Mac: ~/.cursor/mcp.json

Windows: %USERPROFILE%\.cursor\mcp.json

VS Code

Mengubah konfigurasi secara manual

Jalankan di Command Palette: Preferences: Open User Settings (JSON)

Kemudian, di file pengaturan, tambahkan konfigurasi berikut:

{
  "mcp": {
    "servers": {
      "mailtrap": {
        "command": "npx",
        "args": ["-y", "mcp-mailtrap"],
        "env": {
          "MAILTRAP_API_TOKEN": "your_mailtrap_api_token",
          "DEFAULT_FROM_EMAIL": "your_sender@example.com",
          "MAILTRAP_ACCOUNT_ID": "your_account_id",
          "MAILTRAP_TEST_INBOX_ID": "your_test_inbox_id"
        }
      }
    }
  }
}

[!TIP] Jangan lupa untuk me-restart server MCP Anda setelah mengubah bagian "env".

Bundle MCP (MCPB)

Untuk instalasi mudah di host yang mendukung Bundle MCP, Anda dapat mendistribusikan file bundle .mcpb.

# Build TypeScript and pack the MCPB bundle
npm run mcpb:pack

# Inspect bundle metadata
npm run mcpb:info

# Sign the bundle for distribution (optional)
npm run mcpb:sign

Ini membuat mailtrap-mcp.mcpb menggunakan repositori manifest.json dan artefak yang dibangun di dist/.

Penggunaan

Setelah dikonfigurasi, Anda dapat meminta agen untuk mengirim email dan mengelola template, misalnya:

Operasi Pengiriman Email:

  • "Kirim email ke john.doe@example.com dengan subjek 'Meeting Tomorrow' dan pengingat ramah tentang pertemuan kita yang akan datang."
  • "Email sarah@example.com tentang pembaruan proyek, dan CC tim di team@example.com"
  • "Kirim template sambutan (uuid b81aabcd-1a1e-41cf-91b6-eca0254b3d96) ke new@example.com dengan variabel { name: 'Alex' }"
  • "Kirim email sandbox ke test@example.com dengan subjek 'Test Template' untuk melihat pratinjau tampilan email sambutan kita"

Log Email (debug pengiriman):

  • "Daftarkan log email terkirim saya yang baru"
  • "Tampilkan log email untuk email yang dikirim ke user@example.com"
  • "Dapatkan pesan log email untuk ID abc-123-uuid untuk memeriksa status pengiriman"

Statistik Pengiriman:

  • "Dapatkan statistik pengiriman untuk Januari 2025"
  • "Tampilkan tingkat pengiriman yang dipecah berdasarkan domain untuk bulan lalu"
  • "Apa statistik email saya berdasarkan kategori dari 2025-01-01 hingga 2025-01-31?"

Operasi Sandbox:

  • "Dapatkan semua pesan dari kotak masuk sandbox saya"
  • "Tampilkan halaman pertama pesan sandbox"
  • "Cari pesan yang mengandung 'test' di kotak masuk sandbox saya"
  • "Tampilkan detail pesan sandbox dengan ID 5159037506"

Operasi Template:

  • "Daftarkan semua template email di akun Mailtrap saya"
  • "Buat template email baru bernama 'Welcome Email' dengan subjek 'Welcome to our platform!'"
  • "Perbarui template dengan ID 12345 untuk mengubah subjek menjadi 'Updated Welcome Message'"
  • "Hapus template dengan ID 67890"

Domain Pengirim:

  • "Daftarkan domain pengirim saya"
  • "Dapatkan domain pengirim dengan ID 3938"
  • "Buat domain pengirim untuk example.com"
  • "Aktifkan pelacakan klik untuk domain pengirim 3938"
  • "Hapus domain pengirim 3938"
  • "Dapatkan domain pengirim 3938 dengan petunjuk pengaturan DNS"
  • "Tampilkan info perusahaan untuk domain pengirim 3938"
  • "Atur info perusahaan untuk domain 3938 menjadi Acme Inc, 123 Main St, San Francisco, US, 94105, https://acme.com"
  • "Ubah kota info perusahaan untuk domain 3938 menjadi New York"

Penekanan (Suppressions):

Opt-out Pelacakan:

  • "Hentikan pelacakan buka dan klik untuk privacy@example.com pada domain 3938"
  • "Daftarkan semua orang yang memilih keluar dari pelacakan"

Kontak dan Daftar:

  • "Tambahkan john.doe@example.com ke daftar kontak buletin saya"
  • "Tampilkan semua daftar kontak saya"
  • "Buat bidang kontak bernama 'signup_source' untuk melacak dari mana kontak berasal"
  • "Perbarui kontak john.doe@example.com untuk mengatur paket mereka menjadi 'pro'"
  • "Impor kontak dari CSV ini ke daftar orientasi saya"
  • "Ekspor semua kontak dari daftar buletin saya"
  • "Catat peristiwa 'trial_started' untuk kontak john.doe@example.com"

Webhook:

  • "Daftarkan semua webhook yang dikonfigurasi di akun saya"
  • "Buat webhook yang menunjuk ke https://example.com/hooks/mailtrap untuk peristiwa bounce dan spam"
  • "Perbarui webhook 4821 untuk juga mengirim peristiwa pengiriman"
  • "Hapus webhook 4821"

Akun dan Penagihan:

  • "Berapa penggunaan penagihan saya saat ini bulan ini?"
  • "Berapa banyak email yang tersisa di paket saya?"
  • "Daftarkan semua orang yang memiliki akses ke akun Mailtrap ini"
  • "Tampilkan sumber daya izin yang tersedia di akun saya"

Token API:

  • "Daftarkan semua token API di akun saya"
  • "Buat token API baru untuk lingkungan staging"
  • "Atur ulang token API dengan ID 1234"
  • "Hapus token API yang tidak digunakan 1234"

Organisasi dan Sub-Akun:

  • "Daftarkan semua sub-akun di organisasi saya"
  • "Buat sub-akun baru untuk proyek klien 'Acme Corp'"

Alat yang Tersedia

send-email

Mengirim email transaksional melalui Mailtrap. Mendukung dua mode yang saling eksklusif — konten inline (subject + text/html) atau berbasis template (template_uuid).

Parameter:

  • from (opsional): Pengirim sebagai { email, name? } (string email polos juga diterima saat runtime). Jika tidak diberikan, DEFAULT_FROM_EMAIL digunakan.
  • to (opsional): Array penerima sebagai objek { email, name? } (string email polos, atau satu alamat non-array, juga diterima saat runtime). Opsional jika cc atau bcc diberikan; setidaknya satu dari to / cc / bcc harus berisi penerima.
  • cc (opsional): Array penerima CC sebagai objek { email, name? } (string email polos juga diterima saat runtime).
  • bcc (opsional): Array penerima BCC sebagai objek { email, name? } (string email polos juga diterima saat runtime).
  • subject (kondisional): Baris subjek email. Diperlukan untuk pengiriman inline; harus dihilangkan saat template_uuid diatur.
  • text (kondisional): Teks badan email. Diperlukan (bersamaan dengan atau sebagai pengganti html) untuk pengiriman inline; harus dihilangkan saat template_uuid diatur.
  • html (kondisional): Versi HTML dari badan email. Diperlukan (bersamaan dengan atau sebagai pengganti text) untuk pengiriman inline; harus dihilangkan saat template_uuid diatur.
  • category (opsional): Kategori email untuk pelacakan dan analitik. Harus dihilangkan saat template_uuid diatur.
  • template_uuid (opsional): Gunakan template email Mailtrap alih-alih konten inline. Saat diatur, subject / text / html / category harus dihilangkan (sesuai API Mailtrap).
  • template_variables (opsional): Objek variabel yang disubstitusikan ke dalam template yang dirujuk oleh template_uuid. Hanya diizinkan bersama dengan template_uuid.

batch-send-transactional-email

Mengirim batch email transaksional dalam satu panggilan API Mailtrap (aliran pengiriman default). Bidang bersama masuk ke base; penimpaan per penerima masuk ke requests[]. Setiap permintaan harus menyertakan setidaknya satu penerima melalui to, cc, atau bcc. Eksklusi mutual inline-vs-template yang sama seperti send-email — diperiksa setelah menggabungkan basis dengan setiap permintaan.

Parameter:

  • base (opsional): Objek dengan kolom yang dibagikan di seluruh batch.
    • from (opsional): Pengirim sebagai { email, name? } (string email polos juga diterima saat runtime). Jatuh kembali ke DEFAULT_FROM_EMAIL.
    • reply_to (opsional): Alamat balas (reply-to).
    • subject / text / html / category (opsional, mode inline): Konten default untuk setiap permintaan.
    • template_uuid / template_variables (opsional, mode template): Template default + variabel. Saling eksklusif dengan kolom inline.
    • custom_variables (opsional): Variabel kustom default (bernilai string).
    • headers (opsional): Header kustom default.
  • requests (wajib): Array non-kosong berisi pesan per-penerima. Setiap entri memiliki:
    • to (opsional): Array penerima sebagai objek { email, name? } (string email polos, atau satu alamat non-array, juga diterima saat runtime). Opsional jika cc atau bcc disediakan; setidaknya satu dari to / cc / bcc harus berisi penerima.
    • cc, bcc, reply_to (opsional).
    • Override inline (subject/text/html/category) atau template (template_uuid/template_variables); kolom apa pun yang dihilangkan akan jatuh kembali ke nilai base yang sesuai.
    • custom_variables, headers (opsional).

batch-send-bulk-email

Mengirim batch email massal melalui API bulk-stream Mailtrap. Bentuk base + requests[], validasi, dan aturan inline-vs-template yang sama dengan batch-send-transactional-email — satu-satunya perbedaan adalah bahwa alat ini merutekan panggilan melalui endpoint bulk, bukan endpoint transaksional. Lihat parameter di atas.

list-email-logs

Mencantumkan log email yang terkirim (riwayat pengiriman) dengan pagination dan filter opsional. Gunakan untuk men-debug masalah pengiriman dari IDE.

Parameter:

  • search_after (opsional): Kursor pagination dari next_page_cursor respons sebelumnya
  • sent_after (opsional): Tanggal/waktu ISO 8601; hanya log yang dikirim setelah waktu ini
  • sent_before (opsional): Tanggal/waktu ISO 8601; hanya log yang dikirim sebelum waktu ini
  • from_email (opsional): Filter berdasarkan email pengirim; gunakan dengan from_operator (default: ci_equal)
  • to_email (opsional): Filter berdasarkan email penerima; gunakan dengan to_operator (default: ci_equal)
  • status (opsional): Filter berdasarkan status pengiriman: delivered, not_delivered, enqueued, opted_out; gunakan dengan status_operator (default: equal)
  • subject (opsional): Filter berdasarkan subjek email; gunakan dengan subject_operator (default: ci_contain). Gunakan subject_operator: empty/not_empty untuk memfilter berdasarkan keberadaan subjek.
  • sending_domain_id (opsional): Filter berdasarkan ID domain pengirim (angka); gunakan dengan sending_domain_id_operator (default: equal)
  • sending_stream (opsional): Filter berdasarkan stream: transactional atau bulk; gunakan dengan sending_stream_operator (default: equal)
  • events (opsional): Filter berdasarkan jenis peristiwa: delivery, open, click, bounce, spam, unsubscribe, soft_bounce, reject, suspension; gunakan dengan events_operator (include_event / not_include_event)
  • clicks_count / opens_count (opsional): Filter berdasarkan jumlah klik/buka; gunakan dengan *_operator: equal, greater_than, less_than
  • client_ip / sending_ip (opsional): Filter berdasarkan IP; gunakan dengan *_operator: equal, not_equal, contain, not_contain
  • email_service_provider_response (opsional): Filter berdasarkan teks respons penyedia; gunakan dengan *_operator (ci_contain, dll.)
  • email_service_provider (opsional): Filter berdasarkan penyedia (tepat); gunakan dengan *_operator: equal, not_equal
  • recipient_mx (opsional): Filter berdasarkan MX penerima; gunakan dengan recipient_mx_operator (ci_contain, dll.)
  • category (opsional): Filter berdasarkan kategori email; gunakan dengan category_operator: equal, not_equal

Semua parameter bersifat opsional.

get-email-log-message

Mendapatkan satu pesan log email berdasarkan ID (UUID): ringkasan yang dapat dibaca (dari, ke, subjek, waktu kirim, status, kategori, stream, keterlibatan, konteks pengiriman), lalu riwayat peristiwa terperinci. Secara opsional, dengan include_content: true, Anda juga dapat memuat dan menampilkan isi pesan (HTML dan teks biasa) saat Mailtrap mengekspos URL pesan mentah.

Parameter:

  • message_id (wajib): UUID pesan log email (dari respons kirim atau list-email-logs). Gunakan list-email-logs untuk menemukan ID pesan.
  • include_content (opsional): Saat true, mengambil EML mentah (jika raw_message_url tersedia) dan menambahkan bagian isi HTML dan teks biasa yang diurai, mirip dengan show-sandbox-email-message.

get-sending-stats

Dapatkan statistik pengiriman email (tingkat pengiriman, bounce, buka, klik, spam) untuk rentang tanggal. Secara opsional, rinci berdasarkan domain, kategori, penyedia layanan email, atau tanggal. Periksa tingkat pengiriman tanpa meninggalkan editor.

Parameter:

  • start_date (wajib): Tanggal mulai untuk rentang statistik (YYYY-MM-DD)
  • end_date (wajib): Tanggal akhir untuk rentang statistik (YYYY-MM-DD)
  • breakdown (opsional): Cara merinci statistik: aggregated (default), by_domain, by_category, by_email_service_provider, atau by_date
  • sending_domain_ids (opsional): Batasi hasil ke ID domain pengirim ini (array bilangan bulat)
  • sending_streams (opsional): Batasi ke transactional dan/atau bulk (array string)
  • categories (opsional): Batasi ke kategori email ini (array string)
  • email_service_providers (opsional): Batasi ke penyedia ini, mis. Google, Yahoo, Outlook (array string)

create-template

Membuat template email baru di akun Mailtrap Anda.

Parameter:

  • name (wajib): Nama template
  • subject (wajib): Baris subjek email
  • html (atau text wajib): Konten HTML template
  • text (atau html wajib): Versi teks biasa template
  • category (opsional): Kategori template (default ke "General")

list-templates

Mencantumkan semua template email di akun Mailtrap Anda.

Parameter:

  • Tidak ada parameter yang diperlukan

get-template

Dapatkan satu template email berdasarkan ID, termasuk subjek, kategori, dan isi HTML/teks.

Parameter:

  • template_id (wajib): ID template yang akan diambil

update-template

Memperbarui template email yang ada.

Parameter:

  • template_id (wajib): ID template yang akan diperbarui
  • name (opsional): Nama baru untuk template
  • subject (opsional): Baris subjek email baru
  • html (opsional): Konten HTML baru template
  • text (opsional): Versi teks biasa baru template
  • category (opsional): Kategori baru untuk template

[!NOTE] Setidaknya satu kolom yang dapat diperbarui (nama, subjek, html, teks, atau kategori) harus disediakan saat memanggil update-template untuk melakukan pembaruan.

delete-template

Menghapus template email yang ada.

Parameter:

  • template_id (wajib): ID template yang akan dihapus

send-sandbox-email

Mengirim email ke kotak masuk uji Mailtrap Anda untuk tujuan pengembangan dan pengujian. Ini sempurna untuk menguji template email tanpa mengirim email ke penerima nyata. Mendukung dua mode yang sama seperti send-email — konten inline atau berbasis template (template_uuid).

Parameter:

  • test_inbox_id (opsional): ID kotak masuk uji Mailtrap. Wajib kecuali MAILTRAP_TEST_INBOX_ID disetel; berikan per panggilan untuk menargetkan kotak masuk tertentu.
  • from (opsional): Pengirim sebagai { email, name? } (string email polos juga diterima saat runtime). Jika tidak disediakan, DEFAULT_FROM_EMAIL digunakan.
  • to (opsional): Array penerima sebagai objek { email, name? } (string email polos dalam array, atau string email polos yang dipisahkan koma, juga diterima saat runtime). Opsional jika cc atau bcc disediakan; setidaknya satu dari to / cc / bcc harus berisi penerima.
  • cc (opsional): Array penerima CC sebagai objek { email, name? } (string email polos juga diterima saat runtime).
  • bcc (opsional): Array penerima BCC sebagai objek { email, name? } (string email polos juga diterima saat runtime).
  • subject (kondisional): Baris subjek email. Wajib untuk kirim inline; harus dihilangkan saat template_uuid disetel.
  • text (kondisional): Teks isi email. Wajib (bersamaan dengan atau sebagai pengganti html) untuk kirim inline; harus dihilangkan saat template_uuid disetel.
  • html (kondisional): Versi HTML isi email. Wajib (bersamaan dengan atau sebagai pengganti text) untuk kirim inline; harus dihilangkan saat template_uuid disetel.
  • category (opsional): Kategori email untuk pelacakan. Harus dihilangkan saat template_uuid disetel.
  • template_uuid (opsional): Gunakan template email Mailtrap alih-alih konten inline. Saat disetel, subject / text / html / category harus dihilangkan.
  • template_variables (opsional): Objek variabel yang disubstitusikan ke dalam template yang dirujuk oleh template_uuid. Hanya diizinkan bersama dengan template_uuid.

batch-send-sandbox-email

Mengirim batch email ke kotak masuk uji Mailtrap Anda dalam satu panggilan API, tanpa mengirim ke penerima nyata. Bentuk base + requests[], validasi, dan aturan inline-vs-template yang sama dengan batch-send-transactional-email — perbedaannya adalah bahwa alat ini merutekan panggilan melalui endpoint sandbox untuk satu kotak masuk uji.

Parameter:

  • sandbox_id (opsional): ID sandbox (kotak masuk uji) Mailtrap. Wajib kecuali MAILTRAP_SANDBOX_ID disetel; berikan per panggilan untuk menargetkan sandbox tertentu.
  • base (opsional), requests (wajib): Lihat batch-send-transactional-email di atas.

[!NOTE] Untuk alat sandbox, berikan test_inbox_id dalam panggilan alat atau setel variabel lingkungan MAILTRAP_TEST_INBOX_ID. Anda dapat beralih antar kotak masuk per panggilan dengan memberikan test_inbox_id. Alat yang menggunakan sandbox_id menggunakan MAILTRAP_SANDBOX_ID terlebih dahulu.

get-sandbox-messages

Mengambil daftar pesan dari kotak masuk uji Mailtrap Anda. Berguna untuk memeriksa email apa yang telah diterima di sandbox Anda selama pengujian.

Parameter:

  • page (opsional): Nomor halaman untuk pagination (minimum: 1)
  • last_id (opsional): Pagination menggunakan ID pesan terakhir. Mengembalikan pesan setelah ID pesan yang ditentukan (minimum: 1)
  • search (opsional): Kueri pencarian untuk memfilter pesan

[!NOTE] Semua parameter bersifat opsional. Jika tidak ada yang disediakan, halaman pertama pesan dari kotak masuk akan dikembalikan. Gunakan page untuk pagination tradisional, last_id untuk pagination berbasis kursor, atau search untuk memfilter pesan berdasarkan konten.

show-sandbox-email-message

Menampilkan informasi terperinci dan konten pesan email tertentu dari kotak masuk uji Mailtrap Anda, termasuk konten isi HTML dan teks.

Parameter:

  • message_id (wajib): ID pesan email sandbox yang akan diambil

[!NOTE] Gunakan get-sandbox-messages terlebih dahulu untuk mendapatkan daftar pesan dan ID-nya, lalu gunakan alat ini untuk melihat konten lengkap pesan tertentu.

get-sandbox-project

Dapatkan proyek sandbox berdasarkan ID, termasuk kotak masuk dan jumlah emailnya.

Parameter:

  • project_id (wajib): ID proyek yang akan diambil

update-sandbox-project

Mengganti nama proyek sandbox yang ada.

Parameter:

  • project_id (wajib): ID proyek yang akan diperbarui
  • name (wajib): Nama baru untuk proyek (2–100 karakter)

list-sandboxes

Mencantumkan setiap sandbox yang dapat diakses oleh token API di semua proyek.

Parameter:

  • Tidak ada parameter yang diperlukan

mark-sandbox-as-read

Menandai semua pesan di sandbox sebagai telah dibaca.

Parameter:

  • sandbox_id (wajib): ID sandbox yang akan ditindaklanjuti

reset-sandbox-credentials

Reset kredensial SMTP untuk sebuah sandbox. Mengembalikan username/password baru.

Parameter:

  • sandbox_id (wajib): ID sandbox yang akan ditindaklanjuti

enable-sandbox-email-address

Aktifkan alamat terima-melalui-email untuk sebuah sandbox (mengaktifkan alamat Mailtrap yang mengirimkan pesan ke sandbox melalui SMTP).

Parameter:

  • sandbox_id (wajib): ID sandbox yang akan ditindaklanjuti

reset-sandbox-email-address

Buat alamat terima-melalui-email baru untuk sebuah sandbox.

Parameter:

  • sandbox_id (wajib): ID sandbox yang akan ditindaklanjuti

forward-sandbox-message

Teruskan pesan sandbox ke alamat email eksternal. Dihitung terhadap kuota penerusan bulanan Anda.

Parameter:

  • sandbox_id (opsional): ID Sandbox. Jatuh kembali ke MAILTRAP_SANDBOX_ID.
  • message_id (wajib): ID pesan sandbox yang akan diteruskan
  • email (wajib): Alamat email tujuan penerusan pesan

update-sandbox-message

Tandai pesan sandbox sebagai sudah dibaca atau belum dibaca.

Parameter:

  • sandbox_id (opsional): ID Sandbox. Jatuh kembali ke MAILTRAP_SANDBOX_ID.
  • message_id (wajib): ID pesan sandbox yang akan diperbarui
  • is_read (wajib): true menandai sebagai sudah dibaca, false menandai sebagai belum dibaca

delete-sandbox-message

Hapus satu pesan sandbox.

Parameter:

  • sandbox_id (opsional): ID Sandbox. Jatuh kembali ke MAILTRAP_SANDBOX_ID.
  • message_id (wajib): ID pesan sandbox yang akan dihapus

get-sandbox-message-spam-score

Dapatkan laporan spam SpamAssassin untuk pesan sandbox (skor, aturan, laporan lengkap). Alternatif mandiri untuk include_spam_report: true pada show-sandbox-email-message.

Parameter:

  • sandbox_id (opsional): ID Sandbox. Jatuh kembali ke MAILTRAP_SANDBOX_ID.
  • message_id (wajib): ID pesan sandbox

get-sandbox-message-html-analysis

Dapatkan laporan analisis HTML untuk pesan sandbox (skor kompatibilitas klien, elemen bermasalah). Alternatif mandiri untuk include_html_analysis: true pada show-sandbox-email-message.

Parameter:

  • sandbox_id (opsional): ID Sandbox. Jatuh kembali ke MAILTRAP_SANDBOX_ID.
  • message_id (wajib): ID pesan sandbox

get-sandbox-message-headers

Dapatkan header email yang telah diurai untuk pesan sandbox.

Parameter:

  • sandbox_id (opsional): ID Sandbox. Jatuh kembali ke MAILTRAP_SANDBOX_ID.
  • message_id (wajib): ID pesan sandbox

get-sandbox-message-html

Dapatkan isi HTML yang dirender dari pesan sandbox.

Parameter:

  • sandbox_id (opsional): ID Sandbox. Jatuh kembali ke MAILTRAP_SANDBOX_ID.
  • message_id (wajib): ID pesan sandbox

get-sandbox-message-text

Dapatkan isi teks biasa dari pesan sandbox.

Parameter:

  • sandbox_id (opsional): ID Sandbox. Jatuh kembali ke MAILTRAP_SANDBOX_ID.
  • message_id (wajib): ID pesan sandbox

get-sandbox-message-raw

Dapatkan pesan mentah berformat MIME (header + isi) untuk pesan sandbox.

Parameter:

  • sandbox_id (opsional): ID Sandbox. Jatuh kembali ke MAILTRAP_SANDBOX_ID.
  • message_id (wajib): ID pesan sandbox

get-sandbox-message-eml

Dapatkan pesan yang dirender sebagai payload file EML (cocok untuk dilampirkan ke tiket atau diimpor ke klien email lain).

Parameter:

  • sandbox_id (opsional): ID Sandbox. Jatuh kembali ke MAILTRAP_SANDBOX_ID.
  • message_id (wajib): ID pesan sandbox

get-sandbox-message-html-source

Dapatkan sumber HTML yang tidak dirender dari pesan sandbox (HTML sebelum transformasi sisi Mailtrap seperti penulisan ulang tautan CID).

Parameter:

  • sandbox_id (opsional): ID Sandbox. Jatuh kembali ke MAILTRAP_SANDBOX_ID.
  • message_id (wajib): ID pesan sandbox

list-sandbox-attachments

Daftarkan semua lampiran pada pesan sandbox (nama file, jenis konten, ukuran, jalur unduhan).

Parameter:

  • sandbox_id (opsional): ID Sandbox. Jatuh kembali ke MAILTRAP_SANDBOX_ID.
  • message_id (wajib): ID pesan sandbox

get-sandbox-attachment

Dapatkan metadata dan URL unduhan untuk satu lampiran.

Parameter:

  • sandbox_id (opsional): ID Sandbox. Jatuh kembali ke MAILTRAP_SANDBOX_ID.
  • message_id (wajib): ID pesan sandbox yang berisi lampiran
  • attachment_id (wajib): ID lampiran yang akan diambil

list-sending-domains

Daftarkan domain pengirim dan status verifikasi DNS-nya.

Parameter:

  • Tidak ada parameter yang diperlukan

get-sending-domain

Dapatkan domain pengirim berdasarkan ID dan status verifikasinya (termasuk catatan DNS). Secara opsional sertakan instruksi pengaturan DNS dengan mengatur include_setup_instructions ke true.

Parameter:

  • sending_domain_id (wajib): ID domain pengirim
  • include_setup_instructions (opsional): Jika true, tambahkan instruksi pengaturan DNS ke respons. Default: false

create-sending-domain

Buat domain pengirim baru. Setelah pembuatan, tambahkan catatan DNS untuk memverifikasi domain (gunakan get-sending-domain dengan include_setup_instructions: true untuk melihat catatannya).

Parameter:

  • domain_name (wajib): Nama domain (mis. example.com)

update-sending-domain

Perbarui pengaturan pelacakan dan masuk (inbound) domain pengirim.

Parameter:

  • sending_domain_id (wajib): ID domain pengirim
  • open_tracking_enabled (opsional): Lacak pembukaan email yang dikirim dari domain ini
  • click_tracking_enabled (opsional): Lacak klik pada tautan di email yang dikirim dari domain ini
  • tracking_opt_out_enabled (opsional): Tambahkan tautan berhenti berlangganan pelacakan ke email yang dilacak. Memerlukan pelacakan pembukaan atau klik
  • auto_unsubscribe_link_enabled (opsional): Secara otomatis tambahkan tautan berhenti berlangganan ke email
  • inbound_enabled (opsional): Izinkan domain dilampirkan ke kotak masuk inbound sebagai catch-all

Setidaknya satu pengaturan selain sending_domain_id harus diberikan.

delete-sending-domain

Hapus domain pengirim.

Parameter:

  • sending_domain_id (wajib): ID domain pengirim yang akan dihapus

send-sending-domain-setup-instructions

Kirim instruksi pengaturan DNS untuk domain pengirim ke alamat tertentu melalui email. Berguna untuk meneruskan catatan DNS ke rekan DevOps.

Parameter:

  • sending_domain_id (wajib): ID domain pengirim
  • email (wajib): Alamat email tujuan pengiriman instruksi pengaturan DNS

get-company-info

Dapatkan informasi perusahaan dari domain pengirim, digunakan untuk verifikasi kepatuhan domain.

Parameter:

  • sending_domain_id (wajib): ID domain pengirim

create-company-info

Tetapkan informasi perusahaan dari domain pengirim, diperlukan untuk verifikasi kepatuhan domain.

Parameter:

  • sending_domain_id (wajib): ID domain pengirim
  • name (wajib): Nama perusahaan atau individu
  • address (wajib): Alamat jalan
  • city (wajib): Kota
  • country (wajib): Negara
  • zip_code (wajib): Kode POS atau kode pos
  • website_url (wajib): URL situs web perusahaan
  • phone (opsional): Nomor telepon
  • privacy_policy_url (opsional): URL halaman kebijakan privasi
  • terms_of_service_url (opsional): URL halaman ketentuan layanan
  • info_level (opsional): business atau individual

update-company-info

Perbarui informasi perusahaan dari domain pengirim.

Parameter:

  • sending_domain_id (wajib): ID domain pengirim
  • Setiap bidang dari create-company-info, semuanya opsional. Setidaknya satu harus diberikan; bidang yang tidak disertakan tidak berubah.

list-suppressions

Daftarkan atau cari suppressions (bounce keras, keluhan spam, berhenti berlangganan, impor manual). Mengembalikan hingga 1000 hasil per panggilan.

Parameter:

  • email (opsional): Filter email. Hanya mengembalikan suppressions yang cocok dengan alamat ini.

create-suppression

Tambahkan alamat email ke daftar suppression akun, sehingga Mailtrap berhenti mengirim ke alamat tersebut.

Parameter:

  • email (wajib): Alamat email yang akan di-suppress
  • domain_id (wajib): ID domain pengirim tempat suppression berlaku
  • sending_stream (wajib): transactional atau bulk
  • type (opsional): hard bounce, spam complaint, unsubscription atau manual import. Default ke manual import

delete-suppression

Hapus suppression berdasarkan ID. Mailtrap akan melanjutkan pengiriman ke email ini kecuali email tersebut di-suppress lagi.

Parameter:

  • suppression_id (wajib): ID suppression yang akan dihapus

list-tracking-opt-outs

Daftarkan alamat email yang dikecualikan dari pelacakan pembukaan dan klik. Mengembalikan hingga 1000 catatan per panggilan.

Parameter:

  • email (opsional): Filter email. Hanya mengembalikan opt-outs yang cocok dengan alamat ini
  • start_time (opsional): Hanya opt-outs yang dibuat pada atau setelah waktu ini (ISO 8601)
  • end_time (opsional): Hanya opt-outs yang dibuat pada atau sebelum waktu ini (ISO 8601)
  • last_id (opsional): Kursor paginasi — last_id dari respons sebelumnya

create-tracking-opt-out

Kecualikan alamat email dari pelacakan pembukaan dan klik untuk domain pengirim.

Parameter:

  • email (wajib): Alamat email yang akan di-opt-out dari pelacakan
  • domain_id (wajib): ID domain pengirim tempat opt-out berlaku

delete-tracking-opt-out

Hapus alamat email dari daftar opt-out pelacakan, sehingga pelacakan pembukaan dan klik berlaku lagi untuk alamat tersebut.

Parameter:

  • tracking_opt_out_id (wajib): ID opt-out pelacakan yang akan dihapus

list-webhooks

Daftarkan semua webhook yang dikonfigurasi untuk akun. Mengembalikan catatan webhook lengkap sebagai JSON.

Parameter:

  • Tidak ada parameter yang diperlukan

get-webhook

Dapatkan satu webhook berdasarkan ID. Mengembalikan catatan webhook lengkap sebagai JSON. Catatan: signing_secret tidak dikembalikan di sini — hanya tersedia dalam respons dari create-webhook.

Parameter:

  • webhook_id (wajib): ID webhook yang akan diambil

create-webhook

Buat webhook. Respons menyertakan signing_secret untuk memverifikasi tanda tangan payload webhook — rahasia ini dikembalikan hanya saat pembuatan, jadi simpan sekarang. Jika Anda kehilangannya, buat ulang webhook.

Parameter:

  • url (wajib): URL tempat Mailtrap akan mengirimkan peristiwa webhook melalui POST
  • webhook_type (wajib): "email_sending", "audit_log", atau "inbound_receiving"
  • active (opsional, boolean): default ke true
  • payload_format (opsional): "json" atau "jsonlines". Default ke "json"
  • sending_stream (opsional, hanya email_sending): "transactional" atau "bulk"
  • event_types (opsional, hanya email_sending): array dari delivery, soft_bounce, bounce, suspension, unsubscribe, open, spam_complaint, click, reject
  • domain_id (opsional, hanya email_sending): ID domain pengirim untuk membatasi cakupan webhook ini
  • inbound_inbox_id (opsional, hanya inbound_receiving): ID kotak masuk inbound tempat webhook ditautkan; kosongkan untuk berlaku ke semua kotak masuk di akun

update-webhook

Perbarui bidang yang dapat diubah dari webhook. webhook_type, sending_stream, dan domain_id tidak dapat diubah setelah pembuatan — buat ulang webhook jika Anda perlu mengubahnya.

Parameter:

  • webhook_id (wajib): ID webhook yang akan diperbarui
  • url (opsional): URL webhook baru
  • active (opsional, boolean): Aktifkan atau nonaktifkan webhook
  • payload_format (opsional): "json" atau "jsonlines"
  • event_types (opsional, hanya email_sending): array dari delivery, soft_bounce, bounce, suspension, unsubscribe, open, spam_complaint, click, reject
  • inbound_inbox_id (opsional, hanya inbound_receiving): ID kotak masuk inbound tempat webhook ditautkan

delete-webhook

Hapus webhook secara permanen berdasarkan ID. Mengembalikan catatan webhook yang dihapus.

Parameter:

  • webhook_id (wajib): ID webhook yang akan dihapus

get-contact

Dapatkan kontak berdasarkan ID atau email. Mengembalikan catatan kontak lengkap (keanggotaan daftar, status, bidang kustom).

Parameter:

  • contact_identifier (wajib): ID kontak atau alamat email

create-contact

Buat kontak baru.

Parameter:

  • email (wajib): Alamat email
  • fields (opsional): Nilai bidang kustom yang dikunci berdasarkan tag gabungan (misalnya first_name). Nilai string, angka, atau boolean
  • list_ids (opsional): ID daftar kontak untuk berlangganan kontak ini
  • unsubscribed (opsional, boolean): Buat kontak dalam status unsubscribed

update-contact

Perbarui kontak yang ada yang diidentifikasi berdasarkan ID atau email. list_ids menggantikan set keanggotaan penuh kontak; list_ids_included/list_ids_excluded menambah/menghapus tanpa mengganggu yang lain.

Parameter:

  • contact_identifier (wajib): ID kontak atau email
  • email (opsional): Alamat email baru
  • fields (opsional): Nilai bidang kustom yang dikunci berdasarkan tag gabungan
  • list_ids (opsional): Ganti set keanggotaan dengan daftar persis ini
  • list_ids_included (opsional): ID daftar untuk ditambahkan (aditif)
  • list_ids_excluded (opsional): ID daftar untuk dihapus
  • unsubscribed (opsional, boolean): Setel ke unsubscribed (benar) atau subscribed (salah)

delete-contact

Hapus kontak secara permanen berdasarkan ID atau email. Mengembalikan catatan kontak yang dihapus saat API merespons dengan satu; jika tidak, mengembalikan payload konfirmasi.

Parameter:

  • contact_identifier (wajib): ID kontak atau email

create-contact-event

Catat peristiwa kontak terhadap kontak (berdasarkan ID atau email). Digunakan untuk memicu otomatisasi daftar kontak.

Parameter:

  • contact_identifier (wajib): ID kontak atau email
  • name (wajib): Nama peristiwa (cocok dengan pemicu otomatisasi)
  • params (wajib): Objek pasangan kunci/nilai arbitrer. Nilai dapat berupa string, angka, boolean, atau null

list-contact-lists

Daftar semua daftar kontak untuk akun.

Parameter:

  • search (opsional): Filter daftar kontak berdasarkan nama (cocok tidak peka huruf besar/kecil), misalnya news

get-contact-list

Dapatkan daftar kontak berdasarkan ID.

Parameter:

  • list_id (wajib): ID daftar kontak yang akan diambil

create-contact-list

Buat daftar kontak baru.

Parameter:

  • name (wajib): Nama untuk daftar baru

update-contact-list

Ganti nama daftar kontak yang ada.

Parameter:

  • list_id (wajib): ID daftar kontak
  • name (wajib): Nama baru untuk daftar

delete-contact-list

Hapus daftar kontak secara permanen berdasarkan ID.

Parameter:

  • list_id (wajib): ID daftar kontak yang akan dihapus

list-contact-fields

Daftar semua definisi bidang kontak untuk akun.

Parameter:

  • Tidak ada parameter yang diperlukan

get-contact-field

Dapatkan definisi bidang kontak berdasarkan ID.

Parameter:

  • field_id (wajib): ID bidang kontak

create-contact-field

Buat definisi bidang kontak baru. merge_tag harus unik dalam akun dan digunakan sebagai nama placeholder dalam variabel template.

Parameter:

  • name (wajib): Nama tampilan (misalnya "Nama Depan")
  • merge_tag (wajib): Nama placeholder unik (misalnya first_name)
  • data_type (wajib): Salah satu dari text, number, boolean, date

update-contact-field

Perbarui definisi bidang kontak. Kombinasi apa pun dari name, merge_tag, dan data_type dapat diubah.

Parameter:

  • field_id (wajib): ID bidang kontak
  • name (opsional): Nama tampilan baru
  • merge_tag (opsional): Tag gabungan baru (harus tetap unik)
  • data_type (opsional): Salah satu dari text, number, boolean, date

delete-contact-field

Hapus definisi bidang kontak secara permanen berdasarkan ID.

Parameter:

  • field_id (wajib): ID bidang kontak yang akan dihapus

create-contact-import

Impor kontak secara massal. Mengembalikan catatan pekerjaan impor; polling statusnya dengan get-contact-import.

Parameter:

  • contacts (wajib): Array entri kontak. Setiap entri membutuhkan:
    • email (wajib): Alamat email kontak
    • fields (opsional): Nilai bidang kustom yang dikunci berdasarkan tag gabungan (nilai string atau angka)
    • list_ids_included (opsional): ID daftar untuk menambahkan kontak
    • list_ids_excluded (opsional): ID daftar untuk menghapus kontak

get-contact-import

Dapatkan status pekerjaan impor kontak (dibuat/dimulai/selesai/gagal) dengan jumlah dibuat/diperbarui/melebihi batas.

Parameter:

  • import_id (wajib): ID pekerjaan impor kontak

create-contact-export

Ekspor kontak yang cocok dengan set filter yang digabungkan dengan AND. Mengembalikan catatan pekerjaan ekspor; polling status dengan get-contact-export untuk mengambil URL unduhan setelah status adalah finished.

Parameter:

  • filters (wajib): Array objek filter. Setiap memiliki:
    • name (wajib): Bidang untuk difilter (list_id, subscription_status, email, dll.)
    • operator (wajib): Salah satu dari equal, not_equal, contains, not_contains, is_empty, is_not_empty
    • value (wajib): Nilai perbandingan (string, angka, boolean, atau array)

get-contact-export

Dapatkan status pekerjaan ekspor kontak. Setelah status adalah finished, bidang url menyimpan tautan unduhan CSV.

Parameter:

  • export_id (wajib): ID pekerjaan ekspor kontak

list-email-campaigns

Daftar kampanye email akun, yang terbaru terlebih dahulu, dengan pagination token halaman. Opsional filter berdasarkan nama dengan search.

Parameter:

  • token (opsional): Nomor halaman yang akan diambil (pagination token halaman). Default ke 1
  • per_page (opsional): Jumlah kampanye per halaman. Default ke 50, maksimum 100
  • search (opsional): Filter kampanye berdasarkan nama (cocok parsial tidak peka huruf besar/kecil)

get-email-campaign

Dapatkan kampanye email berdasarkan ID.

Parameter:

  • email_campaign_id (wajib): ID kampanye email

create-email-campaign

Buat kampanye email baru. Kampanye selalu dibuat dalam status draft; penjadwalan dan memulai adalah alat terpisah (schedule-email-campaign, start-email-campaign).

Parameter:

  • name (wajib): Nama kampanye
  • domain_id (wajib): ID domain pengirim terverifikasi yang digunakan untuk kampanye, seperti yang dikembalikan oleh endpoint Domain Pengirim
  • from_local_part (wajib): Bagian lokal (sebelum @) dari alamat Dari
  • template_attributes (wajib): Template email inline. Memiliki:
    • subject (wajib): Baris subjek email (maks 255 karakter). Mendukung tag gabungan, misalnya Hi {{first_name}}
    • body_html (opsional): Badan HTML (desain). Diperlukan sebelum kampanye dapat dijadwalkan atau dimulai. Sertakan tautan berhenti berlangganan melalui jangkar yang href berisi placeholder __unsubscribe_url__
    • body_text (opsional): Alternatif teks biasa dari badan email
    • merge_tags (opsional): Nama telanjang dari tag gabungan yang direferensikan dalam subjek/badan, misalnya ["first_name"]
  • from_display_name (opsional): Nama tampilan yang ditampilkan di header Dari
  • reply_to (opsional): Bagian alamat Balas-Ke (display_name, local_part, domain)
  • delivery_mode (opsional): rapid (kirim secepat mungkin) atau gradual (batasi ke delivery_options.emails_per_hour)
  • delivery_options (opsional): Opsi pembatasan pengiriman (emails_per_hour)
  • contact_list_ids (opsional): ID daftar kontak untuk dikirim (diperlakukan sebagai set lengkap daftar yang disertakan)
  • contact_segment_ids (opsional): ID segmen kontak untuk dikirim (diperlakukan sebagai set lengkap segmen yang disertakan)

update-email-campaign

Perbarui kampanye email draft. Hanya bidang yang disediakan yang berubah; template diedit di tempat. Kampanye dalam status lain apa pun tidak dapat diperbarui.

Parameter:

  • email_campaign_id (wajib): ID kampanye email yang akan diperbarui
  • Semua parameter lain opsional dan identik dengan create-email-campaign (name, domain_id, from_local_part, from_display_name, reply_to, template_attributes, delivery_mode, delivery_options, contact_list_ids, contact_segment_ids)

delete-email-campaign

Hapus kampanye email berdasarkan ID. Hanya kampanye dalam status draft yang dapat dihapus.

Parameter:

  • email_campaign_id (wajib): ID kampanye email yang akan dihapus

start-email-campaign

Mulai mengirim kampanye email draft segera. Hanya kampanye draft yang dapat dimulai; template harus memiliki desain body_html dan audiens serta domain pengirim terverifikasi harus diatur.

Parameter:

  • email_campaign_id (wajib): ID kampanye email yang akan dimulai

schedule-email-campaign

Jadwalkan kampanye email draft untuk mulai mengirim di waktu mendatang. Hanya kampanye draft yang dapat dijadwalkan.

Parameter:

  • email_campaign_id (wajib): ID kampanye email yang akan dijadwalkan
  • datetime (wajib): Kapan mengirim kampanye (ISO 8601). Harus di masa depan dan tidak lebih dari 1 bulan ke depan

cancel-email-campaign

Batalkan kampanye email scheduled, kembalikan ke draft. Hanya kampanye scheduled yang dapat dibatalkan.

Parameter:

  • email_campaign_id (wajib): ID kampanye email yang akan dibatalkan

terminate-email-campaign

Hentikan kampanye email yang sedang mengirim (started, queued, atau paused), membatalkan pengiriman yang sedang berlangsung.

Parameter:

  • email_campaign_id (wajib): ID kampanye email yang akan dihentikan

reset-email-campaign

Atur ulang kampanye email scheduled kembali ke draft. Hanya kampanye scheduled yang dapat diatur ulang.

Parameter:

  • email_campaign_id (wajib): ID kampanye email yang akan diatur ulang

get-email-campaign-stats

Dapatkan statistik kinerja agregat untuk kampanye email (jumlah dan tingkat untuk pengiriman, pembukaan, klik, pantulan, keluhan spam, dan berhenti berlangganan).

Parameter:

  • email_campaign_id (wajib): ID kampanye email
  • start_date (opsional): Awal jendela agregasi (inklusif), YYYY-MM-DD. Default ke hari kampanye terakhir dimulai
  • end_date (opsional): Akhir jendela agregasi (inklusif), YYYY-MM-DD. Default ke tanggal saat ini

list-accounts

Daftar akun Mailtrap yang dapat diakses oleh token API saat ini, dengan tingkat akses setiap akun.

Parameter:

  • Tidak ada parameter yang diperlukan

get-billing-usage

Dapatkan penggunaan siklus penagihan saat ini untuk akun: rencana pengiriman dan pengujian, batas, dan jumlah saat ini.

Parameter:

  • Tidak ada parameter yang diperlukan

list-account-accesses

Daftar akses akun (pengguna, undangan, token API) untuk akun. Filter opsional mempersempit hasil ke sumber daya tertentu. Memerlukan izin admin/pemilik akun.

Parameter:

  • domain_uuids (opsional): Filter berdasarkan UUID domain pengirim (array string)
  • inbox_ids (opsional): Filter berdasarkan ID kotak masuk sandbox (array string)
  • project_ids (opsional): Filter berdasarkan ID proyek sandbox (array string)

remove-account-access

Hapus akses akun berdasarkan ID. Untuk penentu User ini mencabut izin mereka; untuk penentu Invite atau ApiToken ini menghapus penentu sepenuhnya. Memerlukan admin/pemilik.

Parameter:

  • account_access_id (wajib): ID catatan akses yang akan dihapus

get-permission-resources

Dapatkan semua sumber daya (kotak masuk, proyek, domain, penagihan, akun) yang memiliki akses admin oleh token API, bersarang berdasarkan hierarki.

Parameter:

  • Tidak ada parameter yang diperlukan

bulk-update-permissions

Buat, perbarui, atau hapus izin secara massal untuk satu akses akun. Pasangan (resource_type, resource_id) yang sudah ada akan diperbarui; yang baru akan dibuat. Setel destroy: true pada sebuah entri untuk menghapusnya.

Parameter:

  • account_access_id (wajib): ID akses akun target
  • permissions (wajib): Array entri izin. Setiap entri memiliki:
    • resource_id (wajib): ID sumber daya (angka atau string)
    • resource_type (wajib): Salah satu dari account, project, inbox, domain, billing
    • access_level (opsional): admin/100 atau viewer/10
    • destroy (opsional, boolean): Jika true, menghapus izin ini alih-alih membuat/memperbaruinya

list-api-tokens

Daftarkan semua token API untuk akun.

Parameter:

  • Tidak ada parameter yang diperlukan

create-api-token

Buat token API baru. Respons menyertakan nilai rahasia token — ini adalah satu-satunya saat token lengkap dikembalikan, jadi simpan segera. Jika Anda kehilangannya, buat ulang token tersebut.

Parameter:

  • name (wajib): Nama tampilan untuk token
  • expires_at (opsional): Kedaluwarsa token sebagai tanggal-waktu ISO 8601. Lewati untuk default server (1 tahun); berikan null eksplisit untuk token yang tidak pernah kedaluwarsa. Nilai lampau atau nilai lebih dari 5 tahun ke depan akan ditolak
  • resources (opsional): Array izin sumber daya untuk membatasi cakupan token. Setiap entri memiliki:
    • resource_type (wajib): Salah satu dari account, project, inbox, domain, billing
    • resource_id (wajib): ID sumber daya
    • access_level (wajib): 100 (admin) atau 10 (penonton)

get-api-token

Dapatkan token API berdasarkan ID. Mengembalikan metadata saja — nilai token rahasia tidak dikembalikan di sini (hanya dari create-api-token / reset-api-token).

Parameter:

  • api_token_id (wajib): ID token API

reset-api-token

Atur ulang (rotasi) token API berdasarkan ID. Respons menyertakan nilai rahasia token baru — hanya dikembalikan pada panggilan ini, jadi simpan segera. Token sebelumnya menjadi tidak valid.

Parameter:

  • api_token_id (wajib): ID token API yang akan diatur ulang
  • expires_at (opsional): Kedaluwarsa untuk token baru sebagai tanggal-waktu ISO 8601. Lewati untuk default server (1 tahun); berikan null eksplisit untuk token yang tidak pernah kedaluwarsa. Nilai lampau atau nilai lebih dari 5 tahun ke depan akan ditolak

delete-api-token

Hapus token API secara permanen berdasarkan ID. Token tidak dapat lagi melakukan autentikasi setelah dihapus.

Parameter:

  • api_token_id (wajib): ID token API yang akan dihapus

list-sub-accounts

Daftarkan sub-akun dalam organisasi. Memerlukan variabel env MAILTRAP_ORGANIZATION_ID dan izin manajemen sub-akun.

Parameter:

  • Tidak ada parameter yang diperlukan

create-sub-account

Buat sub-akun baru di bawah organisasi. Memerlukan variabel env MAILTRAP_ORGANIZATION_ID dan izin manajemen sub-akun.

Parameter:

  • name (wajib): Nama tampilan untuk sub-akun baru

list-inbound-folders

Daftarkan semua folder masuk dalam akun. Mengembalikan ringkasan terformat.

Parameter:

  • Tidak ada parameter yang diperlukan

get-inbound-folder

Dapatkan satu folder masuk berdasarkan ID. Mengembalikan catatan folder lengkap sebagai JSON.

Parameter:

  • folder_id (wajib): ID folder masuk

create-inbound-folder

Buat folder masuk baru.

Parameter:

  • name (wajib): Nama folder

update-inbound-folder

Ubah nama folder masuk.

Parameter:

  • folder_id (wajib): ID folder masuk
  • name (wajib): Nama folder baru

delete-inbound-folder

Hapus folder masuk secara permanen beserta semua kotak masuknya.

Parameter:

  • folder_id (wajib): ID folder masuk

list-inbound-inboxes

Daftarkan semua kotak masuk dalam folder masuk. Mengembalikan ringkasan terformat.

Parameter:

  • folder_id (wajib): ID folder masuk

get-inbound-inbox

Dapatkan satu kotak masuk berdasarkan ID. Mengembalikan catatan kotak masuk lengkap sebagai JSON.

Parameter:

  • folder_id (wajib): ID folder masuk
  • inbox_id (wajib): ID kotak masuk

create-inbound-inbox

Buat kotak masuk baru dalam folder.

Parameter:

  • folder_id (wajib): ID folder masuk
  • name (wajib): Nama kotak masuk
  • domain_id (opsional): Lampirkan ke domain pengiriman kustom (kotak masuk catch-all). Lewati untuk kotak masuk yang dihosting Mailtrap

update-inbound-inbox

Ubah nama kotak masuk.

Parameter:

  • folder_id (wajib): ID folder masuk
  • inbox_id (wajib): ID kotak masuk
  • name (wajib): Nama kotak masuk baru

delete-inbound-inbox

Hapus kotak masuk secara permanen.

Parameter:

  • folder_id (wajib): ID folder masuk
  • inbox_id (wajib): ID kotak masuk

list-inbound-messages

Daftarkan pesan yang diterima dalam kotak masuk (dipaginasi dengan kursor). Mengembalikan ringkasan terformat dengan petunjuk halaman berikutnya saat ada lebih banyak hasil.

Parameter:

  • inbox_id (wajib): ID kotak masuk
  • last_id (opsional): Kursor paginasi dari last_id respons sebelumnya

get-inbound-message

Dapatkan satu pesan masuk dengan badan lengkap dan URL unduhan lampiran. Mengembalikan catatan pesan lengkap sebagai JSON.

Parameter:

  • inbox_id (wajib): ID kotak masuk
  • message_id (wajib): ID pesan

delete-inbound-message

Hapus pesan masuk secara permanen.

Parameter:

  • inbox_id (wajib): ID kotak masuk
  • message_id (wajib): ID pesan

reply-to-inbound-message

Balas pesan masuk (dikirim ke pengirim asli). Mengirim email sungguhan. Alamat menerima string email polos atau { email, name? }.

Parameter:

  • inbox_id (wajib): ID kotak masuk
  • message_id (wajib): ID pesan yang akan dibalas
  • text / html (setidaknya satu disarankan): Isi balasan
  • from (opsional): Pengirim. Ditolak untuk kotak masuk yang dihosting Mailtrap; wajib untuk kotak masuk domain kustom
  • cc / bcc / reply_to (opsional): Alamat tambahan
  • category (opsional): Kategori pesan
  • attachments (opsional): Array dari { content (base64), filename, type?, disposition?, content_id? }
  • headers / custom_variables (opsional): Objek nilai string

reply-all-to-inbound-message

Balas pesan masuk dan salin penerima lain dari pesan asli. Mengirim email sungguhan. Parameter sama dengan reply-to-inbound-message.

Parameter:

  • inbox_id (wajib): ID kotak masuk
  • message_id (wajib): ID pesan yang akan dibalas
  • Plus bidang kirim opsional yang sama dengan reply-to-inbound-message

forward-inbound-message

Teruskan pesan masuk ke penerima baru. Mengirim email sungguhan.

Parameter:

  • inbox_id (wajib): ID kotak masuk
  • message_id (wajib): ID pesan yang akan diteruskan
  • to (wajib): Setidaknya satu penerima (string email polos atau { email, name? }, atau array)
  • Plus bidang kirim opsional yang sama dengan reply-to-inbound-message

list-inbound-threads

Daftarkan utas percakapan dalam kotak masuk (dipaginasi dengan kursor). Mengembalikan ringkasan terformat dengan petunjuk halaman berikutnya saat ada lebih banyak hasil.

Parameter:

  • inbox_id (wajib): ID kotak masuk
  • last_id (opsional): Kursor paginasi dari last_id respons sebelumnya

get-inbound-thread

Dapatkan satu utas masuk dengan pesan-pesannya tertanam (terlama dulu). Mengembalikan catatan utas lengkap sebagai JSON.

Parameter:

  • inbox_id (wajib): ID kotak masuk
  • thread_id (wajib): ID utas

delete-inbound-thread

Hapus utas masuk secara permanen.

Parameter:

  • inbox_id (wajib): ID kotak masuk
  • thread_id (wajib): ID utas

Pengembangan

  1. Klon repositori:
git clone https://github.com/mailtrap/mailtrap-mcp.git
cd mailtrap-mcp
  1. Instal dependensi:
npm install

Konfigurasi dengan Claude Desktop atau Cursor

[!TIP] Lihat lokasi file konfigurasi di bagian Setup.

Tambahkan konfigurasi berikut:

{
  "mcpServers": {
    "mailtrap": {
      "command": "node",
      "args": ["/path/to/mailtrap-mcp/dist/index.js"],
      "env": {
        "MAILTRAP_API_TOKEN": "your_mailtrap_api_token",
        "DEFAULT_FROM_EMAIL": "your_sender@example.com",
        "MAILTRAP_ACCOUNT_ID": "your_account_id",
        "MAILTRAP_TEST_INBOX_ID": "your_test_inbox_id"
      }
    }
  }
}

Jika Anda menggunakan asdf untuk mengelola Node.js, Anda harus menggunakan jalur absolut ke executable:

(contoh untuk Mac)

{
  "mcpServers": {
    "mailtrap": {
      "command": "/Users/<username>/.asdf/shims/node",
      "args": ["/path/to/mailtrap-mcp/dist/index.js"],
      "env": {
        "PATH": "/Users/<username>/.asdf/shims:/usr/bin:/bin",
        "ASDF_DIR": "/opt/homebrew/opt/asdf/libexec",
        "ASDF_DATA_DIR": "/Users/<username>/.asdf",
        "ASDF_NODEJS_VERSION": "20.6.1",
        "MAILTRAP_API_TOKEN": "your_mailtrap_api_token",
        "DEFAULT_FROM_EMAIL": "your_sender@example.com",
        "MAILTRAP_ACCOUNT_ID": "your_account_id",
        "MAILTRAP_TEST_INBOX_ID": "your_test_inbox_id"
      }
    }
  }
}

VS Code

[!TIP] Lihat lokasi file konfigurasi di bagian Setup.

{
  "mcp": {
    "servers": {
      "mailtrap": {
        "command": "node",
        "args": ["/path/to/mailtrap-mcp/dist/index.js"],
        "env": {
          "MAILTRAP_API_TOKEN": "your_mailtrap_api_token",
          "DEFAULT_FROM_EMAIL": "your_sender@example.com",
          "MAILTRAP_ACCOUNT_ID": "your_account_id",
          "MAILTRAP_TEST_INBOX_ID": "your_test_inbox_id"
        }
      }
    }
  }
}

Pengujian

Menjalankan alat terhadap Mailtrap sungguhan

Ada dua cara untuk menguji alat secara end-to-end terhadap akun Mailtrap sungguhan: UI browser MCP Inspector untuk eksplorasi interaktif, atau mode CLI-nya untuk panggilan sekali jalan dari shell.

Keduanya memerlukan bundle yang dibangun terlebih dahulu:

npm run build

dan MAILTRAP_API_TOKEN + MAILTRAP_ACCOUNT_ID diekspor di shell Anda (skrip mcp:cli meneruskan keduanya ke server yang dijalankan).

UI Browser

npm run dev

Inspector mencetak URL seperti http://localhost:6274. Buka, alihkan ke tab Tools, pilih alat (misalnya get-template), isi parameter sebagai JSON, dan tekan Run. Respons Mailtrap muncul di panel bawah.

CLI

Untuk panggilan sekali jalan tanpa UI, gunakan npm run mcp:cli. Teruskan flag CLI Inspector setelah -- agar npm meneruskannya apa adanya:

# List all tools
npm run mcp:cli -- --method tools/list

# Call a tool — flags after the `--`
npm run mcp:cli -- \
  --method tools/call \
  --tool-name get-template \
  --tool-arg template_id=12345

# Multiple --tool-arg flags for tools with several params
npm run mcp:cli -- \
  --method tools/call \
  --tool-name send-sending-domain-setup-instructions \
  --tool-arg sending_domain_id=3938 \
  --tool-arg email=devops@example.com

Menjalankan Server MCPB

# Run the MCPB server directly
node dist/mcpb-server.js

# Or use the provided binary
mailtrap-mcpb-server

[!TIP] Untuk pengembangan dengan MCP Inspector:

npm run dev:mcpb

Penanganan Kesalahan

Server ini menggunakan penanganan kesalahan terstruktur yang selaras dengan konvensi MCP:

  • VALIDATION_ERROR: Kegagalan validasi input
  • CONFIGURATION_ERROR: Konfigurasi hilang atau tidak valid
  • EXECUTION_ERROR: Kesalahan eksekusi runtime
  • TIMEOUT: Waktu habis operasi (default 30 detik)

Kesalahan menyertakan pesan yang dapat ditindaklanjuti dan dicatat dalam bentuk terstruktur.

Keamanan

  • Input divalidasi melalui skema Zod
  • Variabel lingkungan ditangani dengan aman
  • Perlindungan waktu habis pada operasi (30 detik)
  • Detail sensitif dibersihkan dalam output kesalahan

Pencatatan Log

Log JSON terstruktur dengan level: INFO, WARN, ERROR, DEBUG.

Aktifkan pencatatan debug dengan mengatur DEBUG=true.

# Example: enable debug logging
DEBUG=true node dist/mcpb-server.js

Penting: Server menulis log ke stderr sehingga stdout tetap dicadangkan untuk frame JSON-RPC. Ini mencegah host mengalami kesalahan penguraian JSON akibat log yang disisipkan.

Contoh analisis log menggunakan jq:

# Filter error logs
node dist/mcpb-server.js 2>&1 | jq 'select(.level == "error")'

# Filter debug logs
node dist/mcpb-server.js 2>&1 | jq 'select(.level == "debug")'

Pemecahan Masalah

Masalah umum:

  1. Token API hilang: pastikan MAILTRAP_API_TOKEN diatur
  2. Sandbox tidak berfungsi: berikan test_inbox_id dalam panggilan alat atau atur env MAILTRAP_TEST_INBOX_ID
  3. Kesalahan waktu habis: periksa konektivitas jaringan dan status API Mailtrap
  4. Kesalahan validasi: pastikan semua bidang wajib disediakan

Kontribusi

Laporan bug dan permintaan tarik (pull request) diterima di GitHub. Proyek ini dimaksudkan sebagai ruang yang aman dan ramah untuk kolaborasi, dan kontributor diharapkan mematuhi kode etik.

Lisensi

Paket ini tersedia sebagai sumber terbuka di bawah ketentuan Lisensi MIT.

Kode Etik

Semua orang yang berinteraksi dengan basis kode, pelacak masalah, ruang obrolan, dan milis proyek Mailtrap diharapkan mengikuti kode etik.