Mailtrap
resmiTerintegrasi 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
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:
- Buat akun Mailtrap
- Verifikasi domain Anda
- Dapatkan token API dari Pengaturan API Mailtrap
- Dapatkan ID Akun dari Manajemen akun Mailtrap
Variabel Lingkungan yang Diperlukan:
MAILTRAP_API_TOKEN- Diperlukan untuk semua fungsiMAILTRAP_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 saatfromtidak diberikan ke send-email, send-sandbox-email, atau alat batch-send-* (yang mengisibase.from). Memungkinkan penggantian pengirim per panggilan melalui parameterfrom.MAILTRAP_SANDBOX_ID- ID sandbox default untuk alat sandbox saatsandbox_idtidak diberikan. Memungkinkan peralihan antar sandbox per panggilan melalui parametersandbox_id.MAILTRAP_TEST_INBOX_ID- ID kotak masuk uji default untuk alat sandbox saattest_inbox_idtidak diberikan. Memungkinkan peralihan antar kotak masuk per panggilan melalui parametertest_inbox_id. Alias lama untukMAILTRAP_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 dariMAILTRAP_API_TOKEN).
Instalasi Cepat
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):
- "Daftarkan penekanan untuk bounced@example.com"
- "Tekan bounced@example.com pada aliran transaksional domain 3938"
- "Tampilkan semua alamat email yang ditekan"
- "Mengapa user@example.com tidak menerima email saya?"
- "Hapus user@example.com dari daftar penekanan"
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_EMAILdigunakan.to(opsional): Array penerima sebagai objek{ email, name? }(string email polos, atau satu alamat non-array, juga diterima saat runtime). Opsional jikaccataubccdiberikan; setidaknya satu darito/cc/bccharus 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 saattemplate_uuiddiatur.text(kondisional): Teks badan email. Diperlukan (bersamaan dengan atau sebagai penggantihtml) untuk pengiriman inline; harus dihilangkan saattemplate_uuiddiatur.html(kondisional): Versi HTML dari badan email. Diperlukan (bersamaan dengan atau sebagai penggantitext) untuk pengiriman inline; harus dihilangkan saattemplate_uuiddiatur.category(opsional): Kategori email untuk pelacakan dan analitik. Harus dihilangkan saattemplate_uuiddiatur.template_uuid(opsional): Gunakan template email Mailtrap alih-alih konten inline. Saat diatur,subject/text/html/categoryharus dihilangkan (sesuai API Mailtrap).template_variables(opsional): Objek variabel yang disubstitusikan ke dalam template yang dirujuk olehtemplate_uuid. Hanya diizinkan bersama dengantemplate_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 keDEFAULT_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 jikaccataubccdisediakan; setidaknya satu darito/cc/bccharus 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 nilaibaseyang 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 darinext_page_cursorrespons sebelumnyasent_after(opsional): Tanggal/waktu ISO 8601; hanya log yang dikirim setelah waktu inisent_before(opsional): Tanggal/waktu ISO 8601; hanya log yang dikirim sebelum waktu inifrom_email(opsional): Filter berdasarkan email pengirim; gunakan denganfrom_operator(default: ci_equal)to_email(opsional): Filter berdasarkan email penerima; gunakan denganto_operator(default: ci_equal)status(opsional): Filter berdasarkan status pengiriman: delivered, not_delivered, enqueued, opted_out; gunakan denganstatus_operator(default: equal)subject(opsional): Filter berdasarkan subjek email; gunakan dengansubject_operator(default: ci_contain). Gunakansubject_operator: empty/not_empty untuk memfilter berdasarkan keberadaan subjek.sending_domain_id(opsional): Filter berdasarkan ID domain pengirim (angka); gunakan dengansending_domain_id_operator(default: equal)sending_stream(opsional): Filter berdasarkan stream: transactional atau bulk; gunakan dengansending_stream_operator(default: equal)events(opsional): Filter berdasarkan jenis peristiwa: delivery, open, click, bounce, spam, unsubscribe, soft_bounce, reject, suspension; gunakan denganevents_operator(include_event / not_include_event)clicks_count/opens_count(opsional): Filter berdasarkan jumlah klik/buka; gunakan dengan*_operator: equal, greater_than, less_thanclient_ip/sending_ip(opsional): Filter berdasarkan IP; gunakan dengan*_operator: equal, not_equal, contain, not_containemail_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_equalrecipient_mx(opsional): Filter berdasarkan MX penerima; gunakan denganrecipient_mx_operator(ci_contain, dll.)category(opsional): Filter berdasarkan kategori email; gunakan dengancategory_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). Gunakanlist-email-logsuntuk menemukan ID pesan.include_content(opsional): Saattrue, mengambil EML mentah (jikaraw_message_urltersedia) 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, atauby_datesending_domain_ids(opsional): Batasi hasil ke ID domain pengirim ini (array bilangan bulat)sending_streams(opsional): Batasi ketransactionaldan/ataubulk(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 templatesubject(wajib): Baris subjek emailhtml(atautextwajib): Konten HTML templatetext(atauhtmlwajib): Versi teks biasa templatecategory(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 diperbaruiname(opsional): Nama baru untuk templatesubject(opsional): Baris subjek email baruhtml(opsional): Konten HTML baru templatetext(opsional): Versi teks biasa baru templatecategory(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 kecualiMAILTRAP_TEST_INBOX_IDdisetel; 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_EMAILdigunakan.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 jikaccataubccdisediakan; setidaknya satu darito/cc/bccharus 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 saattemplate_uuiddisetel.text(kondisional): Teks isi email. Wajib (bersamaan dengan atau sebagai penggantihtml) untuk kirim inline; harus dihilangkan saattemplate_uuiddisetel.html(kondisional): Versi HTML isi email. Wajib (bersamaan dengan atau sebagai penggantitext) untuk kirim inline; harus dihilangkan saattemplate_uuiddisetel.category(opsional): Kategori email untuk pelacakan. Harus dihilangkan saattemplate_uuiddisetel.template_uuid(opsional): Gunakan template email Mailtrap alih-alih konten inline. Saat disetel,subject/text/html/categoryharus dihilangkan.template_variables(opsional): Objek variabel yang disubstitusikan ke dalam template yang dirujuk olehtemplate_uuid. Hanya diizinkan bersama dengantemplate_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 kecualiMAILTRAP_SANDBOX_IDdisetel; berikan per panggilan untuk menargetkan sandbox tertentu.base(opsional),requests(wajib): Lihatbatch-send-transactional-emaildi atas.
[!NOTE] Untuk alat sandbox, berikan
test_inbox_iddalam panggilan alat atau setel variabel lingkunganMAILTRAP_TEST_INBOX_ID. Anda dapat beralih antar kotak masuk per panggilan dengan memberikantest_inbox_id. Alat yang menggunakansandbox_idmenggunakanMAILTRAP_SANDBOX_IDterlebih 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-messagesterlebih 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 diperbaruiname(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 keMAILTRAP_SANDBOX_ID.message_id(wajib): ID pesan sandbox yang akan diteruskanemail(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 keMAILTRAP_SANDBOX_ID.message_id(wajib): ID pesan sandbox yang akan diperbaruiis_read(wajib):truemenandai sebagai sudah dibaca,falsemenandai sebagai belum dibaca
delete-sandbox-message
Hapus satu pesan sandbox.
Parameter:
sandbox_id(opsional): ID Sandbox. Jatuh kembali keMAILTRAP_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 keMAILTRAP_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 keMAILTRAP_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 keMAILTRAP_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 keMAILTRAP_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 keMAILTRAP_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 keMAILTRAP_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 keMAILTRAP_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 keMAILTRAP_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 keMAILTRAP_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 keMAILTRAP_SANDBOX_ID.message_id(wajib): ID pesan sandbox yang berisi lampiranattachment_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 pengiriminclude_setup_instructions(opsional): Jikatrue, 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 pengirimopen_tracking_enabled(opsional): Lacak pembukaan email yang dikirim dari domain iniclick_tracking_enabled(opsional): Lacak klik pada tautan di email yang dikirim dari domain initracking_opt_out_enabled(opsional): Tambahkan tautan berhenti berlangganan pelacakan ke email yang dilacak. Memerlukan pelacakan pembukaan atau klikauto_unsubscribe_link_enabled(opsional): Secara otomatis tambahkan tautan berhenti berlangganan ke emailinbound_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 pengirimemail(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 pengirimname(wajib): Nama perusahaan atau individuaddress(wajib): Alamat jalancity(wajib): Kotacountry(wajib): Negarazip_code(wajib): Kode POS atau kode poswebsite_url(wajib): URL situs web perusahaanphone(opsional): Nomor teleponprivacy_policy_url(opsional): URL halaman kebijakan privasiterms_of_service_url(opsional): URL halaman ketentuan layananinfo_level(opsional):businessatauindividual
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-suppressdomain_id(wajib): ID domain pengirim tempat suppression berlakusending_stream(wajib):transactionalataubulktype(opsional):hard bounce,spam complaint,unsubscriptionataumanual import. Default kemanual 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 inistart_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_iddari 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 pelacakandomain_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 POSTwebhook_type(wajib):"email_sending","audit_log", atau"inbound_receiving"active(opsional, boolean): default ketruepayload_format(opsional):"json"atau"jsonlines". Default ke"json"sending_stream(opsional, hanyaemail_sending):"transactional"atau"bulk"event_types(opsional, hanyaemail_sending): array daridelivery,soft_bounce,bounce,suspension,unsubscribe,open,spam_complaint,click,rejectdomain_id(opsional, hanyaemail_sending): ID domain pengirim untuk membatasi cakupan webhook iniinbound_inbox_id(opsional, hanyainbound_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 diperbaruiurl(opsional): URL webhook baruactive(opsional, boolean): Aktifkan atau nonaktifkan webhookpayload_format(opsional):"json"atau"jsonlines"event_types(opsional, hanyaemail_sending): array daridelivery,soft_bounce,bounce,suspension,unsubscribe,open,spam_complaint,click,rejectinbound_inbox_id(opsional, hanyainbound_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 emailfields(opsional): Nilai bidang kustom yang dikunci berdasarkan tag gabungan (misalnyafirst_name). Nilai string, angka, atau booleanlist_ids(opsional): ID daftar kontak untuk berlangganan kontak iniunsubscribed(opsional, boolean): Buat kontak dalam statusunsubscribed
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 emailemail(opsional): Alamat email barufields(opsional): Nilai bidang kustom yang dikunci berdasarkan tag gabunganlist_ids(opsional): Ganti set keanggotaan dengan daftar persis inilist_ids_included(opsional): ID daftar untuk ditambahkan (aditif)list_ids_excluded(opsional): ID daftar untuk dihapusunsubscribed(opsional, boolean): Setel keunsubscribed(benar) atausubscribed(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 emailname(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), misalnyanews
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 kontakname(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 (misalnyafirst_name)data_type(wajib): Salah satu daritext,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 kontakname(opsional): Nama tampilan barumerge_tag(opsional): Tag gabungan baru (harus tetap unik)data_type(opsional): Salah satu daritext,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 kontakfields(opsional): Nilai bidang kustom yang dikunci berdasarkan tag gabungan (nilai string atau angka)list_ids_included(opsional): ID daftar untuk menambahkan kontaklist_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 dariequal,not_equal,contains,not_contains,is_empty,is_not_emptyvalue(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 ke1per_page(opsional): Jumlah kampanye per halaman. Default ke50, maksimum100search(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 kampanyedomain_id(wajib): ID domain pengirim terverifikasi yang digunakan untuk kampanye, seperti yang dikembalikan oleh endpoint Domain Pengirimfrom_local_part(wajib): Bagian lokal (sebelum @) dari alamat Daritemplate_attributes(wajib): Template email inline. Memiliki:subject(wajib): Baris subjek email (maks 255 karakter). Mendukung tag gabungan, misalnyaHi {{first_name}}body_html(opsional): Badan HTML (desain). Diperlukan sebelum kampanye dapat dijadwalkan atau dimulai. Sertakan tautan berhenti berlangganan melalui jangkar yanghrefberisi placeholder__unsubscribe_url__body_text(opsional): Alternatif teks biasa dari badan emailmerge_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 Darireply_to(opsional): Bagian alamat Balas-Ke (display_name,local_part,domain)delivery_mode(opsional):rapid(kirim secepat mungkin) ataugradual(batasi kedelivery_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 dijadwalkandatetime(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 emailstart_date(opsional): Awal jendela agregasi (inklusif),YYYY-MM-DD. Default ke hari kampanye terakhir dimulaiend_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 targetpermissions(wajib): Array entri izin. Setiap entri memiliki:resource_id(wajib): ID sumber daya (angka atau string)resource_type(wajib): Salah satu dariaccount,project,inbox,domain,billingaccess_level(opsional):admin/100atauviewer/10destroy(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 tokenexpires_at(opsional): Kedaluwarsa token sebagai tanggal-waktu ISO 8601. Lewati untuk default server (1 tahun); berikannulleksplisit untuk token yang tidak pernah kedaluwarsa. Nilai lampau atau nilai lebih dari 5 tahun ke depan akan ditolakresources(opsional): Array izin sumber daya untuk membatasi cakupan token. Setiap entri memiliki:resource_type(wajib): Salah satu dariaccount,project,inbox,domain,billingresource_id(wajib): ID sumber dayaaccess_level(wajib):100(admin) atau10(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 ulangexpires_at(opsional): Kedaluwarsa untuk token baru sebagai tanggal-waktu ISO 8601. Lewati untuk default server (1 tahun); berikannulleksplisit 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 masukname(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 masukinbox_id(wajib): ID kotak masuk
create-inbound-inbox
Buat kotak masuk baru dalam folder.
Parameter:
folder_id(wajib): ID folder masukname(wajib): Nama kotak masukdomain_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 masukinbox_id(wajib): ID kotak masukname(wajib): Nama kotak masuk baru
delete-inbound-inbox
Hapus kotak masuk secara permanen.
Parameter:
folder_id(wajib): ID folder masukinbox_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 masuklast_id(opsional): Kursor paginasi darilast_idrespons 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 masukmessage_id(wajib): ID pesan
delete-inbound-message
Hapus pesan masuk secara permanen.
Parameter:
inbox_id(wajib): ID kotak masukmessage_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 masukmessage_id(wajib): ID pesan yang akan dibalastext/html(setidaknya satu disarankan): Isi balasanfrom(opsional): Pengirim. Ditolak untuk kotak masuk yang dihosting Mailtrap; wajib untuk kotak masuk domain kustomcc/bcc/reply_to(opsional): Alamat tambahancategory(opsional): Kategori pesanattachments(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 masukmessage_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 masukmessage_id(wajib): ID pesan yang akan diteruskanto(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 masuklast_id(opsional): Kursor paginasi darilast_idrespons 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 masukthread_id(wajib): ID utas
delete-inbound-thread
Hapus utas masuk secara permanen.
Parameter:
inbox_id(wajib): ID kotak masukthread_id(wajib): ID utas
Pengembangan
- Klon repositori:
git clone https://github.com/mailtrap/mailtrap-mcp.git
cd mailtrap-mcp
- 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 inputCONFIGURATION_ERROR: Konfigurasi hilang atau tidak validEXECUTION_ERROR: Kesalahan eksekusi runtimeTIMEOUT: 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:
- Token API hilang: pastikan
MAILTRAP_API_TOKENdiatur - Sandbox tidak berfungsi: berikan
test_inbox_iddalam panggilan alat atau atur envMAILTRAP_TEST_INBOX_ID - Kesalahan waktu habis: periksa konektivitas jaringan dan status API Mailtrap
- 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.