Mailtrap MCP Server
ทางการผสานการทำงานกับ Mailtrap Email API
เอกสาร
MCP Mailtrap Server
เซิร์ฟเวอร์ MCP ที่ให้เครื่องมือสำหรับการส่งและทดสอบในแซนด์บ็อกซ์ผ่าน Mailtrap
ข้อกำหนดเบื้องต้น
ก่อนใช้เซิร์ฟเวอร์ MCP นี้ คุณต้อง:
- สร้างบัญชี Mailtrap
- ยืนยันโดเมนของคุณ
- รับโทเค็น API ของคุณจาก การตั้งค่า Mailtrap API
- รับ Account ID ของคุณจาก การจัดการบัญชี Mailtrap
ตัวแปรสภาพแวดล้อมที่จำเป็น:
MAILTRAP_API_TOKEN- จำเป็นสำหรับฟังก์ชันการทำงานทั้งหมดMAILTRAP_ACCOUNT_ID- จำเป็นสำหรับเทมเพลต สถิติ บันทึกอีเมล รายการ/แสดงแซนด์บ็อกซ์ และโดเมนผู้ส่ง เป็นทางเลือกสำหรับ send-email และ send-sandbox-email เท่านั้น
ทางเลือก (สามารถส่งเป็นพารามิเตอร์ของเครื่องมือแทนได้):
DEFAULT_FROM_EMAIL- อีเมลผู้ส่งเริ่มต้นเมื่อไม่ได้ระบุfromให้กับ send-email หรือ send-sandbox-email เปิดใช้งานการเปลี่ยนผู้ส่งต่อการเรียกผ่านพารามิเตอร์fromMAILTRAP_TEST_INBOX_ID- ID กล่องจดหมายทดสอบเริ่มต้นสำหรับเครื่องมือแซนด์บ็อกซ์เมื่อไม่ได้ระบุtest_inbox_idเปิดใช้งานการสลับระหว่างกล่องจดหมายต่อการเรียกผ่านพารามิเตอร์test_inbox_idMAILTRAP_SANDBOX_ID- ID แซนด์บ็อกซ์เริ่มต้นสำหรับเครื่องมือแซนด์บ็อกซ์เมื่อไม่ได้ระบุsandbox_idเปิดใช้งานการสลับระหว่างแซนด์บ็อกซ์ต่อการเรียกผ่านพารามิเตอร์sandbox_idMAILTRAP_ORGANIZATION_ID- จำเป็นสำหรับเครื่องมือองค์กร (list-sub-accounts,create-sub-account)MAILTRAP_ORGANIZATION_API_TOKEN- โทเค็น API ที่กำหนดขอบเขตองค์กร จำเป็นสำหรับเครื่องมือองค์กร (แยกจากMAILTRAP_API_TOKEN)
การติดตั้งด่วน
Smithery CLI
Smithery เป็นตัวติดตั้งและจัดการรีจิสทรีสำหรับเซิร์ฟเวอร์ MCP ที่ทำงานร่วมกับไคลเอนต์ AI ทั้งหมด
npx @smithery/cli install mailtrap
Smithery จัดการการกำหนดค่าไคลเอนต์โดยอัตโนมัติและมีกระบวนการตั้งค่าแบบโต้ตอบ เป็นวิธีที่ง่ายที่สุดในการเริ่มต้นใช้งานเซิร์ฟเวอร์ MCP ในเครื่อง
การตั้งค่า
Claude Desktop
ใช้ MCPB เพื่อติดตั้งเซิร์ฟเวอร์ Mailtrap คุณสามารถค้นหาไฟล์เหล่านั้นได้ใน Releases
ดาวน์โหลดไฟล์ .MCPB และเปิด หากคุณมี Claude Desktop - มันจะเปิดและแนะนำให้กำหนดค่า
Claude Desktop หรือ Cursor
เพิ่มการกำหนดค่าต่อไปนี้:
{
"mcpServers": {
"mailtrap": {
"command": "npx",
"args": ["-y", "mcp-mailtrap"],
"env": {
"MAILTRAP_API_TOKEN": "your_mailtrap_api_token",
"DEFAULT_FROM_EMAIL": "[email protected]",
"MAILTRAP_ACCOUNT_ID": "your_account_id",
"MAILTRAP_TEST_INBOX_ID": "your_test_inbox_id"
}
}
}
}
หากคุณใช้ asdf สำหรับการจัดการ Node.js คุณต้องใช้พาธสัมบูรณ์ไปยังไฟล์ปฏิบัติการ (ตัวอย่างสำหรับ Mac)
{
"mcpServers": {
"mailtrap": {
"command": "/Users/<username>/.asdf/shims/npx",
"args": ["-y", "mcp-mailtrap"],
"env": {
"PATH": "/Users/<username>/.asdf/shims:/usr/bin:/bin",
"ASDF_DIR": "/opt/homebrew/opt/asdf/libexec",
"ASDF_DATA_DIR": "/Users/<username>/.asdf",
"ASDF_NODEJS_VERSION": "20.6.1",
"MAILTRAP_API_TOKEN": "your_mailtrap_api_token",
"DEFAULT_FROM_EMAIL": "[email protected]",
"MAILTRAP_ACCOUNT_ID": "your_account_id",
"MAILTRAP_TEST_INBOX_ID": "your_test_inbox_id"
}
}
}
}
ตำแหน่งไฟล์กำหนดค่า Claude Desktop
Mac: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
ตำแหน่งไฟล์กำหนดค่า Cursor
Mac: ~/.cursor/mcp.json
Windows: %USERPROFILE%\.cursor\mcp.json
VS Code
การเปลี่ยนการกำหนดค่าด้วยตนเอง
รันใน Command Palette: Preferences: Open User Settings (JSON)
จากนั้นในไฟล์การตั้งค่า เพิ่มการกำหนดค่าต่อไปนี้:
{
"mcp": {
"servers": {
"mailtrap": {
"command": "npx",
"args": ["-y", "mcp-mailtrap"],
"env": {
"MAILTRAP_API_TOKEN": "your_mailtrap_api_token",
"DEFAULT_FROM_EMAIL": "[email protected]",
"MAILTRAP_ACCOUNT_ID": "your_account_id",
"MAILTRAP_TEST_INBOX_ID": "your_test_inbox_id"
}
}
}
}
}
[!TIP] อย่าลืมรีสตาร์ทเซิร์ฟเวอร์ MCP ของคุณหลังจากเปลี่ยนส่วน "env"
MCP Bundle (MCPB)
สำหรับการติดตั้งง่ายในโฮสต์ที่รองรับ MCP Bundles คุณสามารถแจกจ่ายไฟล์บันเดิล .mcpb
# Build TypeScript and pack the MCPB bundle
npm run mcpb:pack
# Inspect bundle metadata
npm run mcpb:info
# Sign the bundle for distribution (optional)
npm run mcpb:sign
สิ่งนี้สร้าง mailtrap-mcp.mcpb โดยใช้ที่เก็บ manifest.json และอาร์ติแฟกต์ที่สร้างใน dist/
การใช้งาน
เมื่อกำหนดค่าแล้ว คุณสามารถขอให้เอเจนต์ส่งอีเมลและจัดการเทมเพลตได้ ตัวอย่างเช่น:
การดำเนินการส่งอีเมล:
- "ส่งอีเมลถึง [email protected] ด้วยหัวเรื่อง 'Meeting Tomorrow' และข้อความเตือนที่เป็นมิตรเกี่ยวกับการประชุมที่กำลังจะมาถึงของเรา"
- "ส่งอีเมล [email protected] เกี่ยวกับการอัปเดตโครงการ และ CC ทีมที่ [email protected]"
- "ส่งเทมเพลตต้อนรับ (uuid
b81aabcd-1a1e-41cf-91b6-eca0254b3d96) ถึง [email protected] ด้วยตัวแปร{ name: 'Alex' }" - "ส่งอีเมลแซนด์บ็อกซ์ถึง [email protected] ด้วยหัวเรื่อง 'Test Template' เพื่อดูตัวอย่างว่าอีเมลต้อนรับของเรามีลักษณะอย่างไร"
บันทึกอีเมล (ดีบักการจัดส่ง):
- "แสดงรายการบันทึกอีเมลที่ส่งล่าสุดของฉัน"
- "แสดงบันทึกอีเมลสำหรับอีเมลที่ส่งถึง [email protected]"
- "รับข้อความบันทึกอีเมลสำหรับ ID abc-123-uuid เพื่อตรวจสอบสถานะการจัดส่ง"
สถิติการส่ง:
- "รับสถิติการส่งสำหรับเดือนมกราคม 2025"
- "แสดงอัตราการจัดส่งแยกตามโดเมนสำหรับเดือนที่แล้ว"
- "สถิติอีเมลของฉันตามหมวดหมู่ตั้งแต่วันที่ 2025-01-01 ถึง 2025-01-31 คืออะไร"
การดำเนินการแซนด์บ็อกซ์:
- "รับข้อความทั้งหมดจากกล่องจดหมายแซนด์บ็อกซ์ของฉัน"
- "แสดงหน้าแรกของข้อความแซนด์บ็อกซ์"
- "ค้นหาข้อความที่มี 'test' ในกล่องจดหมายแซนด์บ็อกซ์ของฉัน"
- "แสดงรายละเอียดของข้อความแซนด์บ็อกซ์ที่มี ID 5159037506"
การดำเนินการเทมเพลต:
- "แสดงรายการเทมเพลตอีเมลทั้งหมดในบัญชี Mailtrap ของฉัน"
- "สร้างเทมเพลตอีเมลใหม่ชื่อ 'Welcome Email' ด้วยหัวเรื่อง 'Welcome to our platform!'"
- "อัปเดตเทมเพลตที่มี ID 12345 เพื่อเปลี่ยนหัวเรื่องเป็น 'Updated Welcome Message'"
- "ลบเทมเพลตที่มี ID 67890"
โดเมนผู้ส่ง:
- "แสดงรายการโดเมนผู้ส่งของฉัน"
- "รับโดเมนผู้ส่งที่มี ID 3938"
- "สร้างโดเมนผู้ส่งสำหรับ example.com"
- "ลบโดเมนผู้ส่ง 3938"
- "รับโดเมนผู้ส่ง 3938 พร้อมคำแนะนำการตั้งค่า DNS"
เครื่องมือที่พร้อมใช้งาน
send-email
ส่งอีเมลธุรกรรมผ่าน Mailtrap รองรับสองโหมดที่แยกจากกัน — เนื้อหาแบบอินไลน์ (subject + text/html) หรือ แบบใช้เทมเพลต (template_uuid)
พารามิเตอร์:
from(ทางเลือก): ผู้ส่งเป็นสตริงอีเมลหรือ{ email, name? }หากไม่ได้ระบุ จะใช้DEFAULT_FROM_EMAILto(ทางเลือก): ผู้รับ — อีเมลเดียว/{ email, name? }หรืออาร์เรย์ เป็นทางเลือกหากระบุccหรือbcc; อย่างน้อยหนึ่งในto/cc/bccต้องมีผู้รับcc(ทางเลือก): อาร์เรย์ของผู้รับ CC (สตริงอีเมลหรือ{ email, name? }แต่ละรายการ)bcc(ทางเลือก): อาร์เรย์ของผู้รับ BCC (สตริงอีเมลหรือ{ email, name? }แต่ละรายการ)subject(มีเงื่อนไข): บรรทัดหัวเรื่องอีเมล จำเป็นสำหรับการส่งแบบอินไลน์; ต้องละเว้นเมื่อตั้งค่าtemplate_uuidtext(มีเงื่อนไข): ข้อความเนื้อหาอีเมล จำเป็น (พร้อมกับหรือแทนhtml) สำหรับการส่งแบบอินไลน์; ต้องละเว้นเมื่อตั้งค่าtemplate_uuidhtml(มีเงื่อนไข): เวอร์ชัน HTML ของเนื้อหาอีเมล จำเป็น (พร้อมกับหรือแทนtext) สำหรับการส่งแบบอินไลน์; ต้องละเว้นเมื่อตั้งค่าtemplate_uuidcategory(ทางเลือก): หมวดหมู่อีเมลสำหรับการติดตามและวิเคราะห์ ต้องละเว้นเมื่อตั้งค่าtemplate_uuidtemplate_uuid(ทางเลือก): ใช้เทมเพลตอีเมล Mailtrap แทนเนื้อหาแบบอินไลน์ เมื่อตั้งค่า ต้องละเว้นsubject/text/html/category(ตาม Mailtrap API)template_variables(ทางเลือก): ออบเจ็กต์ของตัวแปรที่แทนที่ลงในเทมเพลตที่อ้างอิงโดยtemplate_uuidอนุญาตร่วมกับtemplate_uuidเท่านั้น
batch-send-transactional-email
ส่งชุดอีเมลธุรกรรมในการเรียก Mailtrap API ครั้งเดียว (สตรีมการส่งเริ่มต้น) ฟิลด์ที่ใช้ร่วมกันไปที่ base; การแทนที่ต่อผู้รับไปใน requests[] แต่ละคำขอต้องมีผู้รับอย่างน้อยหนึ่งรายผ่าน to, cc หรือ bcc การแยกอินไลน์กับเทมเพลตเหมือนกับ send-email — ตรวจสอบหลังจากรวมฐานกับแต่ละคำขอ
พารามิเตอร์:
base(ทางเลือก): ออบเจ็กต์ที่มีฟิลด์ที่ใช้ร่วมกันทั่วทั้งชุดfrom(ทางเลือก): ผู้ส่งเป็นสตริงอีเมลหรือ{ email, name? }ตกกลับไปที่DEFAULT_FROM_EMAILreply_to(ทางเลือก): ที่อยู่ตอบกลับsubject/text/html/category(ทางเลือก, โหมดอินไลน์): เนื้อหาเริ่มต้นสำหรับทุกคำขอtemplate_uuid/template_variables(ทางเลือก, โหมดเทมเพลต): เทมเพลตเริ่มต้น + ตัวแปร แยกจากฟิลด์อินไลน์custom_variables(ทางเลือก): ตัวแปรกำหนดเองเริ่มต้น (ค่าสตริง)headers(ทางเลือก): ส่วนหัวกำหนดเองเริ่มต้น
requests(จำเป็น): อาร์เรย์ไม่ว่างของข้อความต่อผู้รับ แต่ละรายการมี:to(ทางเลือก): ผู้รับ — สตริง,{ email, name? }หรืออาร์เรย์ เป็นทางเลือกหากระบุccหรือbcc; อย่างน้อยหนึ่งในto/cc/bccต้องมีผู้รับcc,bcc,reply_to(ทางเลือก)- การแทนที่แบบอินไลน์ (
subject/text/html/category) หรือเทมเพลต (template_uuid/template_variables); ฟิลด์ใดที่ละเว้นจะตกกลับไปที่ค่าbaseที่ตรงกัน custom_variables,headers(ทางเลือก)
batch-send-bulk-email
ส่งชุดอีเมลจำนวนมากผ่าน API สตรีมจำนวนมากของ Mailtrap รูปร่าง base + requests[] การตรวจสอบ และกฎอินไลน์กับเทมเพลตเหมือนกับ batch-send-transactional-email — ข้อแตกต่างเพียงอย่างเดียวคือเครื่องมือนี้กำหนดเส้นทางการเรียกผ่านปลายทางจำนวนมากแทนที่จะเป็นธุรกรรม ดูพารามิเตอร์ด้านบน
list-email-logs
แสดงรายการบันทึกอีเมลที่ส่ง (ประวัติการจัดส่ง) พร้อมการแบ่งหน้าและตัวกรองที่เป็นทางเลือก ใช้เพื่อดีบักปัญหาการจัดส่งจาก IDE
พารามิเตอร์:
search_after(ทางเลือก): เคอร์เซอร์การแบ่งหน้าจากnext_page_cursorของการตอบกลับก่อนหน้าsent_after(ทางเลือก): วันที่/เวลา ISO 8601; เฉพาะบันทึกที่ส่งหลังจากเวลานี้sent_before(ทางเลือก): วันที่/เวลา ISO 8601; เฉพาะบันทึกที่ส่งก่อนเวลานี้from_email(ทางเลือก): กรองตามอีเมลผู้ส่ง; ใช้กับfrom_operator(ค่าเริ่มต้น: ci_equal)to_email(ทางเลือก): กรองตามอีเมลผู้รับ; ใช้กับto_operator(ค่าเริ่มต้น: ci_equal)status(ทางเลือก): กรองตามสถานะการจัดส่ง: delivered, not_delivered, enqueued, opted_out; ใช้กับstatus_operator(ค่าเริ่มต้น: equal)subject(ทางเลือก): กรองตามหัวเรื่องอีเมล; ใช้กับsubject_operator(ค่าเริ่มต้น: ci_contain) ใช้subject_operator: empty/not_empty เพื่อกรองตามการมีอยู่ของหัวเรื่องsending_domain_id(ทางเลือก): กรองตาม ID โดเมนผู้ส่ง (ตัวเลข); ใช้กับsending_domain_id_operator(ค่าเริ่มต้น: equal)sending_stream(ทางเลือก): กรองตามสตรีม: transactional หรือ bulk; ใช้กับsending_stream_operator(ค่าเริ่มต้น: equal)events(ทางเลือก): กรองตามประเภทเหตุการณ์: delivery, open, click, bounce, spam, unsubscribe, soft_bounce, reject, suspension; ใช้กับevents_operator(include_event / not_include_event)clicks_count/opens_count(ทางเลือก): กรองตามจำนวนคลิก/เปิด; ใช้กับ*_operator: equal, greater_than, less_thanclient_ip/sending_ip(ทางเลือก): กรองตาม IP; ใช้กับ*_operator: equal, not_equal, contain, not_containemail_service_provider_response(ทางเลือก): กรองตามข้อความตอบกลับของผู้ให้บริการ; ใช้กับ*_operator(ci_contain, ฯลฯ)email_service_provider(ทางเลือก): กรองตามผู้ให้บริการ (ตรงทั้งหมด); ใช้กับ*_operator: equal, not_equalrecipient_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_datesending_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_EMAILto(ไม่บังคับ): ผู้รับเป็นสตริงที่คั่นด้วยเครื่องหมายจุลภาค หรืออาร์เรย์ของสตริงอีเมล / ออบเจ็กต์{ email, name? }ไม่บังคับหากระบุccหรือbcc; อย่างน้อยหนึ่งในto/cc/bccต้องมีผู้รับcc(ไม่บังคับ): อาร์เรย์ของผู้รับสำเนาถึง (CC) (สตริงอีเมลหรือ{ email, name? }แต่ละรายการ)bcc(ไม่บังคับ): อาร์เรย์ของผู้รับสำเนาลับ (BCC) (สตริงอีเมลหรือ{ email, name? }แต่ละรายการ)subject(มีเงื่อนไข): หัวเรื่องอีเมล จำเป็นสำหรับการส่งแบบอินไลน์; ต้องละเว้นเมื่อตั้งค่าtemplate_uuidtext(มีเงื่อนไข): ข้อความเนื้อหาอีเมล จำเป็น (พร้อมกับหรือแทนhtml) สำหรับการส่งแบบอินไลน์; ต้องละเว้นเมื่อตั้งค่าtemplate_uuidhtml(มีเงื่อนไข): เวอร์ชัน HTML ของเนื้อหาอีเมล จำเป็น (พร้อมกับหรือแทนtext) สำหรับการส่งแบบอินไลน์; ต้องละเว้นเมื่อตั้งค่าtemplate_uuidcategory(ไม่บังคับ): หมวดหมู่อีเมลสำหรับการติดตาม ต้องละเว้นเมื่อตั้งค่าtemplate_uuidtemplate_uuid(ไม่บังคับ): ใช้เทมเพลตอีเมล Mailtrap แทนเนื้อหาแบบอินไลน์ เมื่อตั้งค่าแล้ว ต้องละเว้นsubject/text/html/categorytemplate_variables(ไม่บังคับ): ออบเจ็กต์ของตัวแปรที่แทนที่ลงในเทมเพลตที่อ้างอิงโดยtemplate_uuidอนุญาตเฉพาะร่วมกับtemplate_uuidเท่านั้น
[!NOTE] สำหรับเครื่องมือแซนด์บ็อกซ์ ให้ระบุ
test_inbox_idในการเรียกใช้เครื่องมือ หรือตั้งค่าตัวแปรสภาพแวดล้อมMAILTRAP_TEST_INBOX_IDคุณสามารถสลับระหว่างกล่องจดหมายต่อการเรียกได้โดยส่งtest_inbox_id
get-sandbox-messages
ดึงรายการข้อความจากกล่องจดหมายทดสอบ Mailtrap ของคุณ มีประโยชน์สำหรับตรวจสอบว่าอีเมลใดบ้างที่ได้รับในแซนด์บ็อกซ์ของคุณระหว่างการทดสอบ
พารามิเตอร์:
page(ไม่บังคับ): หมายเลขหน้าสำหรับการแบ่งหน้า (ขั้นต่ำ: 1)last_id(ไม่บังคับ): การแบ่งหน้าโดยใช้ ID ข้อความล่าสุด ส่งคืนข้อความหลังจาก ID ข้อความที่ระบุ (ขั้นต่ำ: 1)search(ไม่บังคับ): คำค้นหาเพื่อกรองข้อความ
[!NOTE] พารามิเตอร์ทั้งหมดเป็นทางเลือก หากไม่ระบุ จะส่งคืนหน้าข้อความแรกจากกล่องจดหมาย ใช้ page สำหรับการแบ่งหน้าแบบดั้งเดิม, last_id สำหรับการแบ่งหน้าแบบเคอร์เซอร์, หรือ search เพื่อกรองข้อความตามเนื้อหา
show-sandbox-email-message
แสดงข้อมูลรายละเอียดและเนื้อหาของข้อความอีเมลเฉพาะจากกล่องจดหมายทดสอบ Mailtrap ของคุณ รวมถึงเนื้อหา HTML และข้อความ
พารามิเตอร์:
message_id(จำเป็น): ID ของข้อความอีเมลแซนด์บ็อกซ์ที่จะดึงข้อมูล
[!NOTE] ใช้
get-sandbox-messagesก่อนเพื่อรับรายการข้อความและ ID ของข้อความเหล่านั้น จากนั้นใช้เครื่องมือนี้เพื่อดูเนื้อหาทั้งหมดของข้อความเฉพาะ
get-sandbox-project
รับโปรเจกต์แซนด์บ็อกซ์ตาม ID รวมถึงกล่องจดหมายและจำนวนอีเมล
พารามิเตอร์:
project_id(จำเป็น): ID ของโปรเจกต์ที่จะดึงข้อมูล
update-sandbox-project
เปลี่ยนชื่อโปรเจกต์แซนด์บ็อกซ์ที่มีอยู่
พารามิเตอร์:
project_id(จำเป็น): ID ของโปรเจกต์ที่จะอัปเดตname(จำเป็น): ชื่อใหม่สำหรับโปรเจกต์ (2–100 ตัวอักษร)
list-sandboxes
แสดงรายการแซนด์บ็อกซ์ทั้งหมดที่โทเค็น API เข้าถึงได้ในทุกโปรเจกต์
พารามิเตอร์:
- ไม่จำเป็นต้องมีพารามิเตอร์
mark-sandbox-as-read
ทำเครื่องหมายข้อความทั้งหมดในแซนด์บ็อกซ์ว่าอ่านแล้ว
พารามิเตอร์:
sandbox_id(จำเป็น): ID ของแซนด์บ็อกซ์ที่จะดำเนินการ
reset-sandbox-credentials
รีเซ็ตข้อมูลประจำตัว SMTP สำหรับแซนด์บ็อกซ์ ส่งคืนชื่อผู้ใช้/รหัสผ่านใหม่
พารามิเตอร์:
sandbox_id(จำเป็น): ID ของแซนด์บ็อกซ์ที่จะดำเนินการ
enable-sandbox-email-address
เปิดใช้งานที่อยู่รับอีเมลสำหรับแซนด์บ็อกซ์ (เปิดที่อยู่ Mailtrap ที่ส่งข้อความไปยังแซนด์บ็อกซ์ผ่าน SMTP)
พารามิเตอร์:
sandbox_id(จำเป็น): ID ของแซนด์บ็อกซ์ที่จะดำเนินการ
reset-sandbox-email-address
สร้างที่อยู่รับอีเมลใหม่สำหรับแซนด์บ็อกซ์
พารามิเตอร์:
sandbox_id(จำเป็น): ID ของแซนด์บ็อกซ์ที่จะดำเนินการ
forward-sandbox-message
ส่งต่อข้อความแซนด์บ็อกซ์ไปยังที่อยู่อีเมลภายนอก นับรวมในโควต้าการส่งต่อรายเดือนของคุณ
พารามิเตอร์:
sandbox_id(ไม่บังคับ): ID แซนด์บ็อกซ์ ถอยกลับไปใช้MAILTRAP_SANDBOX_IDmessage_id(จำเป็น): ID ของข้อความแซนด์บ็อกซ์ที่จะส่งต่อemail(จำเป็น): ที่อยู่อีเมลที่จะส่งต่อข้อความไปยัง
update-sandbox-message
ทำเครื่องหมายข้อความแซนด์บ็อกซ์ว่าอ่านแล้วหรือยังไม่ได้อ่าน
พารามิเตอร์:
sandbox_id(ไม่บังคับ): ID แซนด์บ็อกซ์ ถอยกลับไปใช้MAILTRAP_SANDBOX_IDmessage_id(จำเป็น): ID ของข้อความแซนด์บ็อกซ์ที่จะอัปเดตis_read(จำเป็น):trueทำเครื่องหมายว่าอ่านแล้ว,falseทำเครื่องหมายว่ายังไม่ได้อ่าน
delete-sandbox-message
ลบข้อความแซนด์บ็อกซ์เดี่ยว
พารามิเตอร์:
sandbox_id(ไม่บังคับ): ID แซนด์บ็อกซ์ ถอยกลับไปใช้MAILTRAP_SANDBOX_IDmessage_id(จำเป็น): ID ของข้อความแซนด์บ็อกซ์ที่จะลบ
get-sandbox-message-spam-score
รับรายงานสแปม SpamAssassin สำหรับข้อความแซนด์บ็อกซ์ (คะแนน, กฎ, รายงานฉบับเต็ม) ทางเลือกแบบสแตนด์อโลนแทน include_spam_report: true บน show-sandbox-email-message
พารามิเตอร์:
sandbox_id(ไม่บังคับ): ID แซนด์บ็อกซ์ ถอยกลับไปใช้MAILTRAP_SANDBOX_IDmessage_id(จำเป็น): ID ของข้อความแซนด์บ็อกซ์
get-sandbox-message-html-analysis
รับรายงานการวิเคราะห์ HTML สำหรับข้อความแซนด์บ็อกซ์ (คะแนนความเข้ากันได้ของไคลเอนต์, องค์ประกอบที่มีปัญหา) ทางเลือกแบบสแตนด์อโลนแทน include_html_analysis: true บน show-sandbox-email-message
พารามิเตอร์:
sandbox_id(ไม่บังคับ): ID แซนด์บ็อกซ์ ถอยกลับไปใช้MAILTRAP_SANDBOX_IDmessage_id(จำเป็น): ID ของข้อความแซนด์บ็อกซ์
get-sandbox-message-headers
รับส่วนหัวอีเมลที่แยกวิเคราะห์แล้วสำหรับข้อความแซนด์บ็อกซ์
พารามิเตอร์:
sandbox_id(ไม่บังคับ): ID แซนด์บ็อกซ์ ถอยกลับไปใช้MAILTRAP_SANDBOX_IDmessage_id(จำเป็น): ID ของข้อความแซนด์บ็อกซ์
get-sandbox-message-html
รับเนื้อหา HTML ที่เรนเดอร์แล้วของข้อความแซนด์บ็อกซ์
พารามิเตอร์:
sandbox_id(ไม่บังคับ): ID แซนด์บ็อกซ์ ถอยกลับไปใช้MAILTRAP_SANDBOX_IDmessage_id(จำเป็น): ID ของข้อความแซนด์บ็อกซ์
get-sandbox-message-text
รับเนื้อหาข้อความล้วนของข้อความแซนด์บ็อกซ์
พารามิเตอร์:
sandbox_id(ไม่บังคับ): ID แซนด์บ็อกซ์ ถอยกลับไปใช้MAILTRAP_SANDBOX_IDmessage_id(จำเป็น): ID ของข้อความแซนด์บ็อกซ์
get-sandbox-message-raw
รับข้อความดิบในรูปแบบ MIME (ส่วนหัว + เนื้อหา) สำหรับข้อความแซนด์บ็อกซ์
พารามิเตอร์:
sandbox_id(ไม่บังคับ): ID แซนด์บ็อกซ์ ถอยกลับไปใช้MAILTRAP_SANDBOX_IDmessage_id(จำเป็น): ID ของข้อความแซนด์บ็อกซ์
get-sandbox-message-eml
รับข้อความที่เรนเดอร์เป็นเพย์โหลดไฟล์ EML (เหมาะสำหรับแนบกับตั๋วหรือนำเข้าไปยังไคลเอนต์อีเมลอื่น)
พารามิเตอร์:
sandbox_id(ไม่บังคับ): ID แซนด์บ็อกซ์ ถอยกลับไปใช้MAILTRAP_SANDBOX_IDmessage_id(จำเป็น): ID ของข้อความแซนด์บ็อกซ์
get-sandbox-message-html-source
รับซอร์ส HTML ที่ยังไม่ได้เรนเดอร์ของข้อความแซนด์บ็อกซ์ (HTML ก่อนการแปลงใดๆ ทางฝั่ง Mailtrap เช่น การเขียนลิงก์ CID ใหม่)
พารามิเตอร์:
sandbox_id(ไม่บังคับ): ID แซนด์บ็อกซ์ ถอยกลับไปใช้MAILTRAP_SANDBOX_IDmessage_id(จำเป็น): ID ของข้อความแซนด์บ็อกซ์
list-sandbox-attachments
แสดงรายการไฟล์แนบทั้งหมดในข้อความแซนด์บ็อกซ์ (ชื่อไฟล์, ประเภทเนื้อหา, ขนาด, เส้นทางดาวน์โหลด)
พารามิเตอร์:
sandbox_id(ไม่บังคับ): ID แซนด์บ็อกซ์ ถอยกลับไปใช้MAILTRAP_SANDBOX_IDmessage_id(จำเป็น): ID ของข้อความแซนด์บ็อกซ์
get-sandbox-attachment
รับข้อมูลเมตาและ URL ดาวน์โหลดสำหรับไฟล์แนบเดี่ยว
พารามิเตอร์:
sandbox_id(ไม่บังคับ): ID แซนด์บ็อกซ์ ถอยกลับไปใช้MAILTRAP_SANDBOX_IDmessage_id(จำเป็น): ID ของข้อความแซนด์บ็อกซ์ที่มีไฟล์แนบattachment_id(จำเป็น): ID ของไฟล์แนบที่จะดึงข้อมูล
list-sending-domains
แสดงรายการโดเมนผู้ส่งและสถานะการยืนยัน DNS
พารามิเตอร์:
- ไม่จำเป็นต้องมีพารามิเตอร์
get-sending-domain
รับโดเมนผู้ส่งตาม ID และสถานะการยืนยัน (รวมถึงระเบียน DNS) สามารถรวมคำแนะนำการตั้งค่า DNS ได้โดยตั้งค่า include_setup_instructions เป็น true
พารามิเตอร์:
sending_domain_id(จำเป็น): ID โดเมนผู้ส่งinclude_setup_instructions(ไม่บังคับ): หากเป็นtrueให้ผนวกคำแนะนำการตั้งค่า DNS เข้ากับการตอบกลับ ค่าเริ่มต้น:false
create-sending-domain
สร้างโดเมนผู้ส่งใหม่ หลังจากสร้างแล้ว ให้เพิ่มระเบียน DNS เพื่อยืนยันโดเมน (ใช้ get-sending-domain พร้อม include_setup_instructions: true เพื่อดูระเบียน)
พารามิเตอร์:
domain_name(จำเป็น): ชื่อโดเมน (เช่น example.com)
delete-sending-domain
ลบโดเมนผู้ส่ง
พารามิเตอร์:
sending_domain_id(จำเป็น): ID โดเมนผู้ส่งที่จะลบ
send-sending-domain-setup-instructions
ส่งคำแนะนำการตั้งค่า DNS ทางอีเมลสำหรับโดเมนผู้ส่งไปยังที่อยู่ที่กำหนด มีประโยชน์สำหรับการส่งต่อระเบียน DNS ไปยังเพื่อนร่วมทีม DevOps
พารามิเตอร์:
sending_domain_id(จำเป็น): ID โดเมนผู้ส่งemail(จำเป็น): ที่อยู่อีเมลที่จะส่งคำแนะนำการตั้งค่า DNS ไปยัง
list-suppressions
แสดงรายการหรือค้นหาการระงับ (hard bounce, การร้องเรียนสแปม, การยกเลิกการสมัคร, การนำเข้าด้วยตนเอง) ส่งคืนผลลัพธ์สูงสุด 1,000 รายการต่อการเรียก
พารามิเตอร์:
email(ไม่บังคับ): ตัวกรองอีเมล ส่งคืนเฉพาะการระงับที่ตรงกับที่อยู่นี้
delete-suppression
ลบการระงับตาม ID Mailtrap จะกลับมาส่งอีเมลไปยังที่อยู่นี้อีกครั้ง เว้นแต่จะถูกระงับอีกครั้ง
พารามิเตอร์:
suppression_id(จำเป็น): ID ของการระงับที่จะลบ
list-webhooks
แสดงรายการ webhook ทั้งหมดที่กำหนดค่าไว้สำหรับบัญชี ส่งคืนระเบียน webhook แบบเต็มในรูปแบบ JSON
พารามิเตอร์:
- ไม่จำเป็นต้องมีพารามิเตอร์
get-webhook
รับ webhook เดียวตาม ID ส่งคืนระเบียน webhook แบบเต็มในรูปแบบ JSON หมายเหตุ: signing_secret จะ ไม่ ถูกส่งคืนที่นี่ — จะมีให้เฉพาะในการตอบกลับจาก create-webhook เท่านั้น
พารามิเตอร์:
webhook_id(จำเป็น): ID ของ webhook ที่จะดึงข้อมูล
create-webhook
สร้าง webhook การตอบกลับประกอบด้วย signing_secret สำหรับตรวจสอบลายเซ็น payload ของ webhook — ความลับนี้จะถูกส่งคืน เฉพาะเมื่อสร้าง เท่านั้น ดังนั้นให้จัดเก็บไว้ตอนนี้ หากทำหาย ให้สร้าง webhook ใหม่
พารามิเตอร์:
url(จำเป็น): URL ที่ Mailtrap จะ POST เหตุการณ์ webhook ไปยังwebhook_type(จำเป็น):"email_sending"หรือ"audit_log"active(ไม่บังคับ, boolean): ค่าเริ่มต้นคือtruepayload_format(ไม่บังคับ):"json"หรือ"jsonlines"ค่าเริ่มต้นคือ"json"sending_stream(ไม่บังคับ, เฉพาะemail_sending):"transactional"หรือ"bulk"event_types(ไม่บังคับ, เฉพาะemail_sending): อาร์เรย์ของdelivery,soft_bounce,bounce,suspension,unsubscribe,open,spam_complaint,click,rejectdomain_id(ไม่บังคับ, เฉพาะemail_sending): ID โดเมนผู้ส่งเพื่อกำหนดขอบเขต webhook นี้
update-webhook
อัปเดตฟิลด์ที่เปลี่ยนแปลงได้ของ webhook webhook_type, sending_stream และ domain_id ไม่สามารถเปลี่ยนแปลงได้หลังจากการสร้าง — สร้าง webhook ใหม่หากคุณต้องการเปลี่ยนแปลงสิ่งเหล่านั้น
พารามิเตอร์:
webhook_id(จำเป็น): ID ของ webhook ที่จะอัปเดตurl(ไม่บังคับ): URL webhook ใหม่active(ไม่บังคับ, boolean): เปิดหรือปิดใช้งาน webhookpayload_format(ไม่บังคับ):"json"หรือ"jsonlines"event_types(ไม่บังคับ, เฉพาะemail_sending): อาร์เรย์ของdelivery,soft_bounce,bounce,suspension,unsubscribe,open,spam_complaint,click,reject
delete-webhook
ลบ webhook อย่างถาวรตาม ID ส่งคืนระเบียน webhook ที่ถูกลบ
พารามิเตอร์:
webhook_id(จำเป็น): ID ของ webhook ที่จะลบ
get-contact
รับผู้ติดต่อตาม ID หรืออีเมล ส่งคืนระเบียนผู้ติดต่อแบบเต็ม (การเป็นสมาชิกรายการ สถานะ ฟิลด์ที่กำหนดเอง)
พารามิเตอร์:
contact_identifier(จำเป็น): ID ผู้ติดต่อหรือที่อยู่อีเมล
create-contact
สร้างผู้ติดต่อใหม่
พารามิเตอร์:
email(จำเป็น): ที่อยู่อีเมลfields(ไม่บังคับ): ค่าฟิลด์ที่กำหนดเองที่คีย์โดยแท็กผสาน (เช่นfirst_name) ค่าสตริง ตัวเลข หรือ booleanlist_ids(ไม่บังคับ): ID ของรายชื่อผู้ติดต่อที่จะสมัครผู้ติดต่อนี้unsubscribed(ไม่บังคับ, boolean): สร้างผู้ติดต่อในสถานะunsubscribed
update-contact
อัปเดตผู้ติดต่อที่มีอยู่ซึ่งระบุโดย ID หรืออีเมล list_ids แทนที่ชุดสมาชิกทั้งหมดของผู้ติดต่อ list_ids_included/list_ids_excluded เพิ่ม/ลบโดยไม่รบกวนส่วนที่เหลือ
พารามิเตอร์:
contact_identifier(จำเป็น): ID ผู้ติดต่อหรืออีเมลemail(ไม่บังคับ): ที่อยู่อีเมลใหม่fields(ไม่บังคับ): ค่าฟิลด์ที่กำหนดเองที่คีย์โดยแท็กผสานlist_ids(ไม่บังคับ): แทนที่ชุดสมาชิกด้วยรายการที่แน่นอนนี้list_ids_included(ไม่บังคับ): ID รายการที่จะเพิ่ม (เพิ่มเติม)list_ids_excluded(ไม่บังคับ): ID รายการที่จะลบunsubscribed(ไม่บังคับ, boolean): ตั้งค่าเป็นunsubscribed(จริง) หรือsubscribed(เท็จ)
delete-contact
ลบผู้ติดต่ออย่างถาวรตาม ID หรืออีเมล ส่งคืนระเบียนผู้ติดต่อที่ถูกลบเมื่อ API ตอบกลับด้วยข้อมูลดังกล่าว มิฉะนั้นจะส่งคืน payload การยืนยัน
พารามิเตอร์:
contact_identifier(จำเป็น): ID ผู้ติดต่อหรืออีเมล
create-contact-event
บันทึกเหตุการณ์ผู้ติดต่อกับผู้ติดต่อ (ตาม ID หรืออีเมล) ใช้เพื่อทริกเกอร์ระบบอัตโนมัติของรายชื่อผู้ติดต่อ
พารามิเตอร์:
contact_identifier(จำเป็น): ID ผู้ติดต่อหรืออีเมลname(จำเป็น): ชื่อเหตุการณ์ (ตรงกับทริกเกอร์ระบบอัตโนมัติ)params(จำเป็น): ออบเจ็กต์ของคู่คีย์/ค่าที่กำหนดเอง ค่าอาจเป็นสตริง ตัวเลข boolean หรือ null
list-contact-lists
แสดงรายการรายชื่อผู้ติดต่อทั้งหมดสำหรับบัญชี
พารามิเตอร์:
- ไม่จำเป็นต้องมีพารามิเตอร์
get-contact-list
รับรายชื่อผู้ติดต่อตาม ID
พารามิเตอร์:
list_id(จำเป็น): ID ของรายชื่อผู้ติดต่อที่จะดึงข้อมูล
create-contact-list
สร้างรายชื่อผู้ติดต่อใหม่
พารามิเตอร์:
name(จำเป็น): ชื่อสำหรับรายการใหม่
update-contact-list
เปลี่ยนชื่อรายชื่อผู้ติดต่อที่มีอยู่
พารามิเตอร์:
list_id(จำเป็น): ID ของรายชื่อผู้ติดต่อname(จำเป็น): ชื่อใหม่สำหรับรายการ
delete-contact-list
ลบรายชื่อผู้ติดต่ออย่างถาวรตาม ID
พารามิเตอร์:
list_id(จำเป็น): ID ของรายชื่อผู้ติดต่อที่จะลบ
list-contact-fields
แสดงรายการคำจำกัดความฟิลด์ผู้ติดต่อทั้งหมดสำหรับบัญชี
พารามิเตอร์:
- ไม่จำเป็นต้องมีพารามิเตอร์
get-contact-field
รับคำจำกัดความฟิลด์ผู้ติดต่อตาม ID
พารามิเตอร์:
field_id(จำเป็น): ID ของฟิลด์ผู้ติดต่อ
create-contact-field
สร้างคำจำกัดความฟิลด์ผู้ติดต่อใหม่ merge_tag ต้องไม่ซ้ำกันภายในบัญชีและใช้เป็นชื่อตัวแทนในตัวแปรเทมเพลต
พารามิเตอร์:
name(จำเป็น): ชื่อที่แสดง (เช่น "ชื่อจริง")merge_tag(จำเป็น): ชื่อตัวแทนที่ไม่ซ้ำกัน (เช่นfirst_name)data_type(จำเป็น): หนึ่งในtext,number,boolean,date
update-contact-field
อัปเดตคำจำกัดความฟิลด์ผู้ติดต่อ สามารถเปลี่ยนแปลงชุดค่าผสมใดๆ ของ name, merge_tag และ data_type ได้
พารามิเตอร์:
field_id(จำเป็น): ID ของฟิลด์ผู้ติดต่อname(ไม่บังคับ): ชื่อที่แสดงใหม่merge_tag(ไม่บังคับ): แท็กผสานใหม่ (ต้องไม่ซ้ำกัน)data_type(ไม่บังคับ): หนึ่งในtext,number,boolean,date
delete-contact-field
ลบคำจำกัดความฟิลด์ผู้ติดต่ออย่างถาวรตาม ID
พารามิเตอร์:
field_id(จำเป็น): ID ของฟิลด์ผู้ติดต่อที่จะลบ
create-contact-import
นำเข้าผู้ติดต่อจำนวนมาก ส่งคืนระเบียนงานนำเข้า ตรวจสอบสถานะด้วย get-contact-import
พารามิเตอร์:
contacts(จำเป็น): อาร์เรย์ของรายการผู้ติดต่อ แต่ละรายการต้องการ:email(จำเป็น): ที่อยู่อีเมลผู้ติดต่อfields(ไม่บังคับ): ค่าฟิลด์ที่กำหนดเองที่คีย์โดยแท็กผสาน (ค่าสตริงหรือตัวเลข)list_ids_included(ไม่บังคับ): ID รายการที่จะเพิ่มผู้ติดต่อเข้าไปlist_ids_excluded(ไม่บังคับ): ID รายการที่จะลบผู้ติดต่อออก
get-contact-import
รับสถานะของงานนำเข้าผู้ติดต่อ (สร้าง/เริ่ม/เสร็จสิ้น/ล้มเหลว) พร้อมจำนวนที่สร้าง/อัปเดต/เกินขีดจำกัด
พารามิเตอร์:
import_id(จำเป็น): ID ของงานนำเข้าผู้ติดต่อ
create-contact-export
ส่งออกผู้ติดต่อที่ตรงกับชุดตัวกรองที่รวมด้วย AND ส่งคืนระเบียนงานส่งออก ตรวจสอบสถานะด้วย get-contact-export เพื่อรับ URL ดาวน์โหลดเมื่อ status เป็น finished
พารามิเตอร์:
filters(จำเป็น): อาร์เรย์ของออบเจ็กต์ตัวกรอง แต่ละรายการมี:name(จำเป็น): ฟิลด์ที่จะกรอง (list_id,subscription_status,emailฯลฯ)operator(จำเป็น): หนึ่งในequal,not_equal,contains,not_contains,is_empty,is_not_emptyvalue(จำเป็น): ค่าเปรียบเทียบ (สตริง ตัวเลข boolean หรืออาร์เรย์)
get-contact-export
รับสถานะของงานส่งออกผู้ติดต่อ เมื่อ status เป็น finished ฟิลด์ url จะมีลิงก์ดาวน์โหลด CSV
พารามิเตอร์:
export_id(จำเป็น): ID ของงานส่งออกผู้ติดต่อ
list-accounts
แสดงรายการบัญชี Mailtrap ที่โทเค็น API ปัจจุบันสามารถเข้าถึงได้ พร้อมระดับการเข้าถึงของแต่ละบัญชี
พารามิเตอร์:
- ไม่จำเป็นต้องมีพารามิเตอร์
get-billing-usage
รับข้อมูลการใช้งานรอบบิลปัจจุบันสำหรับบัญชี: แผนการส่งและทดสอบ ขีดจำกัด และจำนวนปัจจุบัน
พารามิเตอร์:
- ไม่จำเป็นต้องมีพารามิเตอร์
list-account-accesses
แสดงรายการการเข้าถึงบัญชี (ผู้ใช้ คำเชิญ โทเค็น API) สำหรับบัญชี ตัวกรองเสริมจะจำกัดผลลัพธ์ให้แคบลงเฉพาะทรัพยากรที่ระบุ ต้องมีสิทธิ์ผู้ดูแลระบบ/เจ้าของบัญชี
พารามิเตอร์:
domain_uuids(ไม่บังคับ): กรองตาม UUID โดเมนผู้ส่ง (อาร์เรย์ของสตริง)inbox_ids(ไม่บังคับ): กรองตาม ID กล่องจดหมายแซนด์บ็อกซ์ (อาร์เรย์ของสตริง)project_ids(ไม่บังคับ): กรองตาม ID โปรเจกต์แซนด์บ็อกซ์ (อาร์เรย์ของสตริง)
remove-account-access
ลบการเข้าถึงบัญชีตาม ID สำหรับตัวระบุ User การดำเนินการนี้จะเพิกถอนสิทธิ์ของพวกเขา สำหรับตัวระบุ Invite หรือ ApiToken จะลบตัวระบุทั้งหมด ต้องมีสิทธิ์ผู้ดูแลระบบ/เจ้าของ
พารามิเตอร์:
account_access_id(จำเป็น): ID ของระเบียนการเข้าถึงที่จะลบ
get-permission-resources
รับทรัพยากรทั้งหมด (กล่องจดหมาย โปรเจกต์ โดเมน การเรียกเก็บเงิน บัญชี) ที่โทเค็น API มีสิทธิ์เข้าถึงระดับผู้ดูแลระบบ ซ้อนตามลำดับชั้น
พารามิเตอร์:
- ไม่จำเป็นต้องมีพารามิเตอร์
bulk-update-permissions
สร้าง อัปเดต หรือทำลายสิทธิ์จำนวนมากสำหรับการเข้าถึงบัญชีเดียว คู่ (resource_type, resource_id) ที่มีอยู่จะถูกอัปเดต คู่ใหม่จะถูกสร้างขึ้น ตั้งค่า destroy: true ในรายการเพื่อลบออก
พารามิเตอร์:
account_access_id(จำเป็น): ID การเข้าถึงบัญชีเป้าหมายpermissions(จำเป็น): อาร์เรย์ของรายการสิทธิ์ แต่ละรายการมี:resource_id(จำเป็น): ID ทรัพยากร (ตัวเลขหรือสตริง)resource_type(จำเป็น): หนึ่งในaccount,project,inbox,domain,billingaccess_level(ไม่บังคับ):admin/100หรือviewer/10destroy(ไม่บังคับ, boolean): เมื่อเป็นจริง จะลบสิทธิ์นี้แทนการสร้าง/อัปเดต
list-api-tokens
แสดงรายการโทเค็น API ทั้งหมดสำหรับบัญชี
พารามิเตอร์:
- ไม่จำเป็นต้องมีพารามิเตอร์
create-api-token
สร้างโทเค็น API ใหม่ การตอบกลับประกอบด้วยค่าความลับ token — นี่เป็น ครั้งเดียว ที่โทเค็นแบบเต็มจะถูกส่งคืน ดังนั้นให้จัดเก็บทันที หากทำหาย ให้สร้างโทเค็นใหม่
พารามิเตอร์:
name(จำเป็น): ชื่อที่แสดงสำหรับโทเค็นresources(ไม่บังคับ): อาร์เรย์ของสิทธิ์ทรัพยากรเพื่อกำหนดขอบเขตโทเค็น แต่ละรายการมี:resource_type(จำเป็น): หนึ่งในaccount,project,inbox,domain,billingresource_id(จำเป็น): ID ของทรัพยากรaccess_level(จำเป็น):100(ผู้ดูแลระบบ) หรือ10(ผู้ดู)
get-api-token
รับโทเค็น API ตาม ID ส่งคืนเฉพาะข้อมูลเมตา — ค่าโทเค็นความลับจะ ไม่ ถูกส่งคืนที่นี่ (เฉพาะจาก create-api-token / reset-api-token)
พารามิเตอร์:
api_token_id(จำเป็น): ID ของโทเค็น API
reset-api-token
รีเซ็ต (หมุนเวียน) โทเค็น API ตาม ID การตอบกลับประกอบด้วยค่าความลับ token ใหม่ — ส่งคืนเฉพาะในการเรียกนี้ ดังนั้นให้จัดเก็บทันที โทเค็นก่อนหน้าจะถูกยกเลิก
พารามิเตอร์:
api_token_id(จำเป็น): ID ของโทเค็น API ที่จะรีเซ็ต
delete-api-token
ลบโทเค็น API อย่างถาวรตาม ID โทเค็นจะไม่สามารถตรวจสอบสิทธิ์ได้อีกต่อไปหลังจากการลบ
พารามิเตอร์:
api_token_id(จำเป็น): ID ของโทเค็น API ที่จะลบ
list-sub-accounts
แสดงรายการบัญชีย่อยในองค์กร ต้องใช้ตัวแปรสภาพแวดล้อม MAILTRAP_ORGANIZATION_ID และสิทธิ์การจัดการบัญชีย่อย
พารามิเตอร์:
- ไม่จำเป็นต้องมีพารามิเตอร์
create-sub-account
สร้างบัญชีย่อยใหม่ภายใต้องค์กร ต้องใช้ตัวแปรสภาพแวดล้อม MAILTRAP_ORGANIZATION_ID และสิทธิ์การจัดการบัญชีย่อย
พารามิเตอร์:
name(จำเป็น): ชื่อที่แสดงสำหรับบัญชีย่อยใหม่
การพัฒนา
- โคลนที่เก็บ:
git clone https://github.com/mailtrap/mailtrap-mcp.git
cd mailtrap-mcp
- ติดตั้งส่วนพึ่งพา:
npm install
การกำหนดค่ากับ Claude Desktop หรือ Cursor
[!TIP] ดูตำแหน่งของไฟล์กำหนดค่าในส่วน การตั้งค่า
เพิ่มการกำหนดค่าต่อไปนี้:
{
"mcpServers": {
"mailtrap": {
"command": "node",
"args": ["/path/to/mailtrap-mcp/dist/index.js"],
"env": {
"MAILTRAP_API_TOKEN": "your_mailtrap_api_token",
"DEFAULT_FROM_EMAIL": "[email protected]",
"MAILTRAP_ACCOUNT_ID": "your_account_id",
"MAILTRAP_TEST_INBOX_ID": "your_test_inbox_id"
}
}
}
}
หากคุณใช้ asdf สำหรับจัดการ Node.js คุณควรใช้พาธสัมบูรณ์ไปยังไฟล์ปฏิบัติการ:
(ตัวอย่างสำหรับ Mac)
{
"mcpServers": {
"mailtrap": {
"command": "/Users/<username>/.asdf/shims/node",
"args": ["/path/to/mailtrap-mcp/dist/index.js"],
"env": {
"PATH": "/Users/<username>/.asdf/shims:/usr/bin:/bin",
"ASDF_DIR": "/opt/homebrew/opt/asdf/libexec",
"ASDF_DATA_DIR": "/Users/<username>/.asdf",
"ASDF_NODEJS_VERSION": "20.6.1",
"MAILTRAP_API_TOKEN": "your_mailtrap_api_token",
"DEFAULT_FROM_EMAIL": "[email protected]",
"MAILTRAP_ACCOUNT_ID": "your_account_id",
"MAILTRAP_TEST_INBOX_ID": "your_test_inbox_id"
}
}
}
}
VS Code
[!TIP] ดูตำแหน่งของไฟล์กำหนดค่าในส่วน การตั้งค่า
{
"mcp": {
"servers": {
"mailtrap": {
"command": "node",
"args": ["/path/to/mailtrap-mcp/dist/index.js"],
"env": {
"MAILTRAP_API_TOKEN": "your_mailtrap_api_token",
"DEFAULT_FROM_EMAIL": "[email protected]",
"MAILTRAP_ACCOUNT_ID": "your_account_id",
"MAILTRAP_TEST_INBOX_ID": "your_test_inbox_id"
}
}
}
}
}
การทดสอบ
การรันทูลกับ Mailtrap จริง
มีสองวิธีในการทดสอบทูลแบบ end-to-end กับบัญชี Mailtrap จริง: MCP Inspector UI บนเบราว์เซอร์สำหรับการสำรวจแบบโต้ตอบ หรือโหมด CLI สำหรับการเรียกครั้งเดียวจากเชลล์
ทั้งสองวิธีต้องสร้างบันเดิลก่อน:
npm run build
และต้องส่งออก MAILTRAP_API_TOKEN + MAILTRAP_ACCOUNT_ID ในเชลล์ของคุณ (สคริปต์ mcp:cli จะส่งต่อทั้งสองไปยังเซิร์ฟเวอร์ที่เริ่มทำงาน)
UI บนเบราว์เซอร์
npm run dev
Inspector จะพิมพ์ URL เช่น http://localhost:6274 เปิดขึ้นมา สลับไปที่แท็บ Tools เลือกทูล (เช่น get-template) กรอกพารามิเตอร์เป็น JSON แล้วกด Run การตอบกลับจาก Mailtrap จะปรากฏในแผงด้านล่าง
CLI
สำหรับการเรียกครั้งเดียวโดยไม่ใช้ UI ให้ใช้ npm run mcp:cli ส่งแฟล็ก CLI ของ Inspector ต่อจาก -- เพื่อให้ npm ส่งต่อตามเดิม:
# List all tools
npm run mcp:cli -- --method tools/list
# Call a tool — flags after the `--`
npm run mcp:cli -- \
--method tools/call \
--tool-name get-template \
--tool-arg template_id=12345
# Multiple --tool-arg flags for tools with several params
npm run mcp:cli -- \
--method tools/call \
--tool-name send-sending-domain-setup-instructions \
--tool-arg sending_domain_id=3938 \
--tool-arg [email protected]
การรันเซิร์ฟเวอร์ MCPB
# Run the MCPB server directly
node dist/mcpb-server.js
# Or use the provided binary
mailtrap-mcpb-server
[!TIP] สำหรับการพัฒนาด้วย MCP Inspector:
npm run dev:mcpb
การจัดการข้อผิดพลาด
เซิร์ฟเวอร์นี้ใช้การจัดการข้อผิดพลาดแบบมีโครงสร้างที่สอดคล้องกับแบบแผน MCP:
VALIDATION_ERROR: ความล้มเหลวในการตรวจสอบอินพุตCONFIGURATION_ERROR: การกำหนดค่าขาดหายหรือไม่ถูกต้องEXECUTION_ERROR: ข้อผิดพลาดขณะรันไทม์TIMEOUT: การดำเนินการหมดเวลา (ค่าเริ่มต้น 30 วินาที)
ข้อผิดพลาดมีข้อความที่นำไปปฏิบัติได้และถูกบันทึกในรูปแบบที่มีโครงสร้าง
ความปลอดภัย
- อินพุตตรวจสอบผ่าน Zod schemas
- ตัวแปรสภาพแวดล้อมจัดการอย่างปลอดภัย
- การป้องกันการหมดเวลาของการดำเนินการ (30 วินาที)
- รายละเอียดที่ละเอียดอ่อนถูกกรองในผลลัพธ์ข้อผิดพลาด
การบันทึก
บันทึก JSON แบบมีโครงสร้างพร้อมระดับ: INFO, WARN, ERROR, DEBUG
เปิดใช้งานการบันทึกดีบักโดยตั้งค่า DEBUG=true
# Example: enable debug logging
DEBUG=true node dist/mcpb-server.js
สำคัญ: เซิร์ฟเวอร์เขียนบันทึกไปยัง stderr เพื่อให้ stdout สงวนไว้สำหรับเฟรม JSON-RPC เท่านั้น ซึ่งป้องกันไม่ให้โฮสต์พบข้อผิดพลาดการแยกวิเคราะห์ JSON เนื่องจากบันทึกที่ปะปน
ตัวอย่างการวิเคราะห์บันทึกโดยใช้ jq:
# Filter error logs
node dist/mcpb-server.js 2>&1 | jq 'select(.level == "error")'
# Filter debug logs
node dist/mcpb-server.js 2>&1 | jq 'select(.level == "debug")'
การแก้ไขปัญหา
ปัญหาที่พบบ่อย:
- โทเค็น API ขาดหาย: ตรวจสอบว่าได้ตั้งค่า
MAILTRAP_API_TOKENแล้ว - แซนด์บ็อกซ์ไม่ทำงาน: ระบุ
test_inbox_idในการเรียกทูลหรือตั้งค่าตัวแปรสภาพแวดล้อมMAILTRAP_TEST_INBOX_ID - ข้อผิดพลาดการหมดเวลา: ตรวจสอบการเชื่อมต่อเครือข่ายและสถานะ Mailtrap API
- ข้อผิดพลาดการตรวจสอบ: ตรวจสอบว่าได้ระบุฟิลด์ที่จำเป็นทั้งหมดแล้ว
การมีส่วนร่วม
ยินดีรับรายงานบั๊กและคำขอดึงข้อมูลบน GitHub โปรเจกต์นี้มีจุดมุ่งหมายเป็นพื้นที่ปลอดภัยและเป็นมิตรสำหรับการทำงานร่วมกัน และผู้มีส่วนร่วมถูกคาดหวังให้ปฏิบัติตาม จรรยาบรรณ
ใบอนุญาต
แพ็คเกจนี้พร้อมใช้งานเป็นโอเพนซอร์สภายใต้เงื่อนไขของ MIT License
จรรยาบรรณ
ทุกคนที่มีปฏิสัมพันธ์ในโค้ดเบส ตัวติดตามปัญหา ห้องแชท และรายชื่ออีเมลของโปรเจกต์ Mailtrap ถูกคาดหวังให้ปฏิบัติตาม จรรยาบรรณ