Mailtrap

ทางการ

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

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

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

เอกสาร

TypeScript test NPM

MCP Server อย่างเป็นทางการของ Mailtrap

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

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

ความสามารถ

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

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

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

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

ก่อนใช้ MCP server นี้ คุณต้อง:

  1. สร้างบัญชี Mailtrap
  2. ยืนยันโดเมนของคุณ
  3. รับโทเค็น API จาก การตั้งค่า API ของ Mailtrap
  4. รับ Account ID จาก การจัดการบัญชี Mailtrap
  5. ติดตั้ง Node.js เวอร์ชัน 22 ขึ้นไป เว้นแต่คุณจะเรียกใช้อิมเมจ Docker

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

  • MAILTRAP_API_TOKEN - จำเป็นสำหรับฟังก์ชันการทำงานทั้งหมด
  • MAILTRAP_ACCOUNT_ID - จำเป็นสำหรับเทมเพลต, get-sending-stats, บันทึกอีเมล, รายการ/แสดง sandbox, โดเมน และรายการระงับ จำเป็นเฉพาะสำหรับเครื่องมือส่งอีเมล (send-email, send-sandbox-email และเครื่องมือ batch-send-*) เครื่องมือแคมเปญอีเมล get-marketing-stats เครื่องมือข้อมูลบริษัท เครื่องมือยกเลิกการติดตาม และ list-accounts เท่านั้น

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

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

ติดตั้งด่วน

Install in Cursor

Install with Node in VS Code

Docker

เรียกใช้ server ผ่าน stdio ด้วยอิมเมจ Docker MCP Catalog:

docker run --rm -i \
  -e MAILTRAP_API_TOKEN="${MAILTRAP_API_TOKEN}" \
  -e MAILTRAP_ACCOUNT_ID="${MAILTRAP_ACCOUNT_ID}" \
  -e DEFAULT_FROM_EMAIL="${DEFAULT_FROM_EMAIL}" \
  -e MAILTRAP_SANDBOX_ID="${MAILTRAP_SANDBOX_ID}" \
  -e MAILTRAP_ORGANIZATION_ID="${MAILTRAP_ORGANIZATION_ID}" \
  -e MAILTRAP_ORGANIZATION_API_TOKEN="${MAILTRAP_ORGANIZATION_API_TOKEN}" \
  mcp/mailtrap

ดู ข้อกำหนดเบื้องต้น สำหรับตัวแปรสภาพแวดล้อมที่จำเป็นและไม่บังคับ

หากต้องการสร้างจาก repository นี้: docker build -t mcp/mailtrap .

Smithery CLI

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

ติดตั้ง server ที่เผยแพร่แล้ว (mailtrap/mailtrap-mcp) ลงในไคลเอ็นต์ภายในเครื่อง (เปลี่ยนชื่อไคลเอ็นต์ตามต้องการ):

npx -y smithery mcp add mailtrap/mailtrap-mcp --client claude

ดู เอกสาร Smithery CLI สำหรับไคลเอ็นต์อื่น ๆ (cursor, windsurf เป็นต้น) และวิธีเผยแพร่การอัปเดต

การตั้งค่า

Claude Desktop

ใช้ MCPB เพื่อติดตั้ง server ของ 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_SANDBOX_ID": "your_sandbox_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": "22.14.0",
        "MAILTRAP_API_TOKEN": "your_mailtrap_api_token",
        "DEFAULT_FROM_EMAIL": "your_sender@example.com",
        "MAILTRAP_ACCOUNT_ID": "your_account_id",
        "MAILTRAP_SANDBOX_ID": "your_sandbox_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_SANDBOX_ID": "your_sandbox_id"
        }
      }
    }
  }
}

[!TIP] อย่าลืมรีสตาร์ต MCP server หลังจากเปลี่ยนส่วน "env"

MCP Bundle (MCPB)

เพื่อให้ติดตั้งได้ง่ายในโฮสต์ที่รองรับ MCP Bundles คุณสามารถแจกจ่ายไฟล์ bundle .mcpb ได้

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

# Inspect bundle metadata
npm run mcpb:info

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

การดำเนินการนี้จะสร้าง mailtrap-mcp.mcpb สคริปต์จะคัดลอก dist/, manifest.json, icon.png และ license ไปยัง mcpb-build/ ติดตั้ง dependencies สำหรับ production ที่นั่น และแพ็กเฉพาะไดเรกทอรีดังกล่าว อย่าเรียกใช้ mcpb pack . จากไดเรกทอรีรากของ repository

การใช้งาน

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

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

  • "ส่งอีเมลถึง 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 ชื่อ 'QA' ในโปรเจกต์ 42 และแสดงข้อมูลรับรอง SMTP"
  • "ลบข้อความทั้งหมดจาก sandbox 1234"
  • "แสดงรายละเอียดข้อความ 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 ในสตรีมธุรกรรมของโดเมน 3938"
  • "แสดงที่อยู่อีเมลทั้งหมดที่ถูกระงับ"
  • "ทำไม user@example.com ถึงไม่ได้รับอีเมลของฉัน?"
  • "นำ user@example.com ออกจากรายการระงับ"

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

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

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

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

เว็บฮุก:

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

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

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

โทเค็น API:

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

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

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

เปลี่ยนชื่อเครื่องมือ

ตอนนี้ Mailtrap เรียกกล่องจดหมายทดสอบว่า sandboxes และโดเมนสำหรับส่งว่า domains และชื่อเครื่องมือก็เปลี่ยนตามนั้น ชื่อเดิมจะไม่ปรากฏในรายการเครื่องมืออีกต่อไป แต่การเรียกใช้ชื่อเหล่านั้นยังทำงานได้และจะบันทึกคำเตือนการเลิกใช้ไปยัง stderr โดยจะนำออกในรุ่นหลักในอนาคต

ไคลเอ็นต์ MCP และเฟรมเวิร์ก agent จะจับคู่รายการอนุญาต รายการปฏิเสธ และรายการตัวกรองกับชื่อเครื่องมือที่ประกาศไว้ ดังนั้นให้ย้ายรายการเฉพาะเครื่องมือไปใช้ชื่อใหม่: รายการปฏิเสธสำหรับ delete-sending-domain จะไม่บล็อก delete-domain อีกต่อไป

ชื่อเดิมชื่อใหม่
create-sandbox-inboxcreate-sandbox
get-sandbox-inboxget-sandbox
update-sandbox-inboxupdate-sandbox
delete-sandbox-inboxdelete-sandbox
clean-sandbox-inboxclean-sandbox
list-sending-domainslist-domains
get-sending-domainget-domain
create-sending-domaincreate-domain
update-sending-domainupdate-domain
delete-sending-domaindelete-domain
send-sending-domain-setup-instructionssend-domain-setup-instructions
พารามิเตอร์ sending_domain_id ของเครื่องมือโดเมนและข้อมูลบริษัทdomain_id
ตัวแปรสภาพแวดล้อม MAILTRAP_TEST_INBOX_IDMAILTRAP_SANDBOX_ID

ตัวกรองที่ตรงกับฟิลด์ API จะยังคงใช้ชื่อเดิม: sending_domain_id บน list-email-logs และ sending_domain_ids บนเครื่องมือสถิติ

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

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 (มีเงื่อนไข): บรรทัดหัวเรื่องอีเมล จำเป็นสำหรับการส่งแบบ 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 (ตามข้อกำหนดของ Mailtrap API)
  • template_variables (ไม่บังคับ): ออบเจ็กต์ตัวแปรที่แทนค่าในเทมเพลตที่อ้างอิงโดย template_uuid อนุญาตให้ใช้ร่วมกับ template_uuid เท่านั้น

batch-send-transactional-email

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

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

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

batch-send-bulk-email

ส่งอีเมลจำนวนมากเป็นชุดผ่าน API ของ bulk-stream ของ Mailtrap ใช้รูปแบบ base + requests[] รวมถึงกฎการตรวจสอบและการใช้ inline กับเทมเพลตแบบเดียวกับ 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 ของข้อความบันทึกอีเมล (จากการตอบกลับการส่งหรือ 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 (อาร์เรย์สตริง)

get-marketing-stats

รับสถิติ Email Marketing แบบรวมจากแคมเปญและระบบอัตโนมัติสำหรับช่วงวันที่ที่กำหนด ได้แก่ จำนวนและอัตราการส่ง การส่งสำเร็จ การตีกลับ การเปิด การคลิก สแปม และการยกเลิกการสมัคร delivery_rate และ bounce_rate เป็นสัดส่วนของ sent_count; อัตราอื่น ๆ เป็นสัดส่วนของ delivery_count

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

  • start_date (จำเป็น): วันเริ่มต้นของช่วงวันที่ (รวมวันดังกล่าว), YYYY-MM-DD
  • end_date (จำเป็น): วันสิ้นสุดของช่วงวันที่ (รวมวันดังกล่าว), YYYY-MM-DD
  • sending_domain_ids (ไม่บังคับ): จำกัดผลลัพธ์เฉพาะ ID โดเมนเหล่านี้ (อาร์เรย์จำนวนเต็ม)
  • sources (ไม่บังคับ): campaigns หรือ automations จะจำกัดสถิติเฉพาะแหล่งที่มานั้น; ไม่ต้องระบุ หรือส่งทั้งสองค่า เพื่อรวมทราฟฟิก Email Marketing ทั้งหมด (อาร์เรย์สตริง)
  • email_service_providers (ไม่บังคับ): จำกัดเฉพาะผู้ให้บริการเหล่านี้ เช่น Google, Yahoo, Outlook (อาร์เรย์สตริง)

create-template

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

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

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

list-templates

แสดงเทมเพลตอีเมลในบัญชี Mailtrap ของคุณ พร้อมการแบ่งหน้าโดยใช้ page token เมื่อมีเทมเพลตเพิ่มเติม ผลลัพธ์จะแสดงชื่อ token สำหรับหน้าถัดไป หน้าต่าง ๆ เป็นตำแหน่งในรายการเรียงจากใหม่ไปเก่า ดังนั้นหลังจากลบเทมเพลต ให้เริ่มแสดงรายการอีกครั้งจาก token 1 แทนการใช้โทเค็นถัดไปต่อ หากหน้าไม่มีรายการ จะแสดงชื่อหน้าสุดท้ายที่ยังมีเทมเพลต

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

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

get-template

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

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

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

update-template

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

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

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

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

delete-template

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

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

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

send-sandbox-email

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

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

  • sandbox_id (ไม่บังคับ): แนะนำให้ใช้ ID ของแซนด์บ็อกซ์ Mailtrap จำเป็นต้องระบุ เว้นแต่จะตั้งค่า MAILTRAP_SANDBOX_ID
  • test_inbox_id (ไม่บังคับ): ชื่อแทนแบบเดิมของ sandbox_id เมื่อไม่ได้ระบุ sandbox_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 — ความแตกต่างคือเครื่องมือนี้ส่งการเรียกผ่านปลายทางแซนด์บ็อกซ์สำหรับแซนด์บ็อกซ์เดียว

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

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

[!NOTE] เครื่องมือแซนด์บ็อกซ์ส่วนใหญ่ใช้ sandbox_id (หรือใช้ค่า MAILTRAP_SANDBOX_ID หากไม่มี; ตัวแปรสภาพแวดล้อมที่เลิกใช้แล้ว MAILTRAP_TEST_INBOX_ID ยังคงใช้งานได้) send-sandbox-email, get-sandbox-messages และ show-sandbox-email-message ยังยอมรับ test_inbox_id แบบเดิมด้วย get-sandbox, update-sandbox, delete-sandbox และ clean-sandbox ใช้ sandbox_id โดยรองรับ inbox_id แบบเดิมด้วย (เป็น ID เดียวกัน; เครื่องมือข้อความไม่ใช้ inbox_id) เครื่องมืออีเมลขาเข้าใช้ inbox_id สำหรับผลิตภัณฑ์อื่น (อีเมลที่ได้รับ) ไม่ใช่แซนด์บ็อกซ์

get-sandbox-messages

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

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

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

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

show-sandbox-email-message

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

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

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

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

list-sandbox-projects

แสดงรายการโปรเจ็กต์แซนด์บ็อกซ์ทั้งหมดและแซนด์บ็อกซ์ภายในโปรเจ็กต์เหล่านั้น

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

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

create-sandbox-project

สร้างโปรเจ็กต์แซนด์บ็อกซ์ใหม่เพื่อจัดกลุ่มแซนด์บ็อกซ์

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

  • name (จำเป็น): ชื่อโปรเจ็กต์ (2–100 อักขระ)

get-sandbox-project

ดึงข้อมูลโปรเจ็กต์แซนด์บ็อกซ์ตาม ID รวมถึงแซนด์บ็อกซ์และจำนวนอีเมล

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

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

update-sandbox-project

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

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

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

delete-sandbox-project

ลบโปรเจ็กต์แซนด์บ็อกซ์และแซนด์บ็อกซ์ทั้งหมดภายในโปรเจ็กต์

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

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

create-sandbox

สร้างแซนด์บ็อกซ์ใหม่ภายในโปรเจ็กต์ ส่งคืนข้อมูลรับรอง SMTP ของแซนด์บ็อกซ์ใหม่

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

  • project_id (จำเป็น): ID ของโปรเจ็กต์ที่จะสร้างแซนด์บ็อกซ์
  • name (จำเป็น): ชื่อแซนด์บ็อกซ์

get-sandbox

ดึงรายละเอียดแซนด์บ็อกซ์ รวมถึงข้อมูลรับรอง SMTP จำนวนอีเมล และสถานะ

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

  • sandbox_id (ไม่บังคับ): ID ของแซนด์บ็อกซ์ จำเป็นต้องระบุ เว้นแต่จะตั้งค่า MAILTRAP_SANDBOX_ID
  • inbox_id (ไม่บังคับ): ชื่อแทนแบบเดิมของ sandbox_id

update-sandbox

อัปเดตชื่อหรือชื่อผู้ใช้อีเมลของแซนด์บ็อกซ์

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

  • sandbox_id (จำเป็น): ID ของแซนด์บ็อกซ์ (ชื่อแทนแบบเดิม: inbox_id)
  • name (ไม่บังคับ): ชื่อใหม่ของแซนด์บ็อกซ์
  • email_username (ไม่บังคับ): ชื่อผู้ใช้อีเมลใหม่ของแซนด์บ็อกซ์

ต้องระบุอย่างน้อยหนึ่งรายการจาก name หรือ email_username

delete-sandbox

ลบแซนด์บ็อกซ์และข้อความทั้งหมดในแซนด์บ็อกซ์

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

  • sandbox_id (จำเป็น): ID ของแซนด์บ็อกซ์ (ชื่อแทนแบบเดิม: inbox_id)

clean-sandbox

ลบข้อความทั้งหมดออกจากแซนด์บ็อกซ์โดยไม่ลบตัวแซนด์บ็อกซ์

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

  • sandbox_id (จำเป็น): ID ของแซนด์บ็อกซ์ (ชื่อแทนแบบเดิม: inbox_id)

list-sandboxes

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

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

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

mark-sandbox-as-read

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

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

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

reset-sandbox-credentials

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

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

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

enable-sandbox-email-address

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

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

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

reset-sandbox-email-address

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

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

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

forward-sandbox-message

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

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

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

update-sandbox-message

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

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

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

delete-sandbox-message

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

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

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

get-sandbox-message-spam-score

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

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

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

get-sandbox-message-html-analysis

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

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

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

get-sandbox-message-headers

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

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

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

get-sandbox-message-html

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

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

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

get-sandbox-message-text

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

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

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

get-sandbox-message-raw

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

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

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

get-sandbox-message-eml

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

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

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

get-sandbox-message-html-source

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

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

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

list-sandbox-attachments

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

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

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

get-sandbox-attachment

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

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

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

list-domains

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

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

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

get-domain

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

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

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

create-domain

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

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

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

update-domain

อัปเดตการตั้งค่าการติดตามและอีเมลขาเข้าของโดเมน

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

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

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

delete-domain

ลบโดเมน

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

  • domain_id (จำเป็น): ID ของโดเมนที่จะลบ (ชื่อแทนเดิม: sending_domain_id)

send-domain-setup-instructions

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

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

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

get-company-info

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

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

  • domain_id (จำเป็น): ID ของโดเมน (ชื่อแทนเดิม: sending_domain_id)

create-company-info

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

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

  • domain_id (จำเป็น): ID ของโดเมน (ชื่อแทนเดิม: sending_domain_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

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

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

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

list-suppressions

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

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

  • 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

แสดงที่อยู่อีเมลที่ยกเว้นจากการติดตามการเปิดและการคลิก ส่งคืนสูงสุด 1000 รายการต่อการเรียกใช้

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

  • 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

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

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

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

get-webhook

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

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

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

create-webhook

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

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

  • url (จำเป็น): URL ที่ Mailtrap จะใช้ POST เหตุการณ์เว็บฮุกไป
  • 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 ของโดเมนที่จะกำหนดขอบเขตให้เว็บฮุกนี้
  • inbound_inbox_id (ไม่บังคับ, เฉพาะ inbound_receiving): ID ของกล่องจดหมายขาเข้าที่เชื่อมโยงกับเว็บฮุกนี้ หากไม่ระบุ จะใช้กับกล่องจดหมายทั้งหมดในบัญชี

update-webhook

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

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

  • webhook_id (จำเป็น): ID ของเว็บฮุกที่จะอัปเดต
  • url (ไม่บังคับ): URL เว็บฮุกใหม่
  • active (ไม่บังคับ, บูลีน): เปิดหรือปิดใช้งานเว็บฮุก
  • 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 ของกล่องจดหมายขาเข้าที่เชื่อมโยงกับเว็บฮุกนี้

delete-webhook

ลบเว็บฮุกตาม ID อย่างถาวร ส่งคืนระเบียนเว็บฮุกที่ลบแล้ว

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

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

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 ส่งข้อมูลดังกล่าวกลับมา มิฉะนั้นจะส่งคืนเพย์โหลดการยืนยัน

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

  • 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 (จำเป็น): ชื่อที่แสดง (เช่น "ชื่อ")
  • merge_tag (จำเป็น): ชื่อ placeholder ที่ไม่ซ้ำกัน (เช่น 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-email-campaigns

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

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

  • token (ไม่บังคับ): หมายเลขหน้าที่ต้องการเรียกดู (การแบ่งหน้าด้วย page-token) ค่าเริ่มต้นคือ 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 ของโดเมนที่ยืนยันแล้วซึ่งใช้กับแคมเปญ ตามที่ส่งคืนโดย list-domains
  • from_local_part (จำเป็น): ส่วน local (ก่อน @) ของที่อยู่ From
  • template_attributes (จำเป็น): เทมเพลตอีเมลแบบอินไลน์ ประกอบด้วย:
    • subject (จำเป็น): บรรทัดหัวเรื่องอีเมล (สูงสุด 255 อักขระ) รองรับ merge tags เช่น Hi {{first_name}}
    • body_html (ไม่บังคับ): เนื้อหา HTML (การออกแบบ) จำเป็นก่อนกำหนดเวลาหรือเริ่มแคมเปญได้ ใส่ลิงก์ยกเลิกการสมัครผ่าน anchor ที่มี href ซึ่งมี placeholder __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 ปัจจุบันเข้าถึงได้ พร้อมระดับการเข้าถึงของแต่ละบัญชี ใช้งานได้โดยไม่ต้องมี MAILTRAP_ACCOUNT_ID จึงใช้ค้นหา ID บัญชีของคุณได้

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

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

get-billing-usage

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

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

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

list-account-accesses

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

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

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

remove-account-access

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

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

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

get-permission-resources

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

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

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

bulk-update-permissions

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

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

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

list-api-tokens

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

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

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

create-api-token

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

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

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

get-api-token

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

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

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

reset-api-token

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

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

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

delete-api-token

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

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

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

list-sub-accounts

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

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

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

create-sub-account

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

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

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

delete-sub-account

ลบบัญชีย่อยตาม ID อย่างถาวร พร้อมลบข้อมูลทั้งหมดของบัญชีนั้น การลบบัญชีย่อยรายการสุดท้ายจะลบองค์กรด้วย การเรียกซ้ำจะส่งคืน 404 หากมีการลบบัญชีย่อยเดียวกันพร้อมกัน จะส่งคืน 409 ต้องมีตัวแปรสภาพแวดล้อม MAILTRAP_ORGANIZATION_ID และสิทธิ์ผู้ดูแลระบบขององค์กร อีกทั้งองค์กรต้องเปิดใช้ฟีเจอร์ Organization & Sub-accounts (มิฉะนั้นจะส่งคืน 403)

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

  • sub_account_id (จำเป็น): ID ของบัญชีย่อยที่ต้องการลบ

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 (ไม่บังคับ): ผูกกับโดเมนที่กำหนดเอง (กล่องจดหมายขาเข้าที่รับอีเมลทุกฉบับ) เว้นว่างไว้สำหรับกล่องจดหมายขาเข้าที่โฮสต์โดย Mailtrap

update-inbound-inbox

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

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

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

delete-inbound-inbox

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

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

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

list-inbound-messages

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

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

  • inbox_id (จำเป็น): ID ของกล่องจดหมายขาเข้า
  • last_id (ไม่บังคับ): เคอร์เซอร์แบ่งหน้าจาก 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

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

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

  • inbox_id (จำเป็น): ID ของกล่องจดหมายขาเข้า
  • last_id (ไม่บังคับ): เคอร์เซอร์แบ่งหน้าจาก last_id ของการตอบกลับก่อนหน้า
  • search (ไม่บังคับ): ข้อความที่ไม่แยกตัวพิมพ์เล็กและใหญ่ ซึ่งใช้ค้นหาในหัวเรื่องของเธรดและที่อยู่ from/to/cc/bcc ของข้อความในเธรด ส่งค่าเดิมเมื่อแบ่งหน้า

get-inbound-thread

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

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

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

delete-inbound-thread

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

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

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

list-inbound-forward-rules

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

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

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

get-inbound-forward-rule

ดึงกฎการส่งต่อขาเข้าหนึ่งรายการตาม ID ส่งคืนระเบียนกฎฉบับเต็ม รวมถึงเงื่อนไขและปลายทาง ในรูปแบบ JSON

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

  • inbox_id (จำเป็น): ID ของกล่องจดหมายขาเข้า
  • forward_rule_id (จำเป็น): ID ของกฎการส่งต่อ

create-inbound-forward-rule

สร้างกฎการส่งต่อในกล่องจดหมายขาเข้า ข้อความที่ได้รับซึ่งตรงกับเงื่อนไขทั้งหมดจะถูกส่งต่อไปยังปลายทางของกฎ

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

  • inbox_id (จำเป็น): ID ของกล่องจดหมายขาเข้า
  • name (จำเป็น): ชื่อกฎ ซึ่งต้องไม่ซ้ำกันภายในกล่องจดหมายขาเข้า
  • conditions (ไม่บังคับ): อาร์เรย์ของ { match_type, operator, value?, header_key? } โดย match_type คือ sender, recipient หรือ header; operator คือ equal, not_equal, contains, starts_with, ends_with, empty หรือ not_empty (empty/not_empty ใช้ได้เฉพาะกับ header และไม่รับ value); ต้องระบุ header_key สำหรับ header เว้นว่างหรือส่ง [] เพื่อให้ตรงกับทุกข้อความ
  • destinations (ไม่บังคับ): อาร์เรย์ของ { email } สำหรับส่งต่อข้อความที่ตรงกัน

update-inbound-forward-rule

อัปเดตกฎการส่งต่อขาเข้า โดยจะเปลี่ยนเฉพาะฟิลด์ที่ระบุ หากระบุอาร์เรย์ conditions หรือ destinations ระบบจะแทนที่ชุดทั้งหมด

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

  • inbox_id (จำเป็น): ID ของกล่องจดหมายขาเข้า
  • forward_rule_id (จำเป็น): ID ของกฎการส่งต่อ
  • name (ไม่บังคับ): ชื่อกฎใหม่
  • conditions (ไม่บังคับ): ชุดเงื่อนไขที่ใช้แทนชุดเดิม (มีรูปแบบเดียวกับตอนสร้าง); [] จะลบเงื่อนไขทั้งหมด ทำให้กฎตรงกับทุกข้อความ
  • destinations (ไม่บังคับ): ชุดปลายทางที่ใช้แทนชุดเดิม; [] จะลบปลายทางทั้งหมด

delete-inbound-forward-rule

ลบกฎการส่งต่อขาเข้าอย่างถาวร

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

  • inbox_id (จำเป็น): ID ของกล่องจดหมายขาเข้า
  • forward_rule_id (จำเป็น): ID ของกฎการส่งต่อ

การพัฒนา

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

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

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

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

{
  "mcpServers": {
    "mailtrap": {
      "command": "node",
      "args": ["/path/to/mailtrap-mcp/dist/index.js"],
      "env": {
        "MAILTRAP_API_TOKEN": "your_mailtrap_api_token",
        "DEFAULT_FROM_EMAIL": "your_sender@example.com",
        "MAILTRAP_ACCOUNT_ID": "your_account_id",
        "MAILTRAP_SANDBOX_ID": "your_sandbox_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": "22.14.0",
        "MAILTRAP_API_TOKEN": "your_mailtrap_api_token",
        "DEFAULT_FROM_EMAIL": "your_sender@example.com",
        "MAILTRAP_ACCOUNT_ID": "your_account_id",
        "MAILTRAP_SANDBOX_ID": "your_sandbox_id"
      }
    }
  }
}

VS Code

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

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

การทดสอบ

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

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

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

npm run build

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

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

npm run dev

Inspector จะแสดง URL เช่น http://localhost:6274 เปิด URL นั้น สลับไปที่แท็บ 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-domain-setup-instructions \
  --tool-arg 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 ไม่ทำงาน: ระบุ sandbox_id ในการเรียกใช้เครื่องมือ (หรือ test_inbox_id แบบเดิมในเครื่องมือส่ง/แสดงรายการ/แสดงข้อความ) หรือตั้งค่า env MAILTRAP_SANDBOX_ID
  3. ข้อผิดพลาดหมดเวลา: ตรวจสอบการเชื่อมต่อเครือข่ายและสถานะ API ของ Mailtrap
  4. ข้อผิดพลาดในการตรวจสอบความถูกต้อง: ตรวจสอบว่าได้ระบุฟิลด์ที่จำเป็นทั้งหมดแล้ว

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

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

ใบอนุญาต

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

หลักจรรยาบรรณ

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