Mailtrap MCP Server

ทางการ

ผสานการทำงานกับ Mailtrap Email API

เอกสาร

TypeScript test NPM

MCP Mailtrap Server

เซิร์ฟเวอร์ MCP ที่ให้เครื่องมือสำหรับการส่งและทดสอบในแซนด์บ็อกซ์ผ่าน Mailtrap

ข้อกำหนดเบื้องต้น

ก่อนใช้เซิร์ฟเวอร์ MCP นี้ คุณต้อง:

  1. สร้างบัญชี Mailtrap
  2. ยืนยันโดเมนของคุณ
  3. รับโทเค็น API ของคุณจาก การตั้งค่า Mailtrap API
  4. รับ Account ID ของคุณจาก การจัดการบัญชี Mailtrap

ตัวแปรสภาพแวดล้อมที่จำเป็น:

  • MAILTRAP_API_TOKEN - จำเป็นสำหรับฟังก์ชันการทำงานทั้งหมด
  • MAILTRAP_ACCOUNT_ID - จำเป็นสำหรับเทมเพลต สถิติ บันทึกอีเมล รายการ/แสดงแซนด์บ็อกซ์ และโดเมนผู้ส่ง เป็นทางเลือกสำหรับ send-email และ send-sandbox-email เท่านั้น

ทางเลือก (สามารถส่งเป็นพารามิเตอร์ของเครื่องมือแทนได้):

  • DEFAULT_FROM_EMAIL - อีเมลผู้ส่งเริ่มต้นเมื่อไม่ได้ระบุ from ให้กับ send-email หรือ send-sandbox-email เปิดใช้งานการเปลี่ยนผู้ส่งต่อการเรียกผ่านพารามิเตอร์ from
  • MAILTRAP_TEST_INBOX_ID - ID กล่องจดหมายทดสอบเริ่มต้นสำหรับเครื่องมือแซนด์บ็อกซ์เมื่อไม่ได้ระบุ test_inbox_id เปิดใช้งานการสลับระหว่างกล่องจดหมายต่อการเรียกผ่านพารามิเตอร์ test_inbox_id
  • MAILTRAP_SANDBOX_ID - ID แซนด์บ็อกซ์เริ่มต้นสำหรับเครื่องมือแซนด์บ็อกซ์เมื่อไม่ได้ระบุ sandbox_id เปิดใช้งานการสลับระหว่างแซนด์บ็อกซ์ต่อการเรียกผ่านพารามิเตอร์ sandbox_id
  • MAILTRAP_ORGANIZATION_ID - จำเป็นสำหรับเครื่องมือองค์กร (list-sub-accounts, create-sub-account)
  • MAILTRAP_ORGANIZATION_API_TOKEN - โทเค็น API ที่กำหนดขอบเขตองค์กร จำเป็นสำหรับเครื่องมือองค์กร (แยกจาก MAILTRAP_API_TOKEN)

การติดตั้งด่วน

Install in Cursor

Install with Node in VS Code

Smithery CLI

Smithery เป็นตัวติดตั้งและจัดการรีจิสทรีสำหรับเซิร์ฟเวอร์ MCP ที่ทำงานร่วมกับไคลเอนต์ AI ทั้งหมด

npx @smithery/cli install mailtrap

Smithery จัดการการกำหนดค่าไคลเอนต์โดยอัตโนมัติและมีกระบวนการตั้งค่าแบบโต้ตอบ เป็นวิธีที่ง่ายที่สุดในการเริ่มต้นใช้งานเซิร์ฟเวอร์ MCP ในเครื่อง

การตั้งค่า

Claude Desktop

ใช้ MCPB เพื่อติดตั้งเซิร์ฟเวอร์ Mailtrap คุณสามารถค้นหาไฟล์เหล่านั้นได้ใน Releases
ดาวน์โหลดไฟล์ .MCPB และเปิด หากคุณมี Claude Desktop - มันจะเปิดและแนะนำให้กำหนดค่า

Claude Desktop หรือ Cursor

เพิ่มการกำหนดค่าต่อไปนี้:

{
  "mcpServers": {
    "mailtrap": {
      "command": "npx",
      "args": ["-y", "mcp-mailtrap"],
      "env": {
        "MAILTRAP_API_TOKEN": "your_mailtrap_api_token",
        "DEFAULT_FROM_EMAIL": "[email protected]",
        "MAILTRAP_ACCOUNT_ID": "your_account_id",
        "MAILTRAP_TEST_INBOX_ID": "your_test_inbox_id"
      }
    }
  }
}

หากคุณใช้ asdf สำหรับการจัดการ Node.js คุณต้องใช้พาธสัมบูรณ์ไปยังไฟล์ปฏิบัติการ (ตัวอย่างสำหรับ 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": "[email protected]",
        "MAILTRAP_ACCOUNT_ID": "your_account_id",
        "MAILTRAP_TEST_INBOX_ID": "your_test_inbox_id"
      }
    }
  }
}

ตำแหน่งไฟล์กำหนดค่า Claude Desktop

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

Windows: %APPDATA%\Claude\claude_desktop_config.json

ตำแหน่งไฟล์กำหนดค่า Cursor

Mac: ~/.cursor/mcp.json

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

VS Code

การเปลี่ยนการกำหนดค่าด้วยตนเอง

รันใน Command Palette: Preferences: Open User Settings (JSON)

จากนั้นในไฟล์การตั้งค่า เพิ่มการกำหนดค่าต่อไปนี้:

{
  "mcp": {
    "servers": {
      "mailtrap": {
        "command": "npx",
        "args": ["-y", "mcp-mailtrap"],
        "env": {
          "MAILTRAP_API_TOKEN": "your_mailtrap_api_token",
          "DEFAULT_FROM_EMAIL": "[email protected]",
          "MAILTRAP_ACCOUNT_ID": "your_account_id",
          "MAILTRAP_TEST_INBOX_ID": "your_test_inbox_id"
        }
      }
    }
  }
}

[!TIP] อย่าลืมรีสตาร์ทเซิร์ฟเวอร์ MCP ของคุณหลังจากเปลี่ยนส่วน "env"

MCP Bundle (MCPB)

สำหรับการติดตั้งง่ายในโฮสต์ที่รองรับ MCP Bundles คุณสามารถแจกจ่ายไฟล์บันเดิล .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

สิ่งนี้สร้าง mailtrap-mcp.mcpb โดยใช้ที่เก็บ manifest.json และอาร์ติแฟกต์ที่สร้างใน dist/

การใช้งาน

เมื่อกำหนดค่าแล้ว คุณสามารถขอให้เอเจนต์ส่งอีเมลและจัดการเทมเพลตได้ ตัวอย่างเช่น:

การดำเนินการส่งอีเมล:

  • "ส่งอีเมลถึง [email protected] ด้วยหัวเรื่อง 'Meeting Tomorrow' และข้อความเตือนที่เป็นมิตรเกี่ยวกับการประชุมที่กำลังจะมาถึงของเรา"
  • "ส่งอีเมล [email protected] เกี่ยวกับการอัปเดตโครงการ และ CC ทีมที่ [email protected]"
  • "ส่งเทมเพลตต้อนรับ (uuid b81aabcd-1a1e-41cf-91b6-eca0254b3d96) ถึง [email protected] ด้วยตัวแปร { name: 'Alex' }"
  • "ส่งอีเมลแซนด์บ็อกซ์ถึง [email protected] ด้วยหัวเรื่อง 'Test Template' เพื่อดูตัวอย่างว่าอีเมลต้อนรับของเรามีลักษณะอย่างไร"

บันทึกอีเมล (ดีบักการจัดส่ง):

  • "แสดงรายการบันทึกอีเมลที่ส่งล่าสุดของฉัน"
  • "แสดงบันทึกอีเมลสำหรับอีเมลที่ส่งถึง [email protected]"
  • "รับข้อความบันทึกอีเมลสำหรับ ID abc-123-uuid เพื่อตรวจสอบสถานะการจัดส่ง"

สถิติการส่ง:

  • "รับสถิติการส่งสำหรับเดือนมกราคม 2025"
  • "แสดงอัตราการจัดส่งแยกตามโดเมนสำหรับเดือนที่แล้ว"
  • "สถิติอีเมลของฉันตามหมวดหมู่ตั้งแต่วันที่ 2025-01-01 ถึง 2025-01-31 คืออะไร"

การดำเนินการแซนด์บ็อกซ์:

  • "รับข้อความทั้งหมดจากกล่องจดหมายแซนด์บ็อกซ์ของฉัน"
  • "แสดงหน้าแรกของข้อความแซนด์บ็อกซ์"
  • "ค้นหาข้อความที่มี 'test' ในกล่องจดหมายแซนด์บ็อกซ์ของฉัน"
  • "แสดงรายละเอียดของข้อความแซนด์บ็อกซ์ที่มี ID 5159037506"

การดำเนินการเทมเพลต:

  • "แสดงรายการเทมเพลตอีเมลทั้งหมดในบัญชี Mailtrap ของฉัน"
  • "สร้างเทมเพลตอีเมลใหม่ชื่อ 'Welcome Email' ด้วยหัวเรื่อง 'Welcome to our platform!'"
  • "อัปเดตเทมเพลตที่มี ID 12345 เพื่อเปลี่ยนหัวเรื่องเป็น 'Updated Welcome Message'"
  • "ลบเทมเพลตที่มี ID 67890"

โดเมนผู้ส่ง:

  • "แสดงรายการโดเมนผู้ส่งของฉัน"
  • "รับโดเมนผู้ส่งที่มี ID 3938"
  • "สร้างโดเมนผู้ส่งสำหรับ example.com"
  • "ลบโดเมนผู้ส่ง 3938"
  • "รับโดเมนผู้ส่ง 3938 พร้อมคำแนะนำการตั้งค่า DNS"

เครื่องมือที่พร้อมใช้งาน

send-email

ส่งอีเมลธุรกรรมผ่าน Mailtrap รองรับสองโหมดที่แยกจากกัน — เนื้อหาแบบอินไลน์ (subject + text/html) หรือ แบบใช้เทมเพลต (template_uuid)

พารามิเตอร์:

  • from (ทางเลือก): ผู้ส่งเป็นสตริงอีเมลหรือ { email, name? } หากไม่ได้ระบุ จะใช้ DEFAULT_FROM_EMAIL
  • to (ทางเลือก): ผู้รับ — อีเมลเดียว/{ email, name? } หรืออาร์เรย์ เป็นทางเลือกหากระบุ cc หรือ bcc; อย่างน้อยหนึ่งใน to / cc / bcc ต้องมีผู้รับ
  • cc (ทางเลือก): อาร์เรย์ของผู้รับ CC (สตริงอีเมลหรือ { email, name? } แต่ละรายการ)
  • bcc (ทางเลือก): อาร์เรย์ของผู้รับ BCC (สตริงอีเมลหรือ { email, name? } แต่ละรายการ)
  • subject (มีเงื่อนไข): บรรทัดหัวเรื่องอีเมล จำเป็นสำหรับการส่งแบบอินไลน์; ต้องละเว้นเมื่อตั้งค่า template_uuid
  • text (มีเงื่อนไข): ข้อความเนื้อหาอีเมล จำเป็น (พร้อมกับหรือแทน html) สำหรับการส่งแบบอินไลน์; ต้องละเว้นเมื่อตั้งค่า template_uuid
  • html (มีเงื่อนไข): เวอร์ชัน HTML ของเนื้อหาอีเมล จำเป็น (พร้อมกับหรือแทน text) สำหรับการส่งแบบอินไลน์; ต้องละเว้นเมื่อตั้งค่า template_uuid
  • category (ทางเลือก): หมวดหมู่อีเมลสำหรับการติดตามและวิเคราะห์ ต้องละเว้นเมื่อตั้งค่า template_uuid
  • template_uuid (ทางเลือก): ใช้เทมเพลตอีเมล Mailtrap แทนเนื้อหาแบบอินไลน์ เมื่อตั้งค่า ต้องละเว้น subject / text / html / category (ตาม Mailtrap API)
  • template_variables (ทางเลือก): ออบเจ็กต์ของตัวแปรที่แทนที่ลงในเทมเพลตที่อ้างอิงโดย template_uuid อนุญาตร่วมกับ template_uuid เท่านั้น

batch-send-transactional-email

ส่งชุดอีเมลธุรกรรมในการเรียก Mailtrap API ครั้งเดียว (สตรีมการส่งเริ่มต้น) ฟิลด์ที่ใช้ร่วมกันไปที่ base; การแทนที่ต่อผู้รับไปใน requests[] แต่ละคำขอต้องมีผู้รับอย่างน้อยหนึ่งรายผ่าน to, cc หรือ bcc การแยกอินไลน์กับเทมเพลตเหมือนกับ send-email — ตรวจสอบหลังจากรวมฐานกับแต่ละคำขอ

พารามิเตอร์:

  • base (ทางเลือก): ออบเจ็กต์ที่มีฟิลด์ที่ใช้ร่วมกันทั่วทั้งชุด
    • from (ทางเลือก): ผู้ส่งเป็นสตริงอีเมลหรือ { email, name? } ตกกลับไปที่ DEFAULT_FROM_EMAIL
    • reply_to (ทางเลือก): ที่อยู่ตอบกลับ
    • subject / text / html / category (ทางเลือก, โหมดอินไลน์): เนื้อหาเริ่มต้นสำหรับทุกคำขอ
    • template_uuid / template_variables (ทางเลือก, โหมดเทมเพลต): เทมเพลตเริ่มต้น + ตัวแปร แยกจากฟิลด์อินไลน์
    • custom_variables (ทางเลือก): ตัวแปรกำหนดเองเริ่มต้น (ค่าสตริง)
    • headers (ทางเลือก): ส่วนหัวกำหนดเองเริ่มต้น
  • requests (จำเป็น): อาร์เรย์ไม่ว่างของข้อความต่อผู้รับ แต่ละรายการมี:
    • to (ทางเลือก): ผู้รับ — สตริง, { email, name? } หรืออาร์เรย์ เป็นทางเลือกหากระบุ cc หรือ bcc; อย่างน้อยหนึ่งใน to / cc / bcc ต้องมีผู้รับ
    • cc, bcc, reply_to (ทางเลือก)
    • การแทนที่แบบอินไลน์ (subject/text/html/category) หรือเทมเพลต (template_uuid/template_variables); ฟิลด์ใดที่ละเว้นจะตกกลับไปที่ค่า base ที่ตรงกัน
    • custom_variables, headers (ทางเลือก)

batch-send-bulk-email

ส่งชุดอีเมลจำนวนมากผ่าน API สตรีมจำนวนมากของ Mailtrap รูปร่าง base + requests[] การตรวจสอบ และกฎอินไลน์กับเทมเพลตเหมือนกับ batch-send-transactional-email — ข้อแตกต่างเพียงอย่างเดียวคือเครื่องมือนี้กำหนดเส้นทางการเรียกผ่านปลายทางจำนวนมากแทนที่จะเป็นธุรกรรม ดูพารามิเตอร์ด้านบน

list-email-logs

แสดงรายการบันทึกอีเมลที่ส่ง (ประวัติการจัดส่ง) พร้อมการแบ่งหน้าและตัวกรองที่เป็นทางเลือก ใช้เพื่อดีบักปัญหาการจัดส่งจาก IDE

พารามิเตอร์:

  • search_after (ทางเลือก): เคอร์เซอร์การแบ่งหน้าจาก next_page_cursor ของการตอบกลับก่อนหน้า
  • sent_after (ทางเลือก): วันที่/เวลา ISO 8601; เฉพาะบันทึกที่ส่งหลังจากเวลานี้
  • sent_before (ทางเลือก): วันที่/เวลา ISO 8601; เฉพาะบันทึกที่ส่งก่อนเวลานี้
  • from_email (ทางเลือก): กรองตามอีเมลผู้ส่ง; ใช้กับ from_operator (ค่าเริ่มต้น: ci_equal)
  • to_email (ทางเลือก): กรองตามอีเมลผู้รับ; ใช้กับ to_operator (ค่าเริ่มต้น: ci_equal)
  • status (ทางเลือก): กรองตามสถานะการจัดส่ง: delivered, not_delivered, enqueued, opted_out; ใช้กับ status_operator (ค่าเริ่มต้น: equal)
  • subject (ทางเลือก): กรองตามหัวเรื่องอีเมล; ใช้กับ subject_operator (ค่าเริ่มต้น: ci_contain) ใช้ subject_operator: empty/not_empty เพื่อกรองตามการมีอยู่ของหัวเรื่อง
  • sending_domain_id (ทางเลือก): กรองตาม ID โดเมนผู้ส่ง (ตัวเลข); ใช้กับ sending_domain_id_operator (ค่าเริ่มต้น: equal)
  • sending_stream (ทางเลือก): กรองตามสตรีม: transactional หรือ bulk; ใช้กับ sending_stream_operator (ค่าเริ่มต้น: equal)
  • events (ทางเลือก): กรองตามประเภทเหตุการณ์: delivery, open, click, bounce, spam, unsubscribe, soft_bounce, reject, suspension; ใช้กับ events_operator (include_event / not_include_event)
  • clicks_count / opens_count (ทางเลือก): กรองตามจำนวนคลิก/เปิด; ใช้กับ *_operator: equal, greater_than, less_than
  • client_ip / sending_ip (ทางเลือก): กรองตาม IP; ใช้กับ *_operator: equal, not_equal, contain, not_contain
  • email_service_provider_response (ทางเลือก): กรองตามข้อความตอบกลับของผู้ให้บริการ; ใช้กับ *_operator (ci_contain, ฯลฯ)
  • email_service_provider (ทางเลือก): กรองตามผู้ให้บริการ (ตรงทั้งหมด); ใช้กับ *_operator: equal, not_equal
  • recipient_mx (ทางเลือก): กรองตาม MX ผู้รับ; ใช้กับ recipient_mx_operator (ci_contain, ฯลฯ)
  • category (ทางเลือก): กรองตามหมวดหมู่อีเมล; ใช้กับ category_operator: equal, not_equal

พารามิเตอร์ทั้งหมดเป็นทางเลือก

get-email-log-message

รับข้อความบันทึกอีเมลเดียวตาม ID (UUID): สรุปที่อ่านได้ (จาก, ถึง, หัวเรื่อง, เวลาที่ส่ง, สถานะ, หมวดหมู่, สตรีม, การมีส่วนร่วม, บริบทการจัดส่ง) จากนั้นประวัติเหตุการณ์โดยละเอียด ทางเลือกด้วย include_content: true คุณยังสามารถโหลดและแสดงเนื้อหาข้อความ (HTML และข้อความธรรมดา) เมื่อ Mailtrap เปิดเผย URL ข้อความดิบ

พารามิเตอร์:

  • message_id (จำเป็น): UUID ของข้อความบันทึกอีเมล (จากการตอบกลับการส่งหรือ list-email-logs) ใช้ list-email-logs เพื่อค้นหา ID ข้อความ
  • include_content (ทางเลือก): เมื่อ true ดึงข้อมูล EML ดิบ (หากมี raw_message_url) และผนวกส่วนเนื้อหา HTML และข้อความธรรมดาที่แยกวิเคราะห์แล้ว คล้ายกับ show-sandbox-email-message

get-sending-stats

รับสถิติการส่งอีเมล (อัตราการจัดส่ง, ตีกลับ, เปิด, คลิก, สแปม) สำหรับช่วงวันที่ ทางเลือกแยกตามโดเมน, หมวดหมู่, ผู้ให้บริการอีเมล หรือวันที่ ตรวจสอบอัตราการจัดส่งโดยไม่ต้องออกจากเอดิเตอร์

พารามิเตอร์:

  • start_date (จำเป็น): วันที่เริ่มต้นสำหรับช่วงสถิติ (YYYY-MM-DD)
  • end_date (จำเป็น): วันที่สิ้นสุดสำหรับช่วงสถิติ (YYYY-MM-DD)
  • breakdown (ไม่บังคับ): วิธีการแยกย่อยสถิติ: aggregated (ค่าเริ่มต้น), by_domain, by_category, by_email_service_provider, หรือ by_date
  • sending_domain_ids (ไม่บังคับ): จำกัดผลลัพธ์เฉพาะ ID โดเมนผู้ส่งเหล่านี้ (อาร์เรย์ของจำนวนเต็ม)
  • sending_streams (ไม่บังคับ): จำกัดเฉพาะ transactional และ/หรือ bulk (อาร์เรย์ของสตริง)
  • categories (ไม่บังคับ): จำกัดเฉพาะหมวดหมู่อีเมลเหล่านี้ (อาร์เรย์ของสตริง)
  • email_service_providers (ไม่บังคับ): จำกัดเฉพาะผู้ให้บริการเหล่านี้ เช่น Google, Yahoo, Outlook (อาร์เรย์ของสตริง)

create-template

สร้างเทมเพลตอีเมลใหม่ในบัญชี Mailtrap ของคุณ

พารามิเตอร์:

  • name (จำเป็น): ชื่อของเทมเพลต
  • subject (จำเป็น): หัวเรื่องอีเมล
  • html (หรือ text จำเป็น): เนื้อหา HTML ของเทมเพลต
  • text (หรือ html จำเป็น): เวอร์ชันข้อความล้วนของเทมเพลต
  • category (ไม่บังคับ): หมวดหมู่เทมเพลต (ค่าเริ่มต้นคือ "General")

list-templates

แสดงรายการเทมเพลตอีเมลทั้งหมดในบัญชี Mailtrap ของคุณ

พารามิเตอร์:

  • ไม่จำเป็นต้องมีพารามิเตอร์

get-template

รับเทมเพลตอีเมลเดี่ยวตาม ID รวมถึงหัวเรื่อง หมวดหมู่ และเนื้อหา HTML/ข้อความ

พารามิเตอร์:

  • template_id (จำเป็น): ID ของเทมเพลตที่จะดึงข้อมูล

update-template

อัปเดตเทมเพลตอีเมลที่มีอยู่

พารามิเตอร์:

  • template_id (จำเป็น): ID ของเทมเพลตที่จะอัปเดต
  • name (ไม่บังคับ): ชื่อใหม่สำหรับเทมเพลต
  • subject (ไม่บังคับ): หัวเรื่องอีเมลใหม่
  • html (ไม่บังคับ): เนื้อหา HTML ใหม่ของเทมเพลต
  • text (ไม่บังคับ): เวอร์ชันข้อความล้วนใหม่ของเทมเพลต
  • category (ไม่บังคับ): หมวดหมู่ใหม่สำหรับเทมเพลต

[!NOTE] ต้องระบุฟิลด์ที่อัปเดตได้อย่างน้อยหนึ่งฟิลด์ (ชื่อ, หัวเรื่อง, html, ข้อความ, หรือหมวดหมู่) เมื่อเรียกใช้ update-template เพื่อดำเนินการอัปเดต

delete-template

ลบเทมเพลตอีเมลที่มีอยู่

พารามิเตอร์:

  • template_id (จำเป็น): ID ของเทมเพลตที่จะลบ

send-sandbox-email

ส่งอีเมลไปยังกล่องจดหมายทดสอบ Mailtrap ของคุณเพื่อวัตถุประสงค์ในการพัฒนาและทดสอบ เหมาะสำหรับการทดสอบเทมเพลตอีเมลโดยไม่ต้องส่งอีเมลไปยังผู้รับจริง รองรับสองโหมดเดียวกับ send-emailเนื้อหาแบบอินไลน์ หรือ แบบอิงเทมเพลต (template_uuid)

พารามิเตอร์:

  • test_inbox_id (ไม่บังคับ): ID กล่องจดหมายทดสอบ Mailtrap จำเป็นเว้นแต่จะตั้งค่า MAILTRAP_TEST_INBOX_ID; ส่งต่อการเรียกเพื่อระบุกล่องจดหมายเฉพาะ
  • from (ไม่บังคับ): ผู้ส่งเป็นสตริงอีเมลหรือ { email, name? } หากไม่ระบุ จะใช้ DEFAULT_FROM_EMAIL
  • to (ไม่บังคับ): ผู้รับเป็นสตริงที่คั่นด้วยเครื่องหมายจุลภาค หรืออาร์เรย์ของสตริงอีเมล / ออบเจ็กต์ { email, name? } ไม่บังคับหากระบุ cc หรือ bcc; อย่างน้อยหนึ่งใน to / cc / bcc ต้องมีผู้รับ
  • cc (ไม่บังคับ): อาร์เรย์ของผู้รับสำเนาถึง (CC) (สตริงอีเมลหรือ { email, name? } แต่ละรายการ)
  • bcc (ไม่บังคับ): อาร์เรย์ของผู้รับสำเนาลับ (BCC) (สตริงอีเมลหรือ { email, name? } แต่ละรายการ)
  • subject (มีเงื่อนไข): หัวเรื่องอีเมล จำเป็นสำหรับการส่งแบบอินไลน์; ต้องละเว้นเมื่อตั้งค่า template_uuid
  • text (มีเงื่อนไข): ข้อความเนื้อหาอีเมล จำเป็น (พร้อมกับหรือแทน html) สำหรับการส่งแบบอินไลน์; ต้องละเว้นเมื่อตั้งค่า template_uuid
  • html (มีเงื่อนไข): เวอร์ชัน HTML ของเนื้อหาอีเมล จำเป็น (พร้อมกับหรือแทน text) สำหรับการส่งแบบอินไลน์; ต้องละเว้นเมื่อตั้งค่า template_uuid
  • category (ไม่บังคับ): หมวดหมู่อีเมลสำหรับการติดตาม ต้องละเว้นเมื่อตั้งค่า template_uuid
  • template_uuid (ไม่บังคับ): ใช้เทมเพลตอีเมล Mailtrap แทนเนื้อหาแบบอินไลน์ เมื่อตั้งค่าแล้ว ต้องละเว้น subject / text / html / category
  • template_variables (ไม่บังคับ): ออบเจ็กต์ของตัวแปรที่แทนที่ลงในเทมเพลตที่อ้างอิงโดย template_uuid อนุญาตเฉพาะร่วมกับ template_uuid เท่านั้น

[!NOTE] สำหรับเครื่องมือแซนด์บ็อกซ์ ให้ระบุ test_inbox_id ในการเรียกใช้เครื่องมือ หรือตั้งค่าตัวแปรสภาพแวดล้อม MAILTRAP_TEST_INBOX_ID คุณสามารถสลับระหว่างกล่องจดหมายต่อการเรียกได้โดยส่ง test_inbox_id

get-sandbox-messages

ดึงรายการข้อความจากกล่องจดหมายทดสอบ Mailtrap ของคุณ มีประโยชน์สำหรับตรวจสอบว่าอีเมลใดบ้างที่ได้รับในแซนด์บ็อกซ์ของคุณระหว่างการทดสอบ

พารามิเตอร์:

  • page (ไม่บังคับ): หมายเลขหน้าสำหรับการแบ่งหน้า (ขั้นต่ำ: 1)
  • last_id (ไม่บังคับ): การแบ่งหน้าโดยใช้ ID ข้อความล่าสุด ส่งคืนข้อความหลังจาก ID ข้อความที่ระบุ (ขั้นต่ำ: 1)
  • search (ไม่บังคับ): คำค้นหาเพื่อกรองข้อความ

[!NOTE] พารามิเตอร์ทั้งหมดเป็นทางเลือก หากไม่ระบุ จะส่งคืนหน้าข้อความแรกจากกล่องจดหมาย ใช้ page สำหรับการแบ่งหน้าแบบดั้งเดิม, last_id สำหรับการแบ่งหน้าแบบเคอร์เซอร์, หรือ search เพื่อกรองข้อความตามเนื้อหา

show-sandbox-email-message

แสดงข้อมูลรายละเอียดและเนื้อหาของข้อความอีเมลเฉพาะจากกล่องจดหมายทดสอบ Mailtrap ของคุณ รวมถึงเนื้อหา HTML และข้อความ

พารามิเตอร์:

  • message_id (จำเป็น): ID ของข้อความอีเมลแซนด์บ็อกซ์ที่จะดึงข้อมูล

[!NOTE] ใช้ get-sandbox-messages ก่อนเพื่อรับรายการข้อความและ ID ของข้อความเหล่านั้น จากนั้นใช้เครื่องมือนี้เพื่อดูเนื้อหาทั้งหมดของข้อความเฉพาะ

get-sandbox-project

รับโปรเจกต์แซนด์บ็อกซ์ตาม ID รวมถึงกล่องจดหมายและจำนวนอีเมล

พารามิเตอร์:

  • project_id (จำเป็น): ID ของโปรเจกต์ที่จะดึงข้อมูล

update-sandbox-project

เปลี่ยนชื่อโปรเจกต์แซนด์บ็อกซ์ที่มีอยู่

พารามิเตอร์:

  • project_id (จำเป็น): ID ของโปรเจกต์ที่จะอัปเดต
  • name (จำเป็น): ชื่อใหม่สำหรับโปรเจกต์ (2–100 ตัวอักษร)

list-sandboxes

แสดงรายการแซนด์บ็อกซ์ทั้งหมดที่โทเค็น API เข้าถึงได้ในทุกโปรเจกต์

พารามิเตอร์:

  • ไม่จำเป็นต้องมีพารามิเตอร์

mark-sandbox-as-read

ทำเครื่องหมายข้อความทั้งหมดในแซนด์บ็อกซ์ว่าอ่านแล้ว

พารามิเตอร์:

  • sandbox_id (จำเป็น): ID ของแซนด์บ็อกซ์ที่จะดำเนินการ

reset-sandbox-credentials

รีเซ็ตข้อมูลประจำตัว SMTP สำหรับแซนด์บ็อกซ์ ส่งคืนชื่อผู้ใช้/รหัสผ่านใหม่

พารามิเตอร์:

  • sandbox_id (จำเป็น): ID ของแซนด์บ็อกซ์ที่จะดำเนินการ

enable-sandbox-email-address

เปิดใช้งานที่อยู่รับอีเมลสำหรับแซนด์บ็อกซ์ (เปิดที่อยู่ Mailtrap ที่ส่งข้อความไปยังแซนด์บ็อกซ์ผ่าน SMTP)

พารามิเตอร์:

  • sandbox_id (จำเป็น): ID ของแซนด์บ็อกซ์ที่จะดำเนินการ

reset-sandbox-email-address

สร้างที่อยู่รับอีเมลใหม่สำหรับแซนด์บ็อกซ์

พารามิเตอร์:

  • sandbox_id (จำเป็น): ID ของแซนด์บ็อกซ์ที่จะดำเนินการ

forward-sandbox-message

ส่งต่อข้อความแซนด์บ็อกซ์ไปยังที่อยู่อีเมลภายนอก นับรวมในโควต้าการส่งต่อรายเดือนของคุณ

พารามิเตอร์:

  • sandbox_id (ไม่บังคับ): ID แซนด์บ็อกซ์ ถอยกลับไปใช้ MAILTRAP_SANDBOX_ID
  • message_id (จำเป็น): ID ของข้อความแซนด์บ็อกซ์ที่จะส่งต่อ
  • email (จำเป็น): ที่อยู่อีเมลที่จะส่งต่อข้อความไปยัง

update-sandbox-message

ทำเครื่องหมายข้อความแซนด์บ็อกซ์ว่าอ่านแล้วหรือยังไม่ได้อ่าน

พารามิเตอร์:

  • sandbox_id (ไม่บังคับ): ID แซนด์บ็อกซ์ ถอยกลับไปใช้ MAILTRAP_SANDBOX_ID
  • message_id (จำเป็น): ID ของข้อความแซนด์บ็อกซ์ที่จะอัปเดต
  • is_read (จำเป็น): true ทำเครื่องหมายว่าอ่านแล้ว, false ทำเครื่องหมายว่ายังไม่ได้อ่าน

delete-sandbox-message

ลบข้อความแซนด์บ็อกซ์เดี่ยว

พารามิเตอร์:

  • sandbox_id (ไม่บังคับ): ID แซนด์บ็อกซ์ ถอยกลับไปใช้ MAILTRAP_SANDBOX_ID
  • message_id (จำเป็น): ID ของข้อความแซนด์บ็อกซ์ที่จะลบ

get-sandbox-message-spam-score

รับรายงานสแปม SpamAssassin สำหรับข้อความแซนด์บ็อกซ์ (คะแนน, กฎ, รายงานฉบับเต็ม) ทางเลือกแบบสแตนด์อโลนแทน include_spam_report: true บน show-sandbox-email-message

พารามิเตอร์:

  • sandbox_id (ไม่บังคับ): ID แซนด์บ็อกซ์ ถอยกลับไปใช้ MAILTRAP_SANDBOX_ID
  • message_id (จำเป็น): ID ของข้อความแซนด์บ็อกซ์

get-sandbox-message-html-analysis

รับรายงานการวิเคราะห์ HTML สำหรับข้อความแซนด์บ็อกซ์ (คะแนนความเข้ากันได้ของไคลเอนต์, องค์ประกอบที่มีปัญหา) ทางเลือกแบบสแตนด์อโลนแทน include_html_analysis: true บน show-sandbox-email-message

พารามิเตอร์:

  • sandbox_id (ไม่บังคับ): ID แซนด์บ็อกซ์ ถอยกลับไปใช้ MAILTRAP_SANDBOX_ID
  • message_id (จำเป็น): ID ของข้อความแซนด์บ็อกซ์

get-sandbox-message-headers

รับส่วนหัวอีเมลที่แยกวิเคราะห์แล้วสำหรับข้อความแซนด์บ็อกซ์

พารามิเตอร์:

  • sandbox_id (ไม่บังคับ): ID แซนด์บ็อกซ์ ถอยกลับไปใช้ MAILTRAP_SANDBOX_ID
  • message_id (จำเป็น): ID ของข้อความแซนด์บ็อกซ์

get-sandbox-message-html

รับเนื้อหา HTML ที่เรนเดอร์แล้วของข้อความแซนด์บ็อกซ์

พารามิเตอร์:

  • sandbox_id (ไม่บังคับ): ID แซนด์บ็อกซ์ ถอยกลับไปใช้ MAILTRAP_SANDBOX_ID
  • message_id (จำเป็น): ID ของข้อความแซนด์บ็อกซ์

get-sandbox-message-text

รับเนื้อหาข้อความล้วนของข้อความแซนด์บ็อกซ์

พารามิเตอร์:

  • sandbox_id (ไม่บังคับ): ID แซนด์บ็อกซ์ ถอยกลับไปใช้ MAILTRAP_SANDBOX_ID
  • message_id (จำเป็น): ID ของข้อความแซนด์บ็อกซ์

get-sandbox-message-raw

รับข้อความดิบในรูปแบบ MIME (ส่วนหัว + เนื้อหา) สำหรับข้อความแซนด์บ็อกซ์

พารามิเตอร์:

  • sandbox_id (ไม่บังคับ): ID แซนด์บ็อกซ์ ถอยกลับไปใช้ MAILTRAP_SANDBOX_ID
  • message_id (จำเป็น): ID ของข้อความแซนด์บ็อกซ์

get-sandbox-message-eml

รับข้อความที่เรนเดอร์เป็นเพย์โหลดไฟล์ EML (เหมาะสำหรับแนบกับตั๋วหรือนำเข้าไปยังไคลเอนต์อีเมลอื่น)

พารามิเตอร์:

  • sandbox_id (ไม่บังคับ): ID แซนด์บ็อกซ์ ถอยกลับไปใช้ MAILTRAP_SANDBOX_ID
  • message_id (จำเป็น): ID ของข้อความแซนด์บ็อกซ์

get-sandbox-message-html-source

รับซอร์ส HTML ที่ยังไม่ได้เรนเดอร์ของข้อความแซนด์บ็อกซ์ (HTML ก่อนการแปลงใดๆ ทางฝั่ง Mailtrap เช่น การเขียนลิงก์ CID ใหม่)

พารามิเตอร์:

  • sandbox_id (ไม่บังคับ): ID แซนด์บ็อกซ์ ถอยกลับไปใช้ MAILTRAP_SANDBOX_ID
  • message_id (จำเป็น): ID ของข้อความแซนด์บ็อกซ์

list-sandbox-attachments

แสดงรายการไฟล์แนบทั้งหมดในข้อความแซนด์บ็อกซ์ (ชื่อไฟล์, ประเภทเนื้อหา, ขนาด, เส้นทางดาวน์โหลด)

พารามิเตอร์:

  • sandbox_id (ไม่บังคับ): ID แซนด์บ็อกซ์ ถอยกลับไปใช้ MAILTRAP_SANDBOX_ID
  • message_id (จำเป็น): ID ของข้อความแซนด์บ็อกซ์

get-sandbox-attachment

รับข้อมูลเมตาและ URL ดาวน์โหลดสำหรับไฟล์แนบเดี่ยว

พารามิเตอร์:

  • sandbox_id (ไม่บังคับ): ID แซนด์บ็อกซ์ ถอยกลับไปใช้ MAILTRAP_SANDBOX_ID
  • message_id (จำเป็น): ID ของข้อความแซนด์บ็อกซ์ที่มีไฟล์แนบ
  • attachment_id (จำเป็น): ID ของไฟล์แนบที่จะดึงข้อมูล

list-sending-domains

แสดงรายการโดเมนผู้ส่งและสถานะการยืนยัน DNS

พารามิเตอร์:

  • ไม่จำเป็นต้องมีพารามิเตอร์

get-sending-domain

รับโดเมนผู้ส่งตาม ID และสถานะการยืนยัน (รวมถึงระเบียน DNS) สามารถรวมคำแนะนำการตั้งค่า DNS ได้โดยตั้งค่า include_setup_instructions เป็น true

พารามิเตอร์:

  • sending_domain_id (จำเป็น): ID โดเมนผู้ส่ง
  • include_setup_instructions (ไม่บังคับ): หากเป็น true ให้ผนวกคำแนะนำการตั้งค่า DNS เข้ากับการตอบกลับ ค่าเริ่มต้น: false

create-sending-domain

สร้างโดเมนผู้ส่งใหม่ หลังจากสร้างแล้ว ให้เพิ่มระเบียน DNS เพื่อยืนยันโดเมน (ใช้ get-sending-domain พร้อม include_setup_instructions: true เพื่อดูระเบียน)

พารามิเตอร์:

  • domain_name (จำเป็น): ชื่อโดเมน (เช่น example.com)

delete-sending-domain

ลบโดเมนผู้ส่ง

พารามิเตอร์:

  • sending_domain_id (จำเป็น): ID โดเมนผู้ส่งที่จะลบ

send-sending-domain-setup-instructions

ส่งคำแนะนำการตั้งค่า DNS ทางอีเมลสำหรับโดเมนผู้ส่งไปยังที่อยู่ที่กำหนด มีประโยชน์สำหรับการส่งต่อระเบียน DNS ไปยังเพื่อนร่วมทีม DevOps

พารามิเตอร์:

  • sending_domain_id (จำเป็น): ID โดเมนผู้ส่ง
  • email (จำเป็น): ที่อยู่อีเมลที่จะส่งคำแนะนำการตั้งค่า DNS ไปยัง

list-suppressions

แสดงรายการหรือค้นหาการระงับ (hard bounce, การร้องเรียนสแปม, การยกเลิกการสมัคร, การนำเข้าด้วยตนเอง) ส่งคืนผลลัพธ์สูงสุด 1,000 รายการต่อการเรียก

พารามิเตอร์:

  • email (ไม่บังคับ): ตัวกรองอีเมล ส่งคืนเฉพาะการระงับที่ตรงกับที่อยู่นี้

delete-suppression

ลบการระงับตาม ID Mailtrap จะกลับมาส่งอีเมลไปยังที่อยู่นี้อีกครั้ง เว้นแต่จะถูกระงับอีกครั้ง

พารามิเตอร์:

  • suppression_id (จำเป็น): ID ของการระงับที่จะลบ

list-webhooks

แสดงรายการ webhook ทั้งหมดที่กำหนดค่าไว้สำหรับบัญชี ส่งคืนระเบียน webhook แบบเต็มในรูปแบบ JSON

พารามิเตอร์:

  • ไม่จำเป็นต้องมีพารามิเตอร์

get-webhook

รับ webhook เดียวตาม ID ส่งคืนระเบียน webhook แบบเต็มในรูปแบบ JSON หมายเหตุ: signing_secret จะ ไม่ ถูกส่งคืนที่นี่ — จะมีให้เฉพาะในการตอบกลับจาก create-webhook เท่านั้น

พารามิเตอร์:

  • webhook_id (จำเป็น): ID ของ webhook ที่จะดึงข้อมูล

create-webhook

สร้าง webhook การตอบกลับประกอบด้วย signing_secret สำหรับตรวจสอบลายเซ็น payload ของ webhook — ความลับนี้จะถูกส่งคืน เฉพาะเมื่อสร้าง เท่านั้น ดังนั้นให้จัดเก็บไว้ตอนนี้ หากทำหาย ให้สร้าง webhook ใหม่

พารามิเตอร์:

  • url (จำเป็น): URL ที่ Mailtrap จะ POST เหตุการณ์ webhook ไปยัง
  • webhook_type (จำเป็น): "email_sending" หรือ "audit_log"
  • active (ไม่บังคับ, boolean): ค่าเริ่มต้นคือ true
  • payload_format (ไม่บังคับ): "json" หรือ "jsonlines" ค่าเริ่มต้นคือ "json"
  • sending_stream (ไม่บังคับ, เฉพาะ email_sending): "transactional" หรือ "bulk"
  • event_types (ไม่บังคับ, เฉพาะ email_sending): อาร์เรย์ของ delivery, soft_bounce, bounce, suspension, unsubscribe, open, spam_complaint, click, reject
  • domain_id (ไม่บังคับ, เฉพาะ email_sending): ID โดเมนผู้ส่งเพื่อกำหนดขอบเขต webhook นี้

update-webhook

อัปเดตฟิลด์ที่เปลี่ยนแปลงได้ของ webhook webhook_type, sending_stream และ domain_id ไม่สามารถเปลี่ยนแปลงได้หลังจากการสร้าง — สร้าง webhook ใหม่หากคุณต้องการเปลี่ยนแปลงสิ่งเหล่านั้น

พารามิเตอร์:

  • webhook_id (จำเป็น): ID ของ webhook ที่จะอัปเดต
  • url (ไม่บังคับ): URL webhook ใหม่
  • active (ไม่บังคับ, boolean): เปิดหรือปิดใช้งาน webhook
  • payload_format (ไม่บังคับ): "json" หรือ "jsonlines"
  • event_types (ไม่บังคับ, เฉพาะ email_sending): อาร์เรย์ของ delivery, soft_bounce, bounce, suspension, unsubscribe, open, spam_complaint, click, reject

delete-webhook

ลบ webhook อย่างถาวรตาม ID ส่งคืนระเบียน webhook ที่ถูกลบ

พารามิเตอร์:

  • webhook_id (จำเป็น): ID ของ webhook ที่จะลบ

get-contact

รับผู้ติดต่อตาม ID หรืออีเมล ส่งคืนระเบียนผู้ติดต่อแบบเต็ม (การเป็นสมาชิกรายการ สถานะ ฟิลด์ที่กำหนดเอง)

พารามิเตอร์:

  • contact_identifier (จำเป็น): ID ผู้ติดต่อหรือที่อยู่อีเมล

create-contact

สร้างผู้ติดต่อใหม่

พารามิเตอร์:

  • email (จำเป็น): ที่อยู่อีเมล
  • fields (ไม่บังคับ): ค่าฟิลด์ที่กำหนดเองที่คีย์โดยแท็กผสาน (เช่น first_name) ค่าสตริง ตัวเลข หรือ boolean
  • list_ids (ไม่บังคับ): ID ของรายชื่อผู้ติดต่อที่จะสมัครผู้ติดต่อนี้
  • unsubscribed (ไม่บังคับ, boolean): สร้างผู้ติดต่อในสถานะ unsubscribed

update-contact

อัปเดตผู้ติดต่อที่มีอยู่ซึ่งระบุโดย ID หรืออีเมล list_ids แทนที่ชุดสมาชิกทั้งหมดของผู้ติดต่อ list_ids_included/list_ids_excluded เพิ่ม/ลบโดยไม่รบกวนส่วนที่เหลือ

พารามิเตอร์:

  • contact_identifier (จำเป็น): ID ผู้ติดต่อหรืออีเมล
  • email (ไม่บังคับ): ที่อยู่อีเมลใหม่
  • fields (ไม่บังคับ): ค่าฟิลด์ที่กำหนดเองที่คีย์โดยแท็กผสาน
  • list_ids (ไม่บังคับ): แทนที่ชุดสมาชิกด้วยรายการที่แน่นอนนี้
  • list_ids_included (ไม่บังคับ): ID รายการที่จะเพิ่ม (เพิ่มเติม)
  • list_ids_excluded (ไม่บังคับ): ID รายการที่จะลบ
  • unsubscribed (ไม่บังคับ, boolean): ตั้งค่าเป็น unsubscribed (จริง) หรือ subscribed (เท็จ)

delete-contact

ลบผู้ติดต่ออย่างถาวรตาม ID หรืออีเมล ส่งคืนระเบียนผู้ติดต่อที่ถูกลบเมื่อ API ตอบกลับด้วยข้อมูลดังกล่าว มิฉะนั้นจะส่งคืน payload การยืนยัน

พารามิเตอร์:

  • contact_identifier (จำเป็น): ID ผู้ติดต่อหรืออีเมล

create-contact-event

บันทึกเหตุการณ์ผู้ติดต่อกับผู้ติดต่อ (ตาม ID หรืออีเมล) ใช้เพื่อทริกเกอร์ระบบอัตโนมัติของรายชื่อผู้ติดต่อ

พารามิเตอร์:

  • contact_identifier (จำเป็น): ID ผู้ติดต่อหรืออีเมล
  • name (จำเป็น): ชื่อเหตุการณ์ (ตรงกับทริกเกอร์ระบบอัตโนมัติ)
  • params (จำเป็น): ออบเจ็กต์ของคู่คีย์/ค่าที่กำหนดเอง ค่าอาจเป็นสตริง ตัวเลข boolean หรือ null

list-contact-lists

แสดงรายการรายชื่อผู้ติดต่อทั้งหมดสำหรับบัญชี

พารามิเตอร์:

  • ไม่จำเป็นต้องมีพารามิเตอร์

get-contact-list

รับรายชื่อผู้ติดต่อตาม ID

พารามิเตอร์:

  • list_id (จำเป็น): ID ของรายชื่อผู้ติดต่อที่จะดึงข้อมูล

create-contact-list

สร้างรายชื่อผู้ติดต่อใหม่

พารามิเตอร์:

  • name (จำเป็น): ชื่อสำหรับรายการใหม่

update-contact-list

เปลี่ยนชื่อรายชื่อผู้ติดต่อที่มีอยู่

พารามิเตอร์:

  • list_id (จำเป็น): ID ของรายชื่อผู้ติดต่อ
  • name (จำเป็น): ชื่อใหม่สำหรับรายการ

delete-contact-list

ลบรายชื่อผู้ติดต่ออย่างถาวรตาม ID

พารามิเตอร์:

  • list_id (จำเป็น): ID ของรายชื่อผู้ติดต่อที่จะลบ

list-contact-fields

แสดงรายการคำจำกัดความฟิลด์ผู้ติดต่อทั้งหมดสำหรับบัญชี

พารามิเตอร์:

  • ไม่จำเป็นต้องมีพารามิเตอร์

get-contact-field

รับคำจำกัดความฟิลด์ผู้ติดต่อตาม ID

พารามิเตอร์:

  • field_id (จำเป็น): ID ของฟิลด์ผู้ติดต่อ

create-contact-field

สร้างคำจำกัดความฟิลด์ผู้ติดต่อใหม่ merge_tag ต้องไม่ซ้ำกันภายในบัญชีและใช้เป็นชื่อตัวแทนในตัวแปรเทมเพลต

พารามิเตอร์:

  • name (จำเป็น): ชื่อที่แสดง (เช่น "ชื่อจริง")
  • merge_tag (จำเป็น): ชื่อตัวแทนที่ไม่ซ้ำกัน (เช่น first_name)
  • data_type (จำเป็น): หนึ่งใน text, number, boolean, date

update-contact-field

อัปเดตคำจำกัดความฟิลด์ผู้ติดต่อ สามารถเปลี่ยนแปลงชุดค่าผสมใดๆ ของ name, merge_tag และ data_type ได้

พารามิเตอร์:

  • field_id (จำเป็น): ID ของฟิลด์ผู้ติดต่อ
  • name (ไม่บังคับ): ชื่อที่แสดงใหม่
  • merge_tag (ไม่บังคับ): แท็กผสานใหม่ (ต้องไม่ซ้ำกัน)
  • data_type (ไม่บังคับ): หนึ่งใน text, number, boolean, date

delete-contact-field

ลบคำจำกัดความฟิลด์ผู้ติดต่ออย่างถาวรตาม ID

พารามิเตอร์:

  • field_id (จำเป็น): ID ของฟิลด์ผู้ติดต่อที่จะลบ

create-contact-import

นำเข้าผู้ติดต่อจำนวนมาก ส่งคืนระเบียนงานนำเข้า ตรวจสอบสถานะด้วย get-contact-import

พารามิเตอร์:

  • contacts (จำเป็น): อาร์เรย์ของรายการผู้ติดต่อ แต่ละรายการต้องการ:
    • email (จำเป็น): ที่อยู่อีเมลผู้ติดต่อ
    • fields (ไม่บังคับ): ค่าฟิลด์ที่กำหนดเองที่คีย์โดยแท็กผสาน (ค่าสตริงหรือตัวเลข)
    • list_ids_included (ไม่บังคับ): ID รายการที่จะเพิ่มผู้ติดต่อเข้าไป
    • list_ids_excluded (ไม่บังคับ): ID รายการที่จะลบผู้ติดต่อออก

get-contact-import

รับสถานะของงานนำเข้าผู้ติดต่อ (สร้าง/เริ่ม/เสร็จสิ้น/ล้มเหลว) พร้อมจำนวนที่สร้าง/อัปเดต/เกินขีดจำกัด

พารามิเตอร์:

  • import_id (จำเป็น): ID ของงานนำเข้าผู้ติดต่อ

create-contact-export

ส่งออกผู้ติดต่อที่ตรงกับชุดตัวกรองที่รวมด้วย AND ส่งคืนระเบียนงานส่งออก ตรวจสอบสถานะด้วย get-contact-export เพื่อรับ URL ดาวน์โหลดเมื่อ status เป็น finished

พารามิเตอร์:

  • filters (จำเป็น): อาร์เรย์ของออบเจ็กต์ตัวกรอง แต่ละรายการมี:
    • name (จำเป็น): ฟิลด์ที่จะกรอง (list_id, subscription_status, email ฯลฯ)
    • operator (จำเป็น): หนึ่งใน equal, not_equal, contains, not_contains, is_empty, is_not_empty
    • value (จำเป็น): ค่าเปรียบเทียบ (สตริง ตัวเลข boolean หรืออาร์เรย์)

get-contact-export

รับสถานะของงานส่งออกผู้ติดต่อ เมื่อ status เป็น finished ฟิลด์ url จะมีลิงก์ดาวน์โหลด CSV

พารามิเตอร์:

  • export_id (จำเป็น): ID ของงานส่งออกผู้ติดต่อ

list-accounts

แสดงรายการบัญชี Mailtrap ที่โทเค็น API ปัจจุบันสามารถเข้าถึงได้ พร้อมระดับการเข้าถึงของแต่ละบัญชี

พารามิเตอร์:

  • ไม่จำเป็นต้องมีพารามิเตอร์

get-billing-usage

รับข้อมูลการใช้งานรอบบิลปัจจุบันสำหรับบัญชี: แผนการส่งและทดสอบ ขีดจำกัด และจำนวนปัจจุบัน

พารามิเตอร์:

  • ไม่จำเป็นต้องมีพารามิเตอร์

list-account-accesses

แสดงรายการการเข้าถึงบัญชี (ผู้ใช้ คำเชิญ โทเค็น API) สำหรับบัญชี ตัวกรองเสริมจะจำกัดผลลัพธ์ให้แคบลงเฉพาะทรัพยากรที่ระบุ ต้องมีสิทธิ์ผู้ดูแลระบบ/เจ้าของบัญชี

พารามิเตอร์:

  • domain_uuids (ไม่บังคับ): กรองตาม UUID โดเมนผู้ส่ง (อาร์เรย์ของสตริง)
  • inbox_ids (ไม่บังคับ): กรองตาม ID กล่องจดหมายแซนด์บ็อกซ์ (อาร์เรย์ของสตริง)
  • project_ids (ไม่บังคับ): กรองตาม ID โปรเจกต์แซนด์บ็อกซ์ (อาร์เรย์ของสตริง)

remove-account-access

ลบการเข้าถึงบัญชีตาม ID สำหรับตัวระบุ User การดำเนินการนี้จะเพิกถอนสิทธิ์ของพวกเขา สำหรับตัวระบุ Invite หรือ ApiToken จะลบตัวระบุทั้งหมด ต้องมีสิทธิ์ผู้ดูแลระบบ/เจ้าของ

พารามิเตอร์:

  • account_access_id (จำเป็น): ID ของระเบียนการเข้าถึงที่จะลบ

get-permission-resources

รับทรัพยากรทั้งหมด (กล่องจดหมาย โปรเจกต์ โดเมน การเรียกเก็บเงิน บัญชี) ที่โทเค็น API มีสิทธิ์เข้าถึงระดับผู้ดูแลระบบ ซ้อนตามลำดับชั้น

พารามิเตอร์:

  • ไม่จำเป็นต้องมีพารามิเตอร์

bulk-update-permissions

สร้าง อัปเดต หรือทำลายสิทธิ์จำนวนมากสำหรับการเข้าถึงบัญชีเดียว คู่ (resource_type, resource_id) ที่มีอยู่จะถูกอัปเดต คู่ใหม่จะถูกสร้างขึ้น ตั้งค่า destroy: true ในรายการเพื่อลบออก

พารามิเตอร์:

  • account_access_id (จำเป็น): ID การเข้าถึงบัญชีเป้าหมาย
  • permissions (จำเป็น): อาร์เรย์ของรายการสิทธิ์ แต่ละรายการมี:
    • resource_id (จำเป็น): ID ทรัพยากร (ตัวเลขหรือสตริง)
    • resource_type (จำเป็น): หนึ่งใน account, project, inbox, domain, billing
    • access_level (ไม่บังคับ): admin/100 หรือ viewer/10
    • destroy (ไม่บังคับ, boolean): เมื่อเป็นจริง จะลบสิทธิ์นี้แทนการสร้าง/อัปเดต

list-api-tokens

แสดงรายการโทเค็น API ทั้งหมดสำหรับบัญชี

พารามิเตอร์:

  • ไม่จำเป็นต้องมีพารามิเตอร์

create-api-token

สร้างโทเค็น API ใหม่ การตอบกลับประกอบด้วยค่าความลับ token — นี่เป็น ครั้งเดียว ที่โทเค็นแบบเต็มจะถูกส่งคืน ดังนั้นให้จัดเก็บทันที หากทำหาย ให้สร้างโทเค็นใหม่

พารามิเตอร์:

  • name (จำเป็น): ชื่อที่แสดงสำหรับโทเค็น
  • resources (ไม่บังคับ): อาร์เรย์ของสิทธิ์ทรัพยากรเพื่อกำหนดขอบเขตโทเค็น แต่ละรายการมี:
    • resource_type (จำเป็น): หนึ่งใน account, project, inbox, domain, billing
    • resource_id (จำเป็น): ID ของทรัพยากร
    • access_level (จำเป็น): 100 (ผู้ดูแลระบบ) หรือ 10 (ผู้ดู)

get-api-token

รับโทเค็น API ตาม ID ส่งคืนเฉพาะข้อมูลเมตา — ค่าโทเค็นความลับจะ ไม่ ถูกส่งคืนที่นี่ (เฉพาะจาก create-api-token / reset-api-token)

พารามิเตอร์:

  • api_token_id (จำเป็น): ID ของโทเค็น API

reset-api-token

รีเซ็ต (หมุนเวียน) โทเค็น API ตาม ID การตอบกลับประกอบด้วยค่าความลับ token ใหม่ — ส่งคืนเฉพาะในการเรียกนี้ ดังนั้นให้จัดเก็บทันที โทเค็นก่อนหน้าจะถูกยกเลิก

พารามิเตอร์:

  • api_token_id (จำเป็น): ID ของโทเค็น API ที่จะรีเซ็ต

delete-api-token

ลบโทเค็น API อย่างถาวรตาม ID โทเค็นจะไม่สามารถตรวจสอบสิทธิ์ได้อีกต่อไปหลังจากการลบ

พารามิเตอร์:

  • api_token_id (จำเป็น): ID ของโทเค็น API ที่จะลบ

list-sub-accounts

แสดงรายการบัญชีย่อยในองค์กร ต้องใช้ตัวแปรสภาพแวดล้อม MAILTRAP_ORGANIZATION_ID และสิทธิ์การจัดการบัญชีย่อย

พารามิเตอร์:

  • ไม่จำเป็นต้องมีพารามิเตอร์

create-sub-account

สร้างบัญชีย่อยใหม่ภายใต้องค์กร ต้องใช้ตัวแปรสภาพแวดล้อม MAILTRAP_ORGANIZATION_ID และสิทธิ์การจัดการบัญชีย่อย

พารามิเตอร์:

  • name (จำเป็น): ชื่อที่แสดงสำหรับบัญชีย่อยใหม่

การพัฒนา

  1. โคลนที่เก็บ:
git clone https://github.com/mailtrap/mailtrap-mcp.git
cd mailtrap-mcp
  1. ติดตั้งส่วนพึ่งพา:
npm install

การกำหนดค่ากับ Claude Desktop หรือ Cursor

[!TIP] ดูตำแหน่งของไฟล์กำหนดค่าในส่วน การตั้งค่า

เพิ่มการกำหนดค่าต่อไปนี้:

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

หากคุณใช้ asdf สำหรับจัดการ Node.js คุณควรใช้พาธสัมบูรณ์ไปยังไฟล์ปฏิบัติการ:

(ตัวอย่างสำหรับ 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": "[email protected]",
        "MAILTRAP_ACCOUNT_ID": "your_account_id",
        "MAILTRAP_TEST_INBOX_ID": "your_test_inbox_id"
      }
    }
  }
}

VS Code

[!TIP] ดูตำแหน่งของไฟล์กำหนดค่าในส่วน การตั้งค่า

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

การทดสอบ

การรันทูลกับ Mailtrap จริง

มีสองวิธีในการทดสอบทูลแบบ end-to-end กับบัญชี Mailtrap จริง: MCP Inspector UI บนเบราว์เซอร์สำหรับการสำรวจแบบโต้ตอบ หรือโหมด CLI สำหรับการเรียกครั้งเดียวจากเชลล์

ทั้งสองวิธีต้องสร้างบันเดิลก่อน:

npm run build

และต้องส่งออก MAILTRAP_API_TOKEN + MAILTRAP_ACCOUNT_ID ในเชลล์ของคุณ (สคริปต์ mcp:cli จะส่งต่อทั้งสองไปยังเซิร์ฟเวอร์ที่เริ่มทำงาน)

UI บนเบราว์เซอร์

npm run dev

Inspector จะพิมพ์ URL เช่น http://localhost:6274 เปิดขึ้นมา สลับไปที่แท็บ Tools เลือกทูล (เช่น get-template) กรอกพารามิเตอร์เป็น JSON แล้วกด Run การตอบกลับจาก Mailtrap จะปรากฏในแผงด้านล่าง

CLI

สำหรับการเรียกครั้งเดียวโดยไม่ใช้ UI ให้ใช้ npm run mcp:cli ส่งแฟล็ก CLI ของ Inspector ต่อจาก -- เพื่อให้ npm ส่งต่อตามเดิม:

# 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 protected]

การรันเซิร์ฟเวอร์ MCPB

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

# Or use the provided binary
mailtrap-mcpb-server

[!TIP] สำหรับการพัฒนาด้วย MCP Inspector:

npm run dev:mcpb

การจัดการข้อผิดพลาด

เซิร์ฟเวอร์นี้ใช้การจัดการข้อผิดพลาดแบบมีโครงสร้างที่สอดคล้องกับแบบแผน MCP:

  • VALIDATION_ERROR: ความล้มเหลวในการตรวจสอบอินพุต
  • CONFIGURATION_ERROR: การกำหนดค่าขาดหายหรือไม่ถูกต้อง
  • EXECUTION_ERROR: ข้อผิดพลาดขณะรันไทม์
  • TIMEOUT: การดำเนินการหมดเวลา (ค่าเริ่มต้น 30 วินาที)

ข้อผิดพลาดมีข้อความที่นำไปปฏิบัติได้และถูกบันทึกในรูปแบบที่มีโครงสร้าง

ความปลอดภัย

  • อินพุตตรวจสอบผ่าน Zod schemas
  • ตัวแปรสภาพแวดล้อมจัดการอย่างปลอดภัย
  • การป้องกันการหมดเวลาของการดำเนินการ (30 วินาที)
  • รายละเอียดที่ละเอียดอ่อนถูกกรองในผลลัพธ์ข้อผิดพลาด

การบันทึก

บันทึก JSON แบบมีโครงสร้างพร้อมระดับ: INFO, WARN, ERROR, DEBUG

เปิดใช้งานการบันทึกดีบักโดยตั้งค่า DEBUG=true

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

สำคัญ: เซิร์ฟเวอร์เขียนบันทึกไปยัง stderr เพื่อให้ stdout สงวนไว้สำหรับเฟรม JSON-RPC เท่านั้น ซึ่งป้องกันไม่ให้โฮสต์พบข้อผิดพลาดการแยกวิเคราะห์ JSON เนื่องจากบันทึกที่ปะปน

ตัวอย่างการวิเคราะห์บันทึกโดยใช้ 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")'

การแก้ไขปัญหา

ปัญหาที่พบบ่อย:

  1. โทเค็น API ขาดหาย: ตรวจสอบว่าได้ตั้งค่า MAILTRAP_API_TOKEN แล้ว
  2. แซนด์บ็อกซ์ไม่ทำงาน: ระบุ test_inbox_id ในการเรียกทูลหรือตั้งค่าตัวแปรสภาพแวดล้อม MAILTRAP_TEST_INBOX_ID
  3. ข้อผิดพลาดการหมดเวลา: ตรวจสอบการเชื่อมต่อเครือข่ายและสถานะ Mailtrap API
  4. ข้อผิดพลาดการตรวจสอบ: ตรวจสอบว่าได้ระบุฟิลด์ที่จำเป็นทั้งหมดแล้ว

การมีส่วนร่วม

ยินดีรับรายงานบั๊กและคำขอดึงข้อมูลบน GitHub โปรเจกต์นี้มีจุดมุ่งหมายเป็นพื้นที่ปลอดภัยและเป็นมิตรสำหรับการทำงานร่วมกัน และผู้มีส่วนร่วมถูกคาดหวังให้ปฏิบัติตาม จรรยาบรรณ

ใบอนุญาต

แพ็คเกจนี้พร้อมใช้งานเป็นโอเพนซอร์สภายใต้เงื่อนไขของ MIT License

จรรยาบรรณ

ทุกคนที่มีปฏิสัมพันธ์ในโค้ดเบส ตัวติดตามปัญหา ห้องแชท และรายชื่ออีเมลของโปรเจกต์ Mailtrap ถูกคาดหวังให้ปฏิบัติตาม จรรยาบรรณ