Mailtrap

ทางการ

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

คุณทำอะไรได้บ้างด้วย Mailtrap MCP?

  • ส่งอีเมลธุรกรรม — ขอให้ส่งอีเมลผ่าน send-email พร้อมเนื้อหาแบบอินไลน์หรือเทมเพลต รวมถึง CC/BCC และตัวแปรที่กำหนดเอง
  • จัดการเทมเพลตอีเมล — ใช้ list-templates, create-template, update-template หรือ delete-template เพื่อดูแลรักษาการออกแบบอีเมลที่ใช้ซ้ำได้
  • ตรวจสอบบันทึกการส่ง — ค้นหา list-email-logs พร้อมตัวกรอง เช่น ผู้รับ สถานะ หรือวันที่ จากนั้นเจาะลึกรายละเอียดด้วย get-email-log-message
  • ทดสอบอีเมลในแซนด์บ็อกซ์ — ส่งไปยังกล่องจดหมายทดสอบผ่าน send-sandbox-email จากนั้นตรวจสอบข้อความด้วย get-sandbox-messages และ show-sandbox-email-message
  • วิเคราะห์ประสิทธิภาพการส่ง — รับอัตราการส่งสำเร็จ การตีกลับ และการมีส่วนร่วมผ่าน get-sending-stats โดยสามารถแยกตามโดเมนหรือหมวดหมู่ได้
  • กำหนดค่าโครงสร้างพื้นฐานการส่ง — จัดการ list-sending-domains สร้างหรือลบโดเมน และดึงคำแนะนำการตั้งค่า DNS

เอกสาร

TypeScript test NPM

MCP Mailtrap Server

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

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

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

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

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

  • MAILTRAP_API_TOKEN - จำเป็นสำหรับการทำงานทั้งหมด
  • MAILTRAP_ACCOUNT_ID - จำเป็นสำหรับเทมเพลต สถิติ บันทึกอีเมล การแสดงรายการ/รายละเอียดแซนด์บ็อกซ์ และโดเมนสำหรับส่งอีเมล เป็นทางเลือกเฉพาะสำหรับเครื่องมือส่งอีเมลเท่านั้น (send-email, send-sandbox-email และเครื่องมือ batch-send-*)

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

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

การติดตั้งอย่างรวดเร็ว

Install in Cursor

Install with Node in VS Code

Smithery CLI

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

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": "your_sender@example.com",
        "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": "your_sender@example.com",
        "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": "your_sender@example.com",
          "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/

การใช้งาน

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

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

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

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

  • "แสดงบันทึกอีเมลที่ส่งล่าสุดของฉัน"
  • "แสดงบันทึกอีเมลที่ส่งถึง user@example.com"
  • "ดึงข้อความบันทึกอีเมลสำหรับ 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 เข้ากับแต่ละคำขอแล้ว

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

  • base (ทางเลือก): ออบเจกต์ที่มีฟิลด์ที่ใช้ร่วมกันทั่วทั้งชุด
    • from (ทางเลือก): ผู้ส่งเป็น { email, name? } (สตริงอีเมลเปล่า ๆ ก็ยอมรับได้ในขณะรันไทม์) ตกไปใช้ DEFAULT_FROM_EMAIL
    • reply_to (ทางเลือก): ที่อยู่ตอบกลับ (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

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

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 ของข้อความบันทึกอีเมล (จาก response การส่งหรือรายการบันทึกอีเมล) ใช้ list-email-logs เพื่อค้นหา message ID
  • include_content (ไม่บังคับ): เมื่อตั้งค่า true จะดึง EML ดิบ (หากมี raw_message_url) และเพิ่มส่วน body ที่ถูก parse เป็น HTML และข้อความธรรมดา คล้ายกับ show-sandbox-email-message

get-sending-stats

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

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

  • 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 (ไม่บังคับ): จำกัดผลลัพธ์เฉพาะ domain ID ของผู้ส่งเหล่านี้ (array ของจำนวนเต็ม)
  • sending_streams (ไม่บังคับ): จำกัดเฉพาะ transactional และ/หรือ bulk (array ของสตริง)
  • categories (ไม่บังคับ): จำกัดเฉพาะหมวดหมู่อีเมลเหล่านี้ (array ของสตริง)
  • email_service_providers (ไม่บังคับ): จำกัดเฉพาะผู้ให้บริการเหล่านี้ เช่น Google, Yahoo, Outlook (array ของสตริง)

create-template

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

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

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

list-templates

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

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

  • ไม่ต้องระบุพารามิเตอร์

get-template

รับเทมเพลตอีเมลเดี่ยวตาม ID รวมถึงหัวข้อ, หมวดหมู่, และ body แบบ 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-emailinline content หรือ template-based (template_uuid)

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

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

batch-send-sandbox-email

ส่งชุดอีเมลไปยังกล่องจดหมายทดสอบ Mailtrap ของคุณในการเรียก API ครั้งเดียว โดยไม่ส่งถึงผู้รับจริง รูปแบบ base + requests[], การตรวจสอบความถูกต้อง, และกฎ inline-vs-template เหมือนกับ batch-send-transactional-email — ความแตกต่างคือเครื่องมือนี้กำหนดเส้นทางการเรียกผ่าน sandbox endpoint สำหรับกล่องจดหมายทดสอบเดียว

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

  • sandbox_id (ไม่บังคับ): ID sandbox (กล่องจดหมายทดสอบ) ของ Mailtrap จำเป็นเว้นแต่ตั้งค่า MAILTRAP_SANDBOX_ID; ส่งต่อครั้งเพื่อกำหนดเป้าหมาย sandbox เฉพาะ
  • base (ไม่บังคับ), requests (จำเป็น): ดู batch-send-transactional-email ด้านบน

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

get-sandbox-messages

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

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

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

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

show-sandbox-email-message

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

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

  • message_id (จำเป็น): ID ของข้อความอีเมล sandbox ที่ต้องการดึงข้อมูล

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

get-sandbox-project

รับโปรเจกต์ sandbox ตาม ID รวมถึง inboxes และจำนวนอีเมล

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

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

update-sandbox-project

เปลี่ยนชื่อโปรเจกต์ sandbox ที่มีอยู่

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

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

list-sandboxes

แสดงรายการ sandbox ทั้งหมดที่เข้าถึงได้ด้วย API token ในทุกโปรเจกต์

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

  • ไม่ต้องระบุพารามิเตอร์

mark-sandbox-as-read

ทำเครื่องหมายข้อความทั้งหมดใน sandbox ว่าอ่านแล้ว

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

  • sandbox_id (จำเป็น): ID ของ sandbox ที่ต้องการดำเนินการ

reset-sandbox-credentials

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

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

  • sandbox_id (จำเป็น): ID ของ sandbox ที่ต้องการดำเนินการ

enable-sandbox-email-address

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

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

  • sandbox_id (จำเป็น): ID ของ sandbox ที่ต้องการดำเนินการ

reset-sandbox-email-address

สร้างที่อยู่รับอีเมลใหม่สำหรับ sandbox

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

  • sandbox_id (จำเป็น): ID ของ sandbox ที่ต้องการดำเนินการ

forward-sandbox-message

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

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

  • sandbox_id (ไม่บังคับ): Sandbox ID สำรองเป็น MAILTRAP_SANDBOX_ID
  • message_id (จำเป็น): ID ของข้อความ sandbox ที่ต้องการส่งต่อ
  • email (จำเป็น): ที่อยู่อีเมลที่จะส่งต่อข้อความไป

update-sandbox-message

ทำเครื่องหมายข้อความ sandbox ว่าอ่านแล้วหรือยังไม่ได้อ่าน

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

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

delete-sandbox-message

ลบข้อความ sandbox เดี่ยว

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

  • sandbox_id (ไม่บังคับ): Sandbox ID สำรองเป็น MAILTRAP_SANDBOX_ID
  • message_id (จำเป็น): ID ของข้อความ sandbox ที่ต้องการลบ

get-sandbox-message-spam-score

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

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

  • sandbox_id (ไม่บังคับ): Sandbox ID สำรองเป็น MAILTRAP_SANDBOX_ID
  • message_id (จำเป็น): ID ของข้อความ sandbox

get-sandbox-message-html-analysis

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

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

  • sandbox_id (ไม่บังคับ): Sandbox ID สำรองเป็น MAILTRAP_SANDBOX_ID
  • message_id (จำเป็น): ID ของข้อความ sandbox

get-sandbox-message-headers

รับ header เมลที่ถูก parse สำหรับข้อความ sandbox

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

  • sandbox_id (ไม่บังคับ): Sandbox ID สำรองเป็น MAILTRAP_SANDBOX_ID
  • message_id (จำเป็น): ID ของข้อความ sandbox

get-sandbox-message-html

รับ body HTML ที่ถูกเรนเดอร์ของข้อความ sandbox

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

  • sandbox_id (ไม่บังคับ): Sandbox ID สำรองเป็น MAILTRAP_SANDBOX_ID
  • message_id (จำเป็น): ID ของข้อความ sandbox

get-sandbox-message-text

รับ body ข้อความธรรมดาของข้อความ sandbox

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

  • sandbox_id (ไม่บังคับ): Sandbox ID สำรองเป็น MAILTRAP_SANDBOX_ID
  • message_id (จำเป็น): ID ของข้อความ sandbox

get-sandbox-message-raw

รับข้อความดิบในรูปแบบ MIME (header + body) สำหรับข้อความ sandbox

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

  • sandbox_id (ไม่บังคับ): Sandbox ID สำรองเป็น MAILTRAP_SANDBOX_ID
  • message_id (จำเป็น): ID ของข้อความ sandbox

get-sandbox-message-eml

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

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

  • sandbox_id (ไม่บังคับ): Sandbox ID สำรองเป็น MAILTRAP_SANDBOX_ID
  • message_id (จำเป็น): ID ของข้อความ sandbox

get-sandbox-message-html-source

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

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

  • sandbox_id (ไม่บังคับ): Sandbox ID สำรองเป็น MAILTRAP_SANDBOX_ID
  • message_id (จำเป็น): ID ของข้อความ sandbox

list-sandbox-attachments

แสดงรายการไฟล์แนบทั้งหมดบนข้อความ sandbox (ชื่อไฟล์, ชนิดเนื้อหา, ขนาด, เส้นทางดาวน์โหลด)

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

  • sandbox_id (ไม่บังคับ): Sandbox ID สำรองเป็น MAILTRAP_SANDBOX_ID
  • message_id (จำเป็น): ID ของข้อความ sandbox

get-sandbox-attachment

รับ metadata และ URL ดาวน์โหลดสำหรับไฟล์แนบเดี่ยว

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

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

list-sending-domains

แสดงรายการ sending domain และสถานะการตรวจสอบ DNS ของแต่ละโดเมน

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

  • ไม่ต้องระบุพารามิเตอร์

get-sending-domain

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

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

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

create-sending-domain

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

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

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

delete-sending-domain

ลบ sending domain

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

  • sending_domain_id (จำเป็น): ID ของ sending domain ที่ต้องการลบ

send-sending-domain-setup-instructions

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

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

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

list-suppressions

แสดงรายการหรือค้นหา suppressions (อีเมลตีกลับถาวร ข้อร้องเรียนสแปม การยกเลิกการสมัคร การนำเข้าด้วยตนเอง) คืนค่าสูงสุด 1,000 รายการต่อการเรียกใช้

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

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

delete-suppression

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

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

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

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 จะส่งเหตุการณ์ webhook ไปให้
  • webhook_type (จำเป็น): "email_sending", "audit_log", หรือ "inbound_receiving"
  • active (ไม่บังคับ, ค่าบูลีน): ค่าเริ่มต้นคือ 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 ของ sending domain เพื่อจำกัดขอบเขตของ webhook นี้
  • inbound_inbox_id (ไม่บังคับ, เฉพาะ inbound_receiving): ID ของกล่องขาเข้า (inbound inbox) ที่ webhook เชื่อมโยงอยู่; เว้นว่างเพื่อใช้กับทุกกล่องขาเข้าในบัญชี

update-webhook

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

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

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

delete-webhook

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

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

  • webhook_id (จำเป็น): ID ของ webhook ที่ต้องการลบ

get-contact

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

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

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

create-contact

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

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

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

update-contact

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

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

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

delete-contact

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

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

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

create-contact-event

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

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

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

list-contact-lists

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

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

  • search (ไม่บังคับ): กรองรายชื่อผู้ติดต่อตามชื่อ (การจับคู่แบบไม่คำนึงตัวพิมพ์ใหญ่เล็ก) เช่น news

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 ต้องไม่ซ้ำกันภายในบัญชี และถูกใช้เป็นชื่อตัวแทน (placeholder) ในตัวแปรเทมเพลต

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

  • name (จำเป็น): ชื่อที่แสดง (เช่น "First 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 (ไม่บังคับ): merge tag ใหม่ (ต้องคงความไม่ซ้ำกัน)
  • data_type (ไม่บังคับ): หนึ่งใน text, number, boolean, date

delete-contact-field

ลบนิยามฟิลด์ผู้ติดต่อตาม ID อย่างถาวร

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

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

create-contact-import

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

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

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

get-contact-import

ดึงข้อมูลสถานะของงานนำเข้าผู้ติดต่อ (created/started/finished/failed) พร้อมจำนวนที่สร้าง/อัปเดต/เกินขีดจำกัด

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

  • 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 (จำเป็น): ค่าสำหรับเปรียบเทียบ (สตริง ตัวเลข บูลีน หรืออาร์เรย์)

get-contact-export

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

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

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

list-accounts

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

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

  • ไม่ต้องระบุพารามิเตอร์

get-billing-usage

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

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

  • ไม่ต้องระบุพารามิเตอร์

list-account-accesses

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

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

  • domain_uuids (ไม่บังคับ): กรองตาม UUID ของ sending domain (อาร์เรย์ของสตริง)
  • inbox_ids (ไม่บังคับ): กรองตาม ID ของกล่องขาเข้า sandbox (อาร์เรย์ของสตริง)
  • project_ids (ไม่บังคับ): กรองตาม ID ของโปรเจกต์ sandbox (อาร์เรย์ของสตริง)

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

list-api-tokens

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

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

  • ไม่ต้องใช้พารามิเตอร์

create-api-token

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

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

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

get-api-token

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

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

  • api_token_id (จำเป็น): รหัสของโทเค็น API

reset-api-token

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

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

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

delete-api-token

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

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

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

list-sub-accounts

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

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

  • ไม่ต้องใช้พารามิเตอร์

create-sub-account

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

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

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

list-inbound-folders

แสดงรายการโฟลเดอร์ขาเข้าทั้งหมดในบัญชี คืนค่าสรุปที่จัดรูปแบบแล้ว

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

  • ไม่ต้องใช้พารามิเตอร์

get-inbound-folder

ดึงโฟลเดอร์ขาเข้าเดียวตาม ID คืนค่าระเบียนโฟลเดอร์เต็มรูปแบบเป็น JSON

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

  • folder_id (จำเป็น): รหัสของโฟลเดอร์ขาเข้า

create-inbound-folder

สร้างโฟลเดอร์ขาเข้าใหม่

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

  • name (จำเป็น): ชื่อโฟลเดอร์

update-inbound-folder

เปลี่ยนชื่อโฟลเดอร์ขาเข้า

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

  • folder_id (จำเป็น): รหัสของโฟลเดอร์ขาเข้า
  • name (จำเป็น): ชื่อโฟลเดอร์ใหม่

delete-inbound-folder

ลบโฟลเดอร์ขาเข้าอย่างถาวรพร้อมกับกล่องจดหมายทั้งหมดภายใน

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

  • folder_id (จำเป็น): รหัสของโฟลเดอร์ขาเข้า

list-inbound-inboxes

แสดงรายการกล่องจดหมายทั้งหมดในโฟลเดอร์ขาเข้า คืนค่าสรุปที่จัดรูปแบบแล้ว

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

  • folder_id (จำเป็น): รหัสของโฟลเดอร์ขาเข้า

get-inbound-inbox

ดึงกล่องจดหมายขาเข้าเดียวตาม ID คืนค่าระเบียนกล่องจดหมายเต็มรูปแบบเป็น JSON

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

  • folder_id (จำเป็น): รหัสของโฟลเดอร์ขาเข้า
  • inbox_id (จำเป็น): รหัสของกล่องจดหมาย

create-inbound-inbox

สร้างกล่องจดหมายขาเข้าใหม่ในโฟลเดอร์

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

  • folder_id (จำเป็น): รหัสของโฟลเดอร์ขาเข้า
  • name (จำเป็น): ชื่อกล่องจดหมาย
  • domain_id (ไม่บังคับ): แนบกับโดเมนส่งอีเมลแบบกำหนดเอง (กล่องจดหมาย catch-all) ละเว้นสำหรับกล่องจดหมายที่โฮสต์โดย Mailtrap

update-inbound-inbox

เปลี่ยนชื่อกล่องจดหมายขาเข้า

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

  • folder_id (จำเป็น): รหัสของโฟลเดอร์ขาเข้า
  • inbox_id (จำเป็น): รหัสของกล่องจดหมาย
  • name (จำเป็น): ชื่อกล่องจดหมายใหม่

delete-inbound-inbox

ลบกล่องจดหมายขาเข้าอย่างถาวร

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

  • folder_id (จำเป็น): รหัสของโฟลเดอร์ขาเข้า
  • inbox_id (จำเป็น): รหัสของกล่องจดหมาย

list-inbound-messages

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

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

  • inbox_id (จำเป็น): รหัสของกล่องจดหมาย
  • last_id (ไม่บังคับ): เคอร์เซอร์แบ่งหน้าจาก last_id ของการตอบกลับก่อนหน้า

get-inbound-message

ดึงข้อความขาเข้าเดียวพร้อมเนื้อหาเต็มและ URL สำหรับดาวน์โหลดไฟล์แนบ คืนค่าระเบียนข้อความเต็มรูปแบบเป็น JSON

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

  • inbox_id (จำเป็น): รหัสของกล่องจดหมาย
  • message_id (จำเป็น): รหัสของข้อความ

delete-inbound-message

ลบข้อความขาเข้าอย่างถาวร

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

  • inbox_id (จำเป็น): รหัสของกล่องจดหมาย
  • message_id (จำเป็น): รหัสของข้อความ

reply-to-inbound-message

ตอบกลับข้อความขาเข้า (ส่งไปยังผู้ส่งเดิม) ส่งอีเมลจริง ที่อยู่ยอมรับสตริงอีเมลเปล่าหรือ { email, name? }

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

  • inbox_id (จำเป็น): รหัสของกล่องจดหมาย
  • message_id (จำเป็น): รหัสของข้อความที่จะตอบกลับ
  • text / html (แนะนำอย่างน้อยหนึ่งรายการ): เนื้อหาการตอบกลับ
  • from (ไม่บังคับ): ผู้ส่ง ถูกปฏิเสธสำหรับกล่องจดหมายที่โฮสต์โดย Mailtrap; จำเป็นสำหรับกล่องจดหมายโดเมนแบบกำหนดเอง
  • cc / bcc / reply_to (ไม่บังคับ): ที่อยู่เพิ่มเติม
  • category (ไม่บังคับ): หมวดหมู่ข้อความ
  • attachments (ไม่บังคับ): อาร์เรย์ของ { content (base64), filename, type?, disposition?, content_id? }
  • headers / custom_variables (ไม่บังคับ): ออบเจกต์ของค่าสตริง

reply-all-to-inbound-message

ตอบกลับข้อความขาเข้าและคัดลอกผู้รับอื่นๆ ของต้นฉบับ ส่งอีเมลจริง พารามิเตอร์เดียวกันกับ reply-to-inbound-message

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

  • inbox_id (จำเป็น): รหัสของกล่องจดหมาย
  • message_id (จำเป็น): รหัสของข้อความที่จะตอบกลับ
  • บวกกับฟิลด์การส่งแบบไม่บังคับเดียวกันกับ reply-to-inbound-message

forward-inbound-message

ส่งต่อข้อความขาเข้าไปยังผู้รับใหม่ ส่งอีเมลจริง

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

  • inbox_id (จำเป็น): รหัสของกล่องจดหมาย
  • message_id (จำเป็น): รหัสของข้อความที่จะส่งต่อ
  • to (จำเป็น): ผู้รับอย่างน้อยหนึ่งราย (สตริงอีเมลเปล่าหรือ { email, name? } หรืออาร์เรย์)
  • บวกกับฟิลด์การส่งแบบไม่บังคับเดียวกันกับ reply-to-inbound-message

list-inbound-threads

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

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

  • inbox_id (จำเป็น): รหัสของกล่องจดหมาย
  • last_id (ไม่บังคับ): เคอร์เซอร์แบ่งหน้าจาก last_id ของการตอบกลับก่อนหน้า

get-inbound-thread

ดึงเธรดขาเข้าเดียวพร้อมข้อความที่ฝังอยู่ (เก่าที่สุดก่อน) คืนค่าระเบียนเธรดเต็มรูปแบบเป็น JSON

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

  • inbox_id (จำเป็น): รหัสของกล่องจดหมาย
  • thread_id (จำเป็น): รหัสของเธรด

delete-inbound-thread

ลบเธรดขาเข้าอย่างถาวร

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

  • inbox_id (จำเป็น): รหัสของกล่องจดหมาย
  • thread_id (จำเป็น): รหัสของเธรด

การพัฒนา

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

การกำหนดค่าด้วย Claude Desktop หรือ Cursor

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

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

{
  "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"
      }
    }
  }
}

หากคุณใช้ 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": "your_sender@example.com",
        "MAILTRAP_ACCOUNT_ID": "your_account_id",
        "MAILTRAP_TEST_INBOX_ID": "your_test_inbox_id"
      }
    }
  }
}

VS Code

[!TIP] ดูตำแหน่งของไฟล์กำหนดค่าในส่วน 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"
        }
      }
    }
  }
}

การทดสอบ

การเรียกใช้เครื่องมือกับ Mailtrap จริง

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

ทั้งสองวิธีต้องสร้าง bundle ก่อน:

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=devops@example.com

การรันเซิร์ฟเวอร์ 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
  • ตัวแปรสภาพแวดล้อมถูกจัดการอย่างปลอดภัย
  • การป้องกันการหมดเวลาในการทำงาน (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. Sandbox ไม่ทำงาน: ระบุ test_inbox_id ในการเรียกเครื่องมือหรือตั้งค่าตัวแปรสภาพแวดล้อม MAILTRAP_TEST_INBOX_ID
  3. ข้อผิดพลาดการหมดเวลา: ตรวจสอบการเชื่อมต่อเครือข่ายและสถานะ API ของ Mailtrap
  4. ข้อผิดพลาดการตรวจสอบ: ตรวจสอบให้แน่ใจว่ามีการระบุฟิลด์ที่จำเป็นทั้งหมด

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

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

สัญญาอนุญาต

แพ็กเกจนี้เปิดให้ใช้งานเป็นโอเพนซอร์สภายใต้เงื่อนไขของ สัญญาอนุญาต MIT

จรรยาบรรณ

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