Mailtrap

ทางการ

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

GitHub
65
ลองใช้ MCP นี้ผู้สนับสนุน

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

  • ส่งอีเมลธุรกรรม — ขอให้ผู้ช่วยของคุณส่งอีเมลธุรกรรมพร้อมเนื้อหาแบบอินไลน์หรือเทมเพลตผ่าน send-email
  • ทดสอบอีเมลในแซนด์บ็อกซ์ — ส่งอีเมลทดสอบไปยังกล่องจดหมายแซนด์บ็อกซ์และตรวจสอบเนื้อหา คะแนนสแปม และการวิเคราะห์ HTML
  • ตรวจสอบบันทึกการส่ง — ค้นหาบันทึกอีเมลและตรวจสอบประวัติเหตุการณ์เพื่อแก้ไขปัญหาการส่งด้วย list-email-logs
  • จัดการเทมเพลตอีเมล — สร้าง แสดงรายการ อัปเดต หรือลบเทมเพลตโดยใช้คำสั่งภาษาธรรมชาติ
  • วิเคราะห์สถิติการส่ง — รับอัตราการส่งสำเร็จ การตีกลับ การเปิด และการคลิกสำหรับช่วงวันที่ใดก็ได้ด้วย get-sending-stats
  • จัดการโดเมนผู้ส่ง — แสดงรายการ สร้าง และกำหนดค่าโดเมนผู้ส่งพร้อมการตรวจสอบ DNS และการติดตามการคลิก

เอกสาร

TypeScript test NPM

เซิร์ฟเวอร์ MCP อย่างเป็นทางการของ Mailtrap

เซิร์ฟเวอร์ MCP อย่างเป็นทางการสำหรับ Mailtrap — แพลตฟอร์มการส่งอีเมล โดยเชื่อมต่อบัญชี Mailtrap ของคุณกับ Claude, Cursor, VS Code และผู้ช่วย AI อื่นๆ ที่รองรับ MCP

ส่งอีเมลแบบ transactional และ bulk, ทดสอบข้อความอย่างปลอดภัยใน Email Sandbox, จัดการเทมเพลต, ผู้ติดต่อ, โดเมนผู้ส่ง, และ webhooks, ตรวจสอบบันทึกอีเมลและสถิติการส่ง, แก้ไขปัญหาการส่งถึง, และจัดการทรัพยากรบัญชี — ทั้งหมดด้วยคำสั่งภาษาธรรมชาติ

ความสามารถ

  • Email API และ SMTP — ส่งอีเมลแบบ transactional และ bulk รวมถึงข้อความแบบ batch และตามเทมเพลต
  • การทดสอบอีเมล — ทดสอบข้อความใน Email Sandbox และตรวจสอบเนื้อหา, ส่วนหัว, ไฟล์แนบ, คะแนนสแปม, และความเข้ากันได้กับไคลเอนต์ HTML
  • การตรวจสอบการส่ง — ค้นหาบันทึกอีเมล, ตรวจสอบประวัติเหตุการณ์, และวิเคราะห์อัตราการส่ง, การตีกลับ, การเปิด, การคลิก, และสแปม
  • โครงสร้างพื้นฐานอีเมล — จัดการโดเมนผู้ส่ง, การตรวจสอบ DNS, webhooks, และการระงับ
  • ผู้ติดต่อ — จัดการผู้ติดต่อ, รายการ, ฟิลด์ที่กำหนดเอง, และเหตุการณ์ พร้อมการนำเข้าและส่งออก
  • การจัดการบัญชี — ตรวจสอบการใช้งานการเรียกเก็บเงินและจัดการการเข้าถึง, สิทธิ์, โทเค็น API, และบัญชีย่อย

ไคลเอนต์ MCP ที่รองรับ

ทำงานร่วมกับ Claude Desktop, Claude Code, Cursor, VS Code และไคลเอนต์อื่นๆ ที่รองรับ MCP คำแนะนำการติดตั้งสำหรับแต่ละรายการอยู่ด้านล่าง

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

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

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

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

  • MAILTRAP_API_TOKEN - จำเป็นสำหรับฟังก์ชันทั้งหมด
  • MAILTRAP_ACCOUNT_ID - จำเป็นสำหรับเทมเพลต, สถิติ, บันทึกอีเมล, การแสดงรายการ/ดู sandbox, โดเมนผู้ส่ง, และการระงับ เป็นตัวเลือกเฉพาะสำหรับเครื่องมือส่ง (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 เริ่มต้นสำหรับเครื่องมือ sandbox เมื่อไม่มีการระบุ sandbox_id เปิดใช้งานการสลับระหว่าง sandbox ต่อการเรียกผ่านพารามิเตอร์ sandbox_id
  • MAILTRAP_TEST_INBOX_ID - รหัสกล่องจดหมายทดสอบเริ่มต้นสำหรับเครื่องมือ sandbox เมื่อไม่มีการระบุ test_inbox_id เปิดใช้งานการสลับระหว่างกล่องจดหมายต่อการเรียกผ่านพารามิเตอร์ test_inbox_id ชื่อเดิมสำหรับ MAILTRAP_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": "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/

การใช้งาน

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

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

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

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

  • "แสดงบันทึกอีเมลที่ส่งล่าสุดของฉัน"
  • "แสดงบันทึกอีเมลสำหรับอีเมลที่ส่งถึง user@example.com"
  • "รับข้อความบันทึกอีเมลสำหรับ ID abc-123-uuid เพื่อตรวจสอบสถานะการส่ง"

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

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

การดำเนินการ Sandbox:

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

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

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

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

  • "แสดงโดเมนผู้ส่งของฉัน"
  • "รับโดเมนผู้ส่งด้วย ID 3938"
  • "สร้างโดเมนผู้ส่งสำหรับ example.com"
  • "เปิดการติดตามคลิกสำหรับโดเมนผู้ส่ง 3938"
  • "ลบโดเมนผู้ส่ง 3938"
  • "รับโดเมนผู้ส่ง 3938 พร้อมคำแนะนำการตั้งค่า DNS"
  • "แสดงข้อมูลบริษัทสำหรับโดเมนผู้ส่ง 3938"
  • "ตั้งค่าข้อมูลบริษัทสำหรับโดเมน 3938 เป็น Acme Inc, 123 Main St, San Francisco, US, 94105, https://acme.com"
  • "เปลี่ยนเมืองข้อมูลบริษัทสำหรับโดเมน 3938 เป็น New York"

การระงับ:

  • "แสดงการระงับสำหรับ bounced@example.com"
  • "ระงับ bounced@example.com ในสตรีม transactional ของโดเมน 3938"
  • "แสดงที่อยู่อีเมลที่ถูกระงับทั้งหมด"
  • "ทำไม user@example.com ถึงไม่ได้รับอีเมลของฉัน?"
  • "ลบ user@example.com ออกจากรายการระงับ"

การยกเลิกการติดตาม:

  • "หยุดติดตามการเปิดและคลิกสำหรับ privacy@example.com บนโดเมน 3938"
  • "แสดงทุกคนที่เลือกไม่ติดตาม"

ผู้ติดต่อและรายการ:

  • "เพิ่ม john.doe@example.com ในรายการผู้ติดต่อจดหมายข่าวของฉัน"
  • "แสดงรายการผู้ติดต่อทั้งหมดของฉัน"
  • "สร้างฟิลด์ผู้ติดต่อชื่อ 'signup_source' สำหรับติดตามว่าผู้ติดต่อมาจากไหน"
  • "อัปเดตผู้ติดต่อ john.doe@example.com เพื่อตั้งค่าแผนเป็น 'pro'"
  • "นำเข้าผู้ติดต่อจาก CSV นี้เข้ารายการ onboarding ของฉัน"
  • "ส่งออกผู้ติดต่อทั้งหมดจากรายการจดหมายข่าวของฉัน"
  • "บันทึกเหตุการณ์ 'trial_started' สำหรับผู้ติดต่อ john.doe@example.com"

Webhooks:

  • "แสดง webhooks ทั้งหมดที่กำหนดค่าในบัญชีของฉัน"
  • "สร้าง webhook ชี้ไปที่ https://example.com/hooks/mailtrap สำหรับเหตุการณ์ตีกลับและสแปม"
  • "อัปเดต webhook 4821 เพื่อส่งเหตุการณ์การส่งด้วย"
  • "ลบ webhook 4821"

บัญชีและการเรียกเก็บเงิน:

  • "การใช้งานการเรียกเก็บเงินปัจจุบันของฉันในเดือนนี้คือเท่าไร?"
  • "ฉันเหลืออีเมลในแผนกี่ฉบับ?"
  • "แสดงทุกคนที่เข้าถึงบัญชี Mailtrap นี้"
  • "แสดงทรัพยากรสิทธิ์ที่มีในบัญชีของฉัน"

โทเค็น API:

  • "แสดงโทเค็น API ทั้งหมดในบัญชีของฉัน"
  • "สร้างโทเค็น API ใหม่สำหรับสภาพแวดล้อม staging"
  • "รีเซ็ตโทเค็น API ด้วย ID 1234"
  • "ลบโทเค็น API ที่ไม่ได้ใช้ 1234"

องค์กรและบัญชีย่อย:

  • "แสดงบัญชีย่อยทั้งหมดในองค์กรของฉัน"
  • "สร้างบัญชีย่อยใหม่สำหรับโปรเจกต์ลูกค้า 'Acme Corp'"

เครื่องมือที่มี

send-email

ส่งอีเมล transactional ผ่าน Mailtrap รองรับสองโหมดที่แยกจากกัน — เนื้อหาแบบ inline (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 (ตามเงื่อนไข): หัวข้ออีเมล จำเป็นสำหรับการส่งแบบ inline; ต้องละเว้นเมื่อตั้งค่า template_uuid
  • text (ตามเงื่อนไข): เนื้อหาอีเมลแบบข้อความ จำเป็น (ควบคู่หรือแทน html) สำหรับการส่งแบบ inline; ต้องละเว้นเมื่อตั้งค่า template_uuid
  • html (ตามเงื่อนไข): เวอร์ชัน HTML ของเนื้อหาอีเมล จำเป็น (ควบคู่หรือแทน text) สำหรับการส่งแบบ inline; ต้องละเว้นเมื่อตั้งค่า template_uuid
  • category (ตัวเลือก): หมวดหมู่อีเมลสำหรับการติดตามและวิเคราะห์ ต้องละเว้นเมื่อตั้งค่า template_uuid
  • template_uuid (ตัวเลือก): ใช้เทมเพลตอีเมล Mailtrap แทนเนื้อหาแบบ inline เมื่อตั้งค่า ต้องละเว้น subject / text / html / category (ตาม API ของ Mailtrap)
  • template_variables (ตัวเลือก): ออบเจกต์ของตัวแปรที่แทนที่ลงในเทมเพลตที่อ้างอิงโดย template_uuid อนุญาตเฉพาะร่วมกับ template_uuid

batch-send-transactional-email

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

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

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

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

batch-send-sandbox-email

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

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

  • 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 สำหรับการแบ่งหน้าแบบเคอร์เซอร์ หรือ search เพื่อกรองข้อความตามเนื้อหา

show-sandbox-email-message

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

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

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

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

get-sandbox-project

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

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

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

update-sandbox-project

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

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

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

list-sandboxes

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

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

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

mark-sandbox-as-read

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

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

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

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)

update-sending-domain

อัปเดตการตั้งค่าการติดตามและการรับข้อความขาเข้าของโดเมนผู้ส่ง

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

  • sending_domain_id (จำเป็น): ID โดเมนผู้ส่ง
  • open_tracking_enabled (ไม่บังคับ): ติดตามการเปิดอีเมลที่ส่งจากโดเมนนี้
  • click_tracking_enabled (ไม่บังคับ): ติดตามการคลิกลิงก์ในอีเมลที่ส่งจากโดเมนนี้
  • tracking_opt_out_enabled (ไม่บังคับ): เพิ่มลิงก์เลือกไม่รับการติดตามในอีเมลที่ถูกติดตาม ต้องเปิดการติดตามการเปิดหรือการคลิก
  • auto_unsubscribe_link_enabled (ไม่บังคับ): เพิ่มลิงก์ยกเลิกการสมัครในอีเมลโดยอัตโนมัติ
  • inbound_enabled (ไม่บังคับ): อนุญาตให้แนบโดเมนกับกล่องขาเข้าที่รับข้อความทั้งหมด (catch-all)

ต้องระบุการตั้งค่าอย่างน้อยหนึ่งรายการนอกเหนือจาก sending_domain_id

delete-sending-domain

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

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

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

send-sending-domain-setup-instructions

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

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

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

get-company-info

รับข้อมูลบริษัทของโดเมนผู้ส่ง ใช้สำหรับการตรวจสอบการปฏิบัติตามข้อกำหนดของโดเมน

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

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

create-company-info

ตั้งค่าข้อมูลบริษัทของโดเมนผู้ส่ง จำเป็นสำหรับการตรวจสอบการปฏิบัติตามข้อกำหนดของโดเมน

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

  • sending_domain_id (จำเป็น): ID โดเมนผู้ส่ง
  • name (จำเป็น): ชื่อบริษัทหรือบุคคล
  • address (จำเป็น): ที่อยู่ถนน
  • city (จำเป็น): เมือง
  • country (จำเป็น): ประเทศ
  • zip_code (จำเป็น): รหัสไปรษณีย์
  • website_url (จำเป็น): URL เว็บไซต์บริษัท
  • phone (ไม่บังคับ): หมายเลขโทรศัพท์
  • privacy_policy_url (ไม่บังคับ): URL ของหน้านโยบายความเป็นส่วนตัว
  • terms_of_service_url (ไม่บังคับ): URL ของหน้าข้อกำหนดการให้บริการ
  • info_level (ไม่บังคับ): business หรือ individual

update-company-info

อัปเดตข้อมูลบริษัทของโดเมนผู้ส่ง

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

  • sending_domain_id (จำเป็น): ID โดเมนผู้ส่ง
  • ทุกฟิลด์ของ create-company-info ไม่บังคับทั้งหมด ต้องระบุอย่างน้อยหนึ่งฟิลด์ ฟิลด์ที่ไม่ระบุจะไม่ถูกเปลี่ยนแปลง

list-suppressions

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

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

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

create-suppression

เพิ่มที่อยู่อีเมลในรายการระงับของบัญชี เพื่อให้ Mailtrap หยุดส่งถึงที่อยู่นั้น

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

  • email (จำเป็น): ที่อยู่อีเมลที่จะระงับ
  • domain_id (จำเป็น): ID ของโดเมนผู้ส่งที่การระงับนี้ใช้กับ
  • sending_stream (จำเป็น): transactional หรือ bulk
  • type (ไม่บังคับ): hard bounce, spam complaint, unsubscription หรือ manual import ค่าเริ่มต้นคือ manual import

delete-suppression

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

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

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

list-tracking-opt-outs

แสดงรายการที่อยู่อีเมลที่ถูกแยกออกจากการติดตามการเปิดและการคลิก คืนค่าสูงสุด 1,000 รายการต่อการเรียก

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

  • email (ไม่บังคับ): ตัวกรองอีเมล คืนค่าเฉพาะการเลือกไม่รับที่ตรงกับที่อยู่นี้
  • start_time (ไม่บังคับ): เฉพาะการเลือกไม่รับที่สร้างขึ้นในเวลานี้หรือหลังจากนี้ (ISO 8601)
  • end_time (ไม่บังคับ): เฉพาะการเลือกไม่รับที่สร้างขึ้นในเวลานี้หรือก่อนหน้านี้ (ISO 8601)
  • last_id (ไม่บังคับ): เคอร์เซอร์แบ่งหน้า — last_id จากการตอบกลับก่อนหน้า

create-tracking-opt-out

แยกที่อยู่อีเมลออกจากการติดตามการเปิดและการคลิกสำหรับโดเมนผู้ส่ง

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

  • email (จำเป็น): ที่อยู่อีเมลที่จะเลือกไม่รับการติดตาม
  • domain_id (จำเป็น): ID ของโดเมนผู้ส่งที่การเลือกไม่รับนี้ใช้กับ

delete-tracking-opt-out

นำที่อยู่อีเมลออกจากรายการเลือกไม่รับการติดตาม เพื่อให้การติดตามการเปิดและการคลิกใช้กับที่อยู่นั้นอีกครั้ง

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

  • tracking_opt_out_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 สำหรับตรวจสอบลายเซ็นเพย์โหลด 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 โดเมนผู้ส่งเพื่อจำกัดขอบเขต webhook นี้
  • inbound_inbox_id (ไม่บังคับ, เฉพาะ inbound_receiving): ID ของกล่องขาเข้าที่ 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 ของกล่องขาเข้าที่ webhook เชื่อมโยงอยู่

delete-webhook

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

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

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

get-contact

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

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

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

create-contact

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

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

  • email (จำเป็น): ที่อยู่อีเมล
  • fields (ไม่บังคับ): ค่าฟิลด์ที่กำหนดเองโดยใช้ merge tag เป็นคีย์ (เช่น first_name) ค่ารองรับ string, number หรือ boolean
  • list_ids (ไม่บังคับ): ID ของรายการผู้ติดต่อที่จะสมัครผู้ติดต่อนี้
  • unsubscribed (ไม่บังคับ, boolean): สร้างผู้ติดต่อในสถานะ 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 (ไม่บังคับ, boolean): ตั้งค่าเป็น unsubscribed (true) หรือ subscribed (false)

delete-contact

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

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

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

create-contact-event

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

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

  • contact_identifier (จำเป็น): ID ผู้ติดต่อหรืออีเมล
  • name (จำเป็น): ชื่ออีเวนต์ (ต้องตรงกับทริกเกอร์ระบบอัตโนมัติ)
  • params (จำเป็น): ออบเจกต์ของคู่คีย์/ค่าที่กำหนดเอง ค่ารองรับ string, number, boolean หรือ 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 ต้องไม่ซ้ำกันภายในบัญชีและใช้เป็นชื่อตัวแทนในตัวแปรเทมเพลต

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

  • 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 เป็นคีย์ (ค่ารองรับ string หรือ number)
    • list_ids_included (ไม่บังคับ): ID รายการที่จะเพิ่มผู้ติดต่อ
    • list_ids_excluded (ไม่บังคับ): ID รายการที่จะลบผู้ติดต่อออก

get-contact-import

รับสถานะของงานนำเข้าผู้ติดต่อ (created/started/finished/failed) พร้อมจำนวน created/updated/over-limit

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

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

create-contact-export

ส่งออกผู้ติดต่อที่ตรงกับชุดตัวกรองแบบ AND-combined คืนค่าเรกคอร์ดงานส่งออก; ตรวจสอบสถานะด้วย 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 (จำเป็น): ค่าเปรียบเทียบ (string, number, boolean หรือ array)

get-contact-export

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

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

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

list-email-campaigns

แสดงแคมเปญอีเมลของบัญชี เรียงจากใหม่ไปเก่า พร้อมการแบ่งหน้าด้วย page-token สามารถกรองตามชื่อด้วย search

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

  • token (ไม่บังคับ): หมายเลขหน้าที่จะดึง (page-token pagination) ค่าเริ่มต้นคือ 1
  • per_page (ไม่บังคับ): จำนวนแคมเปญต่อหน้า ค่าเริ่มต้นคือ 50, สูงสุด 100
  • search (ไม่บังคับ): กรองแคมเปญตามชื่อ (การจับคู่บางส่วนแบบไม่คำนึงถึงตัวพิมพ์เล็กใหญ่)

get-email-campaign

รับแคมเปญอีเมลด้วย ID

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

  • email_campaign_id (จำเป็น): ID ของแคมเปญอีเมล

create-email-campaign

สร้างแคมเปญอีเมลใหม่ แคมเปญจะถูกสร้างในสถานะ draft เสมอ; การกำหนดเวลาและการเริ่มต้นเป็นเครื่องมือแยกต่างหาก (schedule-email-campaign, start-email-campaign)

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

  • name (จำเป็น): ชื่อแคมเปญ
  • domain_id (จำเป็น): ID ของโดเมนผู้ส่งที่ยืนยันแล้วที่ใช้สำหรับแคมเปญ ตามที่ส่งคืนจาก endpoints ของ Sending Domains
  • from_local_part (จำเป็น): ส่วนท้องถิ่น (ก่อน @) ของที่อยู่ From
  • template_attributes (จำเป็น): เทมเพลตอีเมลแบบอินไลน์ มี:
    • subject (จำเป็น): หัวข้ออีเมล (สูงสุด 255 ตัวอักษร) รองรับ merge tags เช่น Hi {{first_name}}
    • body_html (ไม่บังคับ): เนื้อหา HTML (การออกแบบ) จำเป็นก่อนที่แคมเปญจะถูกกำหนดเวลาหรือเริ่มต้น รวมลิงก์ยกเลิกการสมัครผ่าน anchor ที่ href มีตัวแทน __unsubscribe_url__
    • body_text (ไม่บังคับ): เนื้อหาอีเมลแบบข้อความธรรมดาทางเลือก
    • merge_tags (ไม่บังคับ): ชื่อ merge tags ที่อ้างอิงในหัวข้อ/เนื้อหา โดยไม่ต้องมีวงเล็บ เช่น ["first_name"]
  • from_display_name (ไม่บังคับ): ชื่อที่แสดงในส่วนหัว From
  • reply_to (ไม่บังคับ): ส่วนของที่อยู่ Reply-To (display_name, local_part, domain)
  • delivery_mode (ไม่บังคับ): rapid (ส่งเร็วที่สุดเท่าที่เป็นไปได้) หรือ gradual (จำกัดอัตราเป็น delivery_options.emails_per_hour)
  • delivery_options (ไม่บังคับ): ตัวเลือกการจำกัดอัตราการส่ง (emails_per_hour)
  • contact_list_ids (ไม่บังคับ): ID ของรายการผู้ติดต่อที่จะส่งถึง (ถือเป็นชุดเต็มของรายการที่รวม)
  • contact_segment_ids (ไม่บังคับ): ID ของกลุ่มผู้ติดต่อที่จะส่งถึง (ถือเป็นชุดเต็มของกลุ่มที่รวม)

update-email-campaign

อัปเดตแคมเปญอีเมลในสถานะ draft เท่านั้น เฉพาะฟิลด์ที่ระบุจะเปลี่ยน; เทมเพลตถูกแก้ไขในตำแหน่งเดิม แคมเปญในสถานะอื่นไม่สามารถอัปเดตได้

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

  • email_campaign_id (จำเป็น): ID ของแคมเปญอีเมลที่จะอัปเดต
  • พารามิเตอร์อื่นทั้งหมดไม่บังคับและเหมือนกับ 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

ลบแคมเปญอีเมลด้วย ID เฉพาะแคมเปญในสถานะ draft เท่านั้นที่สามารถลบได้

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

  • email_campaign_id (จำเป็น): ID ของแคมเปญอีเมลที่จะลบ

start-email-campaign

เริ่มส่งแคมเปญอีเมลในสถานะ draft ทันที เฉพาะแคมเปญในสถานะ draft เท่านั้นที่สามารถเริ่มได้; เทมเพลตต้องมีการออกแบบ body_html และต้องตั้งค่ากลุ่มเป้าหมายและโดเมนผู้ส่งที่ยืนยันแล้ว

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

  • email_campaign_id (จำเป็น): ID ของแคมเปญอีเมลที่จะเริ่ม

schedule-email-campaign

กำหนดเวลาแคมเปญอีเมลในสถานะ draft ให้เริ่มส่งในเวลาอนาคต เฉพาะแคมเปญในสถานะ draft เท่านั้นที่สามารถกำหนดเวลาได้

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

  • email_campaign_id (จำเป็น): ID ของแคมเปญอีเมลที่จะกำหนดเวลา
  • datetime (จำเป็น): เวลาที่จะส่งแคมเปญ (ISO 8601) ต้องเป็นเวลาในอนาคตและไม่เกิน 1 เดือนล่วงหน้า

cancel-email-campaign

ยกเลิกแคมเปญอีเมลในสถานะ scheduled โดยส่งกลับไปยังสถานะ draft เฉพาะแคมเปญในสถานะ scheduled เท่านั้นที่สามารถยกเลิกได้

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

  • email_campaign_id (จำเป็น): ID ของแคมเปญอีเมลที่จะยกเลิก

terminate-email-campaign

ยุติแคมเปญอีเมลที่กำลังส่งอยู่ (started, queued, หรือ paused) โดยหยุดการส่งที่กำลังดำเนินอยู่

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

  • email_campaign_id (จำเป็น): ID ของแคมเปญอีเมลที่จะยุติ

reset-email-campaign

รีเซ็ตแคมเปญอีเมลในสถานะ scheduled กลับไปเป็นสถานะ draft เฉพาะแคมเปญในสถานะ scheduled เท่านั้นที่สามารถรีเซ็ตได้

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

  • email_campaign_id (จำเป็น): ID ของแคมเปญอีเมลที่จะรีเซ็ต

get-email-campaign-stats

รับสถิติประสิทธิภาพรวมสำหรับแคมเปญอีเมล (จำนวนและอัตราสำหรับการส่งสำเร็จ, การเปิด, การคลิก, การตีกลับ, การร้องเรียนสแปม และการยกเลิกการสมัคร)

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

  • email_campaign_id (จำเป็น): ID ของแคมเปญอีเมล
  • start_date (ไม่บังคับ): จุดเริ่มต้นของหน้าต่างการรวมข้อมูล (รวม), YYYY-MM-DD ค่าเริ่มต้นคือวันที่แคมเปญถูกเริ่มล่าสุด
  • end_date (ไม่บังคับ): จุดสิ้นสุดของหน้าต่างการรวมข้อมูล (รวม), YYYY-MM-DD ค่าเริ่มต้นคือวันที่ปัจจุบัน

list-accounts

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

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

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

get-billing-usage

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

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

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

list-account-accesses

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

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

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

list-api-tokens

แสดงรายการ API tokens ทั้งหมดของบัญชี

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

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

create-api-token

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

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

  • name (จำเป็น): ชื่อที่แสดงสำหรับ token
  • expires_at (ไม่บังคับ): วันหมดอายุของ token ในรูปแบบ ISO 8601 date-time หากไม่ระบุจะใช้ค่าเริ่มต้นของเซิร์ฟเวอร์ (1 ปี); ส่ง null ที่ชัดเจนสำหรับ token ที่ไม่มีวันหมดอายุ ค่าที่เป็นอดีตหรือค่าที่เกิน 5 ปีข้างหน้าจะถูกปฏิเสธ
  • resources (ไม่บังคับ): อาร์เรย์ของสิทธิ์ทรัพยากรเพื่อจำกัดขอบเขต token แต่ละรายการมี:
    • resource_type (จำเป็น): หนึ่งใน account, project, inbox, domain, billing
    • resource_id (จำเป็น): ID ของทรัพยากร
    • access_level (จำเป็น): 100 (ผู้ดูแลระบบ) หรือ 10 (ผู้ชม)

get-api-token

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

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

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

reset-api-token

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

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

  • api_token_id (จำเป็น): ID ของ API token ที่จะรีเซ็ต
  • expires_at (ไม่บังคับ): วันหมดอายุสำหรับ token ใหม่ในรูปแบบ ISO 8601 date-time หากไม่ระบุจะใช้ค่าเริ่มต้นของเซิร์ฟเวอร์ (1 ปี); ส่ง null ที่ชัดเจนสำหรับ token ที่ไม่มีวันหมดอายุ ค่าที่เป็นอดีตหรือค่าที่เกิน 5 ปีข้างหน้าจะถูกปฏิเสธ

delete-api-token

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

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

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

list-sub-accounts

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

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

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

create-sub-account

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

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

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

list-inbound-folders

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

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

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

get-inbound-folder

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

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

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

create-inbound-folder

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

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

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

update-inbound-folder

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

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

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

delete-inbound-folder

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

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

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

list-inbound-inboxes

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

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

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

get-inbound-inbox

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

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

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

create-inbound-inbox

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

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

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

update-inbound-inbox

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

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

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

delete-inbound-inbox

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

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

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

list-inbound-messages

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

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

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

get-inbound-message

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

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

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

delete-inbound-message

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

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

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

reply-to-inbound-message

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

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

  • inbox_id (จำเป็น): ID ของกล่องจดหมาย
  • message_id (จำเป็น): 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 (จำเป็น): ID ของกล่องจดหมาย
  • message_id (จำเป็น): ID ของข้อความที่จะตอบกลับ
  • รวมถึงฟิลด์การส่งที่ไม่บังคับเดียวกันกับ reply-to-inbound-message

forward-inbound-message

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

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

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

list-inbound-threads

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

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

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

get-inbound-thread

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

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

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

delete-inbound-thread

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

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

  • inbox_id (จำเป็น): ID ของกล่องจดหมาย
  • thread_id (จำเป็น): 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 คุณควรใช้พาธสัมบูรณ์ไปยัง executable:

(ตัวอย่างสำหรับ 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 Server

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

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

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

สัญญาอนุญาต

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

จรรยาบรรณ

ทุกคนที่โต้ตอบใน codebases, issue trackers, ห้องแชท และรายชื่ออีเมลของโปรเจกต์ Mailtrap ควรปฏิบัติตาม code of conduct