Mailtrap
chính thứcTích hợp với Mailtrap Email API.
Bạn có thể làm gì với Mailtrap MCP?
- Gửi email giao dịch — Yêu cầu trợ lý gửi email với tiêu đề và nội dung dạng văn bản hoặc HTML, có thể dùng mẫu và biến.
- Kiểm thử trong Email Sandbox — Gửi thư đến sandbox và kiểm tra nội dung, tiêu đề cùng tệp đính kèm mà không gửi đến người nhận thật.
- Gỡ lỗi gửi thư bằng nhật ký — Liệt kê và lọc nhật ký email đã gửi, sau đó mở một thư cụ thể để xem lại lịch sử sự kiện và trạng thái gửi.
- Phân tích thống kê gửi thư — Xem tỷ lệ gửi thành công, thư bị trả lại, mở, nhấp và thư rác trong một khoảng thời gian, phân tích theo miền, danh mục hoặc ngày.
- Quản lý mẫu — Tạo, liệt kê, cập nhật và xóa các mẫu email được lưu trong tài khoản Mailtrap của bạn.
- Quản lý miền và danh sách chặn — Liệt kê miền, nhận hướng dẫn thiết lập DNS, đồng thời xem lại hoặc xóa các địa chỉ bị chặn.
Tài liệu
Máy chủ MCP chính thức của Mailtrap
Máy chủ MCP chính thức dành cho Mailtrap — nền tảng gửi email. Máy chủ kết nối tài khoản Mailtrap của bạn với Claude, Cursor, VS Code và các trợ lý AI khác tương thích với MCP.
Gửi email giao dịch và email hàng loạt, kiểm tra tin nhắn an toàn trong Email Sandbox, quản lý mẫu, danh bạ, miền và webhook, xem nhật ký email và thống kê gửi, khắc phục sự cố về khả năng gửi email, đồng thời quản lý tài nguyên tài khoản — tất cả bằng lời nhắc ngôn ngữ tự nhiên.
Khả năng
- API email và SMTP — Gửi email giao dịch và email hàng loạt, bao gồm tin nhắn theo lô và dựa trên mẫu.
- Kiểm thử email — Kiểm tra tin nhắn trong Email Sandbox và xem nội dung, tiêu đề, tệp đính kèm, điểm spam và khả năng tương thích với ứng dụng email HTML.
- Giám sát gửi email — Tìm kiếm nhật ký email, xem lịch sử sự kiện và phân tích tỷ lệ gửi thành công, thư bị trả lại, mở, nhấp và spam.
- Cơ sở hạ tầng email — Quản lý miền, xác minh DNS, webhook và danh sách chặn.
- Danh bạ — Quản lý danh bạ, danh sách, trường tùy chỉnh và sự kiện, cùng với chức năng nhập và xuất.
- Quản lý tài khoản — Xem mức sử dụng thanh toán và quản lý quyền truy cập, quyền hạn, mã thông báo API và tài khoản phụ.
Các ứng dụng MCP được hỗ trợ
Hoạt động với Claude Desktop, Claude Code, Cursor, VS Code và mọi ứng dụng khác tương thích với MCP. Hướng dẫn thiết lập cho từng ứng dụng ở bên dưới.
Điều kiện tiên quyết
Trước khi sử dụng máy chủ MCP này, bạn cần:
- Tạo tài khoản Mailtrap
- Xác minh miền của bạn
- Lấy mã thông báo API từ cài đặt API của Mailtrap
- Lấy ID tài khoản từ trang quản lý tài khoản Mailtrap
- Cài đặt Node.js phiên bản 22 trở lên, trừ khi bạn chạy ảnh Docker
Biến môi trường bắt buộc:
MAILTRAP_API_TOKEN- Bắt buộc cho mọi chức năngMAILTRAP_ACCOUNT_ID- Bắt buộc cho templates, get-sending-stats, nhật ký email, danh sách/xem sandbox, miền và danh sách chặn. Chỉ không bắt buộc đối với các công cụ gửi (send-email, send-sandbox-email và các công cụ batch-send-*), công cụ chiến dịch email, get-marketing-stats, công cụ thông tin công ty, công cụ từ chối theo dõi và list-accounts.
Tùy chọn (có thể truyền dưới dạng tham số công cụ):
DEFAULT_FROM_EMAIL- Địa chỉ email người gửi mặc định khi không truyềnfromcho send-email, send-sandbox-email hoặc các công cụ batch-send-* (trong đó giá trị này được dùng chobase.from). Cho phép đổi người gửi theo từng lần gọi thông qua tham sốfrom.MAILTRAP_SANDBOX_ID- ID sandbox mặc định khi không truyềnsandbox_idcủa công cụ (vẫn chấp nhậntest_inbox_idcũ trên các công cụ gửi/liệt kê/xem tin nhắn sandbox). Cho phép đổi sandbox theo từng lần gọi thông qua tham số.MAILTRAP_TEST_INBOX_ID- Bí danh không còn được khuyến nghị củaMAILTRAP_SANDBOX_ID; vẫn được đọc làm giá trị dự phòng cho các cấu hình hiện có và ghi cảnh báo không còn được khuyến nghị vào stderr khi sử dụng.MAILTRAP_ORGANIZATION_ID- Bắt buộc cho các công cụ tổ chức (list-sub-accounts,create-sub-account,delete-sub-account).MAILTRAP_ORGANIZATION_API_TOKEN- Mã thông báo API trong phạm vi tổ chức. Bắt buộc cho các công cụ tổ chức (tách biệt vớiMAILTRAP_API_TOKEN).
Cài đặt nhanh
Docker
Chạy máy chủ qua stdio bằng ảnh 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
Xem Điều kiện tiên quyết để biết các biến môi trường bắt buộc và tùy chọn.
Để tạo bản dựng từ kho lưu trữ này: docker build -t mcp/mailtrap .
Smithery CLI
Smithery là một registry và trình cài đặt máy chủ MCP hoạt động với các ứng dụng AI.
Cài đặt máy chủ đã phát hành (mailtrap/mailtrap-mcp) vào ứng dụng cục bộ (thay tên ứng dụng nếu cần):
npx -y smithery mcp add mailtrap/mailtrap-mcp --client claude
Xem tài liệu Smithery CLI để biết các ứng dụng khác (cursor, windsurf, v.v.) và cách phát hành bản cập nhật.
Thiết lập
Claude Desktop
Dùng MCPB để cài đặt máy chủ Mailtrap. Bạn có thể tìm thấy các tệp đó trong Releases.
Tải tệp .MCPB xuống rồi mở tệp. Nếu bạn dùng Claude Desktop, ứng dụng sẽ mở tệp và đề xuất cấu hình.
Claude Desktop hoặc Cursor
Thêm cấu hình sau:
{
"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"
}
}
}
}
Nếu bạn dùng asdf để quản lý Node.js, bạn phải dùng đường dẫn tuyệt đối đến tệp thực thi (ví dụ cho 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"
}
}
}
}
Vị trí tệp cấu hình Claude Desktop
Mac: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
Vị trí tệp cấu hình Cursor
Mac: ~/.cursor/mcp.json
Windows: %USERPROFILE%\.cursor\mcp.json
VS Code
Thay đổi cấu hình thủ công
Chạy lệnh sau trong Command Palette: Preferences: Open User Settings (JSON)
Sau đó, thêm cấu hình sau vào tệp cài đặt:
{
"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] Đừng quên khởi động lại máy chủ MCP sau khi thay đổi phần "env".
MCP Bundle (MCPB)
Để dễ dàng cài đặt trên các ứng dụng hỗ trợ MCP Bundle, bạn có thể phân phối tệp 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
Thao tác này tạo mailtrap-mcp.mcpb. Tập lệnh sao chép dist/, manifest.json, icon.png và
giấy phép vào mcpb-build/, cài đặt các phần phụ thuộc production tại đó và chỉ đóng gói thư mục đó.
Không chạy mcpb pack . từ thư mục gốc của kho lưu trữ.
Cách sử dụng
Sau khi cấu hình, bạn có thể yêu cầu tác nhân gửi email và quản lý mẫu, chẳng hạn như:
Thao tác gửi email:
- "Gửi email cho john.doe@example.com với tiêu đề 'Cuộc họp ngày mai' và lời nhắc thân thiện về cuộc họp sắp tới của chúng ta."
- "Gửi email cho sarah@example.com về cập nhật dự án và CC nhóm tại team@example.com"
- "Gửi mẫu chào mừng (uuid
b81aabcd-1a1e-41cf-91b6-eca0254b3d96) cho new@example.com với các biến{ name: 'Alex' }" - "Gửi email sandbox đến test@example.com với tiêu đề 'Mẫu thử nghiệm' để xem trước email chào mừng của chúng ta"
Nhật ký email (gỡ lỗi gửi email):
- "Liệt kê nhật ký email đã gửi gần đây của tôi"
- "Hiển thị nhật ký email gửi đến user@example.com"
- "Lấy thông tin tin nhắn trong nhật ký email có ID abc-123-uuid để kiểm tra trạng thái gửi"
Thống kê:
- "Lấy thống kê gửi email cho tháng 1 năm 2025"
- "Hiển thị tỷ lệ gửi thành công theo miền trong tháng trước"
- "Thống kê email của tôi theo danh mục từ 2025-01-01 đến 2025-01-31 là gì?"
- "Hoạt động tiếp thị qua email của tôi trong tháng trước thế nào? So sánh các chiến dịch với quy trình tự động hóa"
Thao tác với sandbox:
- "Lấy tất cả tin nhắn từ sandbox của tôi"
- "Hiển thị trang đầu tiên của tin nhắn sandbox"
- "Tìm tin nhắn có chứa 'test' trong sandbox của tôi"
- "Tạo sandbox tên 'QA' trong dự án 42 và cung cấp thông tin xác thực SMTP"
- "Xóa tất cả tin nhắn khỏi sandbox 1234"
- "Hiển thị chi tiết tin nhắn sandbox có ID 5159037506"
Thao tác với mẫu:
- "Liệt kê tất cả mẫu email trong tài khoản Mailtrap của tôi"
- "Tạo mẫu email mới tên 'Email chào mừng' với tiêu đề 'Chào mừng bạn đến với nền tảng của chúng tôi!'"
- "Cập nhật mẫu có ID 12345 để đổi tiêu đề thành 'Lời chào mừng đã cập nhật'"
- "Xóa mẫu có ID 67890"
Miền:
- "Liệt kê các miền của tôi"
- "Lấy miền có ID 3938"
- "Tạo miền cho example.com"
- "Bật theo dõi lượt nhấp cho miền 3938"
- "Xóa miền 3938"
- "Lấy miền 3938 cùng hướng dẫn thiết lập DNS"
- "Hiển thị thông tin công ty của miền 3938"
- "Đặt thông tin công ty cho miền 3938 thành Acme Inc, 123 Main St, San Francisco, US, 94105, https://acme.com"
- "Đổi thành phố trong thông tin công ty của miền 3938 thành New York"
Danh sách chặn:
- "Liệt kê các địa chỉ bị chặn của bounced@example.com"
- "Chặn bounced@example.com trên luồng giao dịch của miền 3938"
- "Hiển thị tất cả địa chỉ email bị chặn"
- "Tại sao user@example.com không nhận được email của tôi?"
- "Xóa user@example.com khỏi danh sách chặn"
Từ chối theo dõi:
- "Ngừng theo dõi lượt mở và lượt nhấp của privacy@example.com trên miền 3938"
- "Liệt kê tất cả những người đã từ chối theo dõi"
Danh bạ và danh sách:
- "Thêm john.doe@example.com vào danh sách liên hệ nhận bản tin của tôi"
- "Hiển thị tất cả danh sách liên hệ của tôi"
- "Tạo trường liên hệ tên 'signup_source' để theo dõi nguồn gốc của các liên hệ"
- "Cập nhật liên hệ john.doe@example.com để đặt gói của họ thành 'pro'"
- "Nhập danh bạ từ tệp CSV này vào danh sách onboarding của tôi"
- "Xuất tất cả danh bạ từ danh sách bản tin của tôi"
- "Ghi nhận sự kiện 'trial_started' cho liên hệ john.doe@example.com"
Webhook:
- "Liệt kê tất cả webhook được cấu hình trên tài khoản của tôi"
- "Tạo webhook trỏ đến https://example.com/hooks/mailtrap cho các sự kiện thư bị trả lại và spam"
- "Cập nhật webhook 4821 để gửi thêm cả sự kiện gửi thành công"
- "Xóa webhook 4821"
Tài khoản và thanh toán:
- "Mức sử dụng thanh toán hiện tại của tôi trong tháng này là bao nhiêu?"
- "Tôi còn bao nhiêu email trong gói của mình?"
- "Liệt kê tất cả những người có quyền truy cập vào tài khoản Mailtrap này"
- "Hiển thị các tài nguyên quyền hạn có trên tài khoản của tôi"
Mã thông báo API:
- "Liệt kê tất cả mã thông báo API trên tài khoản của tôi"
- "Tạo mã thông báo API mới cho môi trường staging"
- "Đặt lại mã thông báo API có ID 1234"
- "Xóa mã thông báo API 1234 không còn sử dụng"
Tổ chức và tài khoản phụ:
- "Liệt kê tất cả tài khoản phụ trong tổ chức của tôi"
- "Tạo tài khoản phụ mới cho dự án khách hàng 'Acme Corp'"
Công cụ đã đổi tên
Mailtrap hiện gọi các hộp thư thử nghiệm là sandboxes và các miền gửi là domains, tên công cụ cũng được đổi theo. Tên cũ không còn xuất hiện trong danh sách công cụ, nhưng các lệnh gọi đến chúng vẫn hoạt động và ghi cảnh báo không còn được khuyến nghị vào stderr. Chúng sẽ bị xóa trong một bản phát hành chính trong tương lai.
Các ứng dụng MCP và khung tác nhân đối chiếu danh sách cho phép, danh sách chặn và danh sách bộ lọc với tên công cụ được công bố, vì vậy hãy chuyển mọi mục theo từng công cụ sang tên mới: mục chặn delete-sending-domain sẽ không còn chặn delete-domain.
| Tên cũ | Tên mới |
|---|---|
create-sandbox-inbox | create-sandbox |
get-sandbox-inbox | get-sandbox |
update-sandbox-inbox | update-sandbox |
delete-sandbox-inbox | delete-sandbox |
clean-sandbox-inbox | clean-sandbox |
list-sending-domains | list-domains |
get-sending-domain | get-domain |
create-sending-domain | create-domain |
update-sending-domain | update-domain |
delete-sending-domain | delete-domain |
send-sending-domain-setup-instructions | send-domain-setup-instructions |
sending_domain_id tham số của các công cụ miền và thông tin công ty | domain_id |
Biến môi trường MAILTRAP_TEST_INBOX_ID | MAILTRAP_SANDBOX_ID |
Các bộ lọc phản ánh trường API vẫn giữ nguyên tên: sending_domain_id trên list-email-logs và sending_domain_ids trên các công cụ thống kê.
Công cụ hiện có
send-email
Gửi email giao dịch qua Mailtrap. Hỗ trợ hai chế độ loại trừ lẫn nhau — nội dung trực tiếp (subject + text/html) hoặc dựa trên mẫu (template_uuid).
Tham số:
from(không bắt buộc): Người gửi dưới dạng{ email, name? }(khi chạy cũng chấp nhận chuỗi email thuần). Nếu không được cung cấp,DEFAULT_FROM_EMAILsẽ được sử dụng.to(không bắt buộc): Mảng người nhận dưới dạng các đối tượng{ email, name? }(khi chạy cũng chấp nhận chuỗi email thuần hoặc một địa chỉ không nằm trong mảng). Không bắt buộc nếu cung cấpcchoặcbcc; ít nhất một trongto/cc/bccphải chứa người nhận.cc(không bắt buộc): Mảng người nhận CC dưới dạng các đối tượng{ email, name? }(khi chạy cũng chấp nhận chuỗi email thuần).bcc(không bắt buộc): Mảng người nhận BCC dưới dạng các đối tượng{ email, name? }(khi chạy cũng chấp nhận chuỗi email thuần).subject(có điều kiện): Dòng chủ đề email. Bắt buộc khi gửi nội dung trực tiếp; phải được bỏ qua khi đặttemplate_uuid.text(có điều kiện): Nội dung email dạng văn bản. Bắt buộc (cùng với hoặc thay chohtml) khi gửi nội dung trực tiếp; phải được bỏ qua khi đặttemplate_uuid.html(có điều kiện): Phiên bản HTML của nội dung email. Bắt buộc (cùng với hoặc thay chotext) khi gửi nội dung trực tiếp; phải được bỏ qua khi đặttemplate_uuid.category(không bắt buộc): Danh mục email dùng cho theo dõi và phân tích. Phải được bỏ qua khi đặttemplate_uuid.template_uuid(không bắt buộc): Sử dụng mẫu email Mailtrap thay cho nội dung trực tiếp. Khi được đặt, phải bỏ quasubject/text/html/category(theo API Mailtrap).template_variables(không bắt buộc): Đối tượng chứa các biến được thay thế vào mẫu được tham chiếu bởitemplate_uuid. Chỉ được phép dùng cùng vớitemplate_uuid.
batch-send-transactional-email
Gửi một lô email giao dịch trong một lệnh gọi API Mailtrap (luồng gửi mặc định). Các trường dùng chung được đặt trong base; các giá trị ghi đè theo từng người nhận được đặt trong requests[]. Mỗi yêu cầu phải có ít nhất một người nhận thông qua to, cc hoặc bcc. Áp dụng cùng quy tắc loại trừ lẫn nhau giữa nội dung trực tiếp và mẫu như send-email — được kiểm tra sau khi hợp nhất dữ liệu cơ sở với từng yêu cầu.
Tham số:
base(không bắt buộc): Đối tượng chứa các trường dùng chung cho cả lô.from(không bắt buộc): Người gửi dưới dạng{ email, name? }(khi chạy cũng chấp nhận chuỗi email thuần). Mặc định dùngDEFAULT_FROM_EMAIL.reply_to(không bắt buộc): Địa chỉ trả lời.subject/text/html/category(không bắt buộc, chế độ nội dung trực tiếp): Nội dung mặc định cho mọi yêu cầu.template_uuid/template_variables(không bắt buộc, chế độ mẫu): Mẫu mặc định và các biến. Loại trừ lẫn nhau với các trường nội dung trực tiếp.custom_variables(không bắt buộc): Các biến tùy chỉnh mặc định (có giá trị dạng chuỗi).headers(không bắt buộc): Tiêu đề tùy chỉnh mặc định.
requests(bắt buộc): Mảng không rỗng gồm các thư gửi cho từng người nhận. Mỗi mục có:to(không bắt buộc): Mảng người nhận dưới dạng các đối tượng{ email, name? }(khi chạy cũng chấp nhận chuỗi email thuần hoặc một địa chỉ không nằm trong mảng). Không bắt buộc nếu cung cấpcchoặcbcc; ít nhất một trongto/cc/bccphải chứa người nhận.cc,bcc,reply_to(không bắt buộc).- Giá trị ghi đè nội dung trực tiếp (
subject/text/html/category) hoặc mẫu (template_uuid/template_variables); mọi trường bị bỏ qua sẽ dùng giá trịbasetương ứng. custom_variables,headers(không bắt buộc).
batch-send-bulk-email
Gửi một lô email hàng loạt thông qua API luồng gửi hàng loạt của Mailtrap. Có cùng cấu trúc base + requests[], quy tắc xác thực và quy tắc nội dung trực tiếp so với mẫu như batch-send-transactional-email — điểm khác biệt duy nhất là công cụ này định tuyến lệnh gọi qua điểm cuối gửi hàng loạt thay vì điểm cuối giao dịch. Xem các tham số ở trên.
list-email-logs
Liệt kê nhật ký email đã gửi (lịch sử gửi) với các tùy chọn phân trang và bộ lọc. Dùng để gỡ lỗi sự cố gửi email ngay trong IDE.
Tham số:
search_after(không bắt buộc): Con trỏ phân trang từnext_page_cursorcủa phản hồi trước đósent_after(không bắt buộc): Ngày/giờ ISO 8601; chỉ lấy nhật ký được gửi sau thời điểm nàysent_before(không bắt buộc): Ngày/giờ ISO 8601; chỉ lấy nhật ký được gửi trước thời điểm nàyfrom_email(không bắt buộc): Lọc theo email người gửi; dùng cùng vớifrom_operator(mặc định: ci_equal)to_email(không bắt buộc): Lọc theo email người nhận; dùng cùng vớito_operator(mặc định: ci_equal)status(không bắt buộc): Lọc theo trạng thái gửi: delivered, not_delivered, enqueued, opted_out; dùng cùng vớistatus_operator(mặc định: equal)subject(không bắt buộc): Lọc theo chủ đề email; dùng cùng vớisubject_operator(mặc định: ci_contain). Dùngsubject_operator: empty/not_empty để lọc theo việc có chủ đề hay không.sending_domain_id(không bắt buộc): Lọc theo ID miền (số); dùng cùng vớisending_domain_id_operator(mặc định: equal)sending_stream(không bắt buộc): Lọc theo luồng: transactional hoặc bulk; dùng cùng vớisending_stream_operator(mặc định: equal)events(không bắt buộc): Lọc theo (các) loại sự kiện: delivery, open, click, bounce, spam, unsubscribe, soft_bounce, reject, suspension; dùng cùng vớievents_operator(include_event / not_include_event)clicks_count/opens_count(không bắt buộc): Lọc theo số lượt nhấp/mở; dùng cùng với*_operator: equal, greater_than, less_thanclient_ip/sending_ip(không bắt buộc): Lọc theo IP; dùng cùng với*_operator: equal, not_equal, contain, not_containemail_service_provider_response(không bắt buộc): Lọc theo văn bản phản hồi của nhà cung cấp; dùng cùng với*_operator(ci_contain, v.v.)email_service_provider(không bắt buộc): Lọc theo nhà cung cấp (chính xác); dùng cùng với*_operator: equal, not_equalrecipient_mx(không bắt buộc): Lọc theo MX của người nhận; dùng cùng vớirecipient_mx_operator(ci_contain, v.v.)category(không bắt buộc): Lọc theo danh mục email; dùng cùng vớicategory_operator: equal, not_equal
Tất cả tham số đều không bắt buộc.
get-email-log-message
Lấy một thư trong nhật ký email theo ID (UUID): bản tóm tắt dễ đọc (người gửi, người nhận, chủ đề, thời gian gửi, trạng thái, danh mục, luồng, mức độ tương tác, ngữ cảnh gửi), sau đó là lịch sử sự kiện chi tiết. Nếu có include_content: true, bạn cũng có thể tải và hiển thị nội dung thư (HTML và văn bản thuần) khi Mailtrap cung cấp URL thư thô.
Tham số:
message_id(bắt buộc): UUID của thư trong nhật ký email (từ phản hồi gửi hoặc list-email-logs). Dùnglist-email-logsđể tìm ID thư.include_content(không bắt buộc): Khitrue, tải EML thô (nếu córaw_message_url) và thêm các phần nội dung HTML và văn bản thuần đã phân tích cú pháp, tương tự như show-sandbox-email-message.
get-sending-stats
Lấy thống kê gửi email (tỷ lệ gửi thành công, thư bị trả lại, mở, nhấp, thư rác) trong một khoảng ngày. Có thể tùy chọn phân tích theo miền, danh mục, nhà cung cấp dịch vụ email hoặc ngày. Kiểm tra tỷ lệ gửi thành công mà không cần rời khỏi trình soạn thảo.
Tham số:
start_date(bắt buộc): Ngày bắt đầu của khoảng thống kê (YYYY-MM-DD)end_date(bắt buộc): Ngày kết thúc của khoảng thống kê (YYYY-MM-DD)breakdown(không bắt buộc): Cách phân tích thống kê:aggregated(mặc định),by_domain,by_category,by_email_service_providerhoặcby_datesending_domain_ids(không bắt buộc): Giới hạn kết quả ở các ID miền này (mảng số nguyên)sending_streams(không bắt buộc): Giới hạn ởtransactionalvà/hoặcbulk(mảng chuỗi)categories(không bắt buộc): Giới hạn ở các danh mục email này (mảng chuỗi)email_service_providers(không bắt buộc): Giới hạn ở các nhà cung cấp này, ví dụ: Google, Yahoo, Outlook (mảng chuỗi)
get-marketing-stats
Lấy thống kê Email Marketing tổng hợp trên các chiến dịch và quy trình tự động hóa trong một khoảng ngày: số lượng và tỷ lệ gửi, gửi thành công, thư bị trả lại, mở, nhấp, thư rác và hủy đăng ký. delivery_rate và bounce_rate là tỷ lệ trên sent_count; các tỷ lệ còn lại là tỷ lệ trên delivery_count.
Tham số:
start_date(bắt buộc): Ngày bắt đầu của khoảng thời gian (bao gồm),YYYY-MM-DDend_date(bắt buộc): Ngày kết thúc của khoảng thời gian (bao gồm),YYYY-MM-DDsending_domain_ids(không bắt buộc): Giới hạn kết quả ở các ID miền này (mảng số nguyên)sources(không bắt buộc):campaignshoặcautomationssẽ thu hẹp thống kê vào nguồn đó; bỏ qua hoặc truyền cả hai để lấy toàn bộ lưu lượng Email Marketing (mảng chuỗi)email_service_providers(không bắt buộc): Giới hạn ở các nhà cung cấp này, ví dụ: Google, Yahoo, Outlook (mảng chuỗi)
create-template
Tạo mẫu email mới trong tài khoản Mailtrap của bạn.
Tham số:
name(bắt buộc): Tên mẫusubject(bắt buộc): Dòng chủ đề emailhtml(hoặctextlà bắt buộc): Nội dung HTML của mẫutext(hoặchtmllà bắt buộc): Phiên bản văn bản thuần của mẫucategory(không bắt buộc): Danh mục mẫu (mặc định là "General")
list-templates
Liệt kê các mẫu email trong tài khoản Mailtrap của bạn với phân trang bằng mã thông báo trang. Khi còn mẫu khác, kết quả sẽ nêu token cho trang tiếp theo. Các trang là các khoảng bù trừ trong danh sách sắp xếp từ mới nhất đến cũ nhất, vì vậy sau khi xóa mẫu, hãy liệt kê lại từ token 1 thay vì tiếp tục bằng mã thông báo tiếp theo; trang trống sẽ nêu trang cuối cùng vẫn còn mẫu.
Tham số:
token(không bắt buộc): Số trang cần truy xuất (phân trang bằng mã thông báo trang). Mặc định là1per_page(không bắt buộc): Số mẫu trên mỗi trang. Mặc định là50, tối đa100. Truyền cùng một giá trị cho mọi trang
get-template
Lấy một mẫu email theo ID, bao gồm chủ đề, danh mục và nội dung HTML/văn bản.
Tham số:
template_id(bắt buộc): ID của mẫu cần lấy
update-template
Cập nhật một mẫu email hiện có.
Tham số:
template_id(bắt buộc): ID của mẫu cần cập nhậtname(không bắt buộc): Tên mới cho mẫusubject(không bắt buộc): Dòng chủ đề email mớihtml(không bắt buộc): Nội dung HTML mới của mẫutext(không bắt buộc): Phiên bản văn bản thuần mới của mẫucategory(không bắt buộc): Danh mục mới cho mẫu
[!NOTE] Khi gọi update-template để thực hiện cập nhật, phải cung cấp ít nhất một trường có thể cập nhật (name, subject, html, text hoặc category).
delete-template
Xóa một mẫu email hiện có.
Tham số:
template_id(bắt buộc): ID của mẫu cần xóa
send-sandbox-email
Gửi email đến sandbox Mailtrap của bạn để phát triển và kiểm thử. Đây là lựa chọn lý tưởng để kiểm thử mẫu email mà không gửi email đến người nhận thật. Hỗ trợ cùng hai chế độ như send-email — nội dung trực tiếp hoặc dựa trên mẫu (template_uuid).
Tham số:
sandbox_id(tùy chọn): Ưu tiên dùng. ID sandbox Mailtrap. Bắt buộc trừ khi đã đặtMAILTRAP_SANDBOX_ID.test_inbox_id(tùy chọn): Bí danh cũ củasandbox_idkhi bỏ quasandbox_id.from(tùy chọn): Người gửi dưới dạng{ email, name? }(khi chạy cũng chấp nhận chuỗi email thuần). Nếu không cung cấp, sẽ dùngDEFAULT_FROM_EMAIL.to(tùy chọn): Mảng người nhận dưới dạng các đối tượng{ email, name? }(khi chạy cũng chấp nhận chuỗi email thuần trong mảng hoặc chuỗi email thuần được phân tách bằng dấu phẩy). Không bắt buộc nếu cung cấpcchoặcbcc; ít nhất một trongto/cc/bccphải chứa người nhận.cc(tùy chọn): Mảng người nhận CC dưới dạng các đối tượng{ email, name? }(khi chạy cũng chấp nhận chuỗi email thuần).bcc(tùy chọn): Mảng người nhận BCC dưới dạng các đối tượng{ email, name? }(khi chạy cũng chấp nhận chuỗi email thuần).subject(có điều kiện): Dòng tiêu đề email. Bắt buộc khi gửi nội dung trực tiếp; phải bỏ qua khi đã đặttemplate_uuid.text(có điều kiện): Nội dung văn bản email. Bắt buộc (cùng với hoặc thay chohtml) khi gửi nội dung trực tiếp; phải bỏ qua khi đã đặttemplate_uuid.html(có điều kiện): Phiên bản HTML của nội dung email. Bắt buộc (cùng với hoặc thay chotext) khi gửi nội dung trực tiếp; phải bỏ qua khi đã đặttemplate_uuid.category(tùy chọn): Danh mục email dùng để theo dõi. Phải bỏ qua khi đã đặttemplate_uuid.template_uuid(tùy chọn): Dùng mẫu email Mailtrap thay cho nội dung trực tiếp. Khi được đặt, phải bỏ quasubject/text/html/category.template_variables(tùy chọn): Đối tượng chứa các biến được thay thế vào mẫu được tham chiếu bởitemplate_uuid. Chỉ được phép dùng cùng vớitemplate_uuid.
batch-send-sandbox-email
Gửi một loạt email đến sandbox Mailtrap của bạn trong một lệnh gọi API mà không gửi đến người nhận thực. Có cùng cấu trúc base + requests[], quy tắc xác thực và quy tắc gửi nội dung trực tiếp so với dùng mẫu như batch-send-transactional-email — điểm khác biệt là công cụ này định tuyến lệnh gọi qua endpoint sandbox cho một sandbox duy nhất.
Tham số:
sandbox_id(tùy chọn): ID sandbox Mailtrap. Bắt buộc trừ khi đã đặtMAILTRAP_SANDBOX_ID; truyền vào trong từng lệnh gọi để nhắm đến một sandbox cụ thể.base(tùy chọn),requests(bắt buộc): Xem phầnbatch-send-transactional-emailở trên.
[!NOTE] Hầu hết công cụ sandbox sử dụng
sandbox_id(hoặc dùng giá trị dự phòngMAILTRAP_SANDBOX_ID; env không còn được khuyến nghịMAILTRAP_TEST_INBOX_IDvẫn hoạt động).send-sandbox-email,get-sandbox-messagesvàshow-sandbox-email-messagecũng chấp nhậntest_inbox_idcũ.get-sandbox,update-sandbox,delete-sandboxvàclean-sandboxsử dụngsandbox_idcùng vớiinbox_idcũ (cùng một ID;inbox_idkhông được dùng trong các công cụ xử lý thư). Công cụ email đến sử dụnginbox_idcho một sản phẩm khác (thư đã nhận), không phải sandbox.
get-sandbox-messages
Lấy danh sách thư từ sandbox Mailtrap của bạn. Hữu ích để kiểm tra những email đã được nhận trong sandbox trong quá trình thử nghiệm.
Tham số:
sandbox_id(tùy chọn): Ưu tiên dùng. ID sandbox, trừ khi đã đặtMAILTRAP_SANDBOX_ID.test_inbox_id(tùy chọn): Bí danh cũ củasandbox_id.page(tùy chọn): Số trang để phân trang (tối thiểu: 1)last_id(tùy chọn): Phân trang bằng ID thư cuối cùng. Trả về các thư sau ID thư được chỉ định (tối thiểu: 1)search(tùy chọn): Truy vấn tìm kiếm để lọc thư
[!NOTE] Có thể bỏ qua các tham số ID sandbox khi đã đặt
MAILTRAP_SANDBOX_ID. Nếu không cung cấpsandbox_id,test_inbox_idhoặc env, lệnh gọi sẽ thất bại. Phân trang: sử dụngpage,last_idhoặcsearchtùy nhu cầu.
show-sandbox-email-message
Hiển thị thông tin chi tiết và nội dung của một email cụ thể trong sandbox Mailtrap, bao gồm nội dung HTML và văn bản.
Tham số:
sandbox_id(tùy chọn): Ưu tiên dùng. ID sandbox, trừ khi đã đặtMAILTRAP_SANDBOX_ID.test_inbox_id(tùy chọn): Bí danh cũ củasandbox_id.message_id(bắt buộc): ID của email sandbox cần truy xuất
[!NOTE] Trước tiên, dùng
get-sandbox-messagesđể lấy ID thư, sau đó dùng công cụ này để xem toàn bộ nội dung.
list-sandbox-projects
Liệt kê tất cả dự án sandbox và các sandbox của chúng.
Tham số:
- Không yêu cầu tham số
create-sandbox-project
Tạo dự án sandbox mới để nhóm các sandbox.
Tham số:
name(bắt buộc): Tên dự án (2–100 ký tự)
get-sandbox-project
Lấy dự án sandbox theo ID, bao gồm các sandbox và số lượng email của dự án.
Tham số:
project_id(bắt buộc): ID của dự án cần lấy
update-sandbox-project
Đổi tên một dự án sandbox hiện có.
Tham số:
project_id(bắt buộc): ID của dự án cần cập nhậtname(bắt buộc): Tên mới của dự án (2–100 ký tự)
delete-sandbox-project
Xóa một dự án sandbox và tất cả sandbox trong dự án đó.
Tham số:
project_id(bắt buộc): ID của dự án cần xóa
create-sandbox
Tạo sandbox mới trong một dự án. Trả về thông tin xác thực SMTP mới của sandbox.
Tham số:
project_id(bắt buộc): ID của dự án nơi tạo sandboxname(bắt buộc): Tên sandbox
get-sandbox
Lấy thông tin chi tiết về sandbox, bao gồm thông tin xác thực SMTP, số lượng email và trạng thái.
Tham số:
sandbox_id(tùy chọn): ID sandbox. Bắt buộc trừ khi đã đặtMAILTRAP_SANDBOX_ID.inbox_id(tùy chọn): Bí danh cũ củasandbox_id.
update-sandbox
Cập nhật tên hoặc tên người dùng email của sandbox.
Tham số:
sandbox_id(bắt buộc): ID sandbox (bí danh cũ:inbox_id)name(tùy chọn): Tên mới của sandboxemail_username(tùy chọn): Tên người dùng email mới của sandbox
Phải cung cấp ít nhất một trong name hoặc email_username.
delete-sandbox
Xóa sandbox và tất cả thư trong đó.
Tham số:
sandbox_id(bắt buộc): ID sandbox (bí danh cũ:inbox_id)
clean-sandbox
Xóa tất cả thư khỏi sandbox mà không xóa chính sandbox đó.
Tham số:
sandbox_id(bắt buộc): ID sandbox (bí danh cũ:inbox_id)
list-sandboxes
Liệt kê mọi sandbox mà token API có quyền truy cập trong tất cả dự án.
Tham số:
- Không yêu cầu tham số
mark-sandbox-as-read
Đánh dấu tất cả thư trong sandbox là đã đọc.
Tham số:
sandbox_id(bắt buộc): ID của sandbox cần thao tác
reset-sandbox-credentials
Đặt lại thông tin xác thực SMTP cho sandbox. Trả về tên người dùng/mật khẩu mới.
Tham số:
sandbox_id(bắt buộc): ID của sandbox cần thao tác
enable-sandbox-email-address
Bật địa chỉ nhận email cho sandbox (bật địa chỉ Mailtrap chuyển thư đến sandbox qua SMTP).
Tham số:
sandbox_id(bắt buộc): ID của sandbox cần thao tác
reset-sandbox-email-address
Tạo địa chỉ nhận email mới cho sandbox.
Tham số:
sandbox_id(bắt buộc): ID của sandbox cần thao tác
forward-sandbox-message
Chuyển tiếp thư trong sandbox đến một địa chỉ email bên ngoài. Tính vào hạn mức chuyển tiếp hàng tháng của bạn.
Tham số:
sandbox_id(tùy chọn): ID sandbox. Dùng giá trị dự phòngMAILTRAP_SANDBOX_ID.message_id(bắt buộc): ID của thư sandbox cần chuyển tiếpemail(bắt buộc): Địa chỉ email nhận thư được chuyển tiếp
update-sandbox-message
Đánh dấu thư trong sandbox là đã đọc hoặc chưa đọc.
Tham số:
sandbox_id(tùy chọn): ID sandbox. Dùng giá trị dự phòngMAILTRAP_SANDBOX_ID.message_id(bắt buộc): ID của thư sandbox cần cập nhậtis_read(bắt buộc):trueđánh dấu là đã đọc,falseđánh dấu là chưa đọc
delete-sandbox-message
Xóa một thư trong sandbox.
Tham số:
sandbox_id(tùy chọn): ID sandbox. Dùng giá trị dự phòngMAILTRAP_SANDBOX_ID.message_id(bắt buộc): ID của thư sandbox cần xóa
get-sandbox-message-spam-score
Lấy báo cáo spam SpamAssassin cho một thư trong sandbox (điểm số, quy tắc, báo cáo đầy đủ). Phương án độc lập thay cho include_spam_report: true trên show-sandbox-email-message.
Tham số:
sandbox_id(tùy chọn): ID sandbox. Dùng giá trị dự phòngMAILTRAP_SANDBOX_ID.message_id(bắt buộc): ID của thư trong sandbox
get-sandbox-message-html-analysis
Lấy báo cáo phân tích HTML cho một thư trong sandbox (điểm tương thích với ứng dụng email, các phần tử có vấn đề). Phương án độc lập thay cho include_html_analysis: true trên show-sandbox-email-message.
Tham số:
sandbox_id(tùy chọn): ID sandbox. Dùng giá trị dự phòngMAILTRAP_SANDBOX_ID.message_id(bắt buộc): ID của thư trong sandbox
get-sandbox-message-headers
Lấy các tiêu đề thư đã phân tích cú pháp của một thư trong sandbox.
Tham số:
sandbox_id(tùy chọn): ID sandbox. Dùng giá trị dự phòngMAILTRAP_SANDBOX_ID.message_id(bắt buộc): ID của thư trong sandbox
get-sandbox-message-html
Lấy nội dung HTML đã kết xuất của một thư trong sandbox.
Tham số:
sandbox_id(tùy chọn): ID sandbox. Dùng giá trị dự phòngMAILTRAP_SANDBOX_ID.message_id(bắt buộc): ID của thư trong sandbox
get-sandbox-message-text
Lấy nội dung văn bản thuần của một thư trong sandbox.
Tham số:
sandbox_id(tùy chọn): ID sandbox. Dùng giá trị dự phòngMAILTRAP_SANDBOX_ID.message_id(bắt buộc): ID của thư trong sandbox
get-sandbox-message-raw
Lấy thư ở định dạng MIME thô (tiêu đề + nội dung) trong sandbox.
Tham số:
sandbox_id(tùy chọn): ID sandbox. Dùng giá trị dự phòngMAILTRAP_SANDBOX_ID.message_id(bắt buộc): ID của thư trong sandbox
get-sandbox-message-eml
Lấy thư được kết xuất dưới dạng dữ liệu tệp EML (phù hợp để đính kèm vào phiếu hỗ trợ hoặc nhập vào ứng dụng email khác).
Tham số:
sandbox_id(tùy chọn): ID sandbox. Dùng giá trị dự phòngMAILTRAP_SANDBOX_ID.message_id(bắt buộc): ID của thư trong sandbox
get-sandbox-message-html-source
Lấy mã nguồn HTML chưa kết xuất của một thư trong sandbox (HTML trước mọi biến đổi phía Mailtrap như viết lại liên kết CID).
Tham số:
sandbox_id(tùy chọn): ID sandbox. Dùng giá trị dự phòngMAILTRAP_SANDBOX_ID.message_id(bắt buộc): ID của thư trong sandbox
list-sandbox-attachments
Liệt kê tất cả tệp đính kèm của một thư trong sandbox (tên tệp, loại nội dung, kích thước, đường dẫn tải xuống).
Tham số:
sandbox_id(tùy chọn): ID sandbox. Dùng giá trị dự phòngMAILTRAP_SANDBOX_ID.message_id(bắt buộc): ID của thư trong sandbox
get-sandbox-attachment
Lấy siêu dữ liệu và URL tải xuống của một tệp đính kèm.
Tham số:
sandbox_id(tùy chọn): ID sandbox. Dùng giá trị dự phòngMAILTRAP_SANDBOX_ID.message_id(bắt buộc): ID của thư sandbox chứa tệp đính kèmattachment_id(bắt buộc): ID của tệp đính kèm cần lấy
list-domains
Liệt kê các miền và trạng thái xác minh DNS của chúng.
Tham số:
- Không yêu cầu tham số
get-domain
Lấy miền theo ID và trạng thái xác minh của miền đó (bao gồm các bản ghi DNS). Có thể thêm hướng dẫn thiết lập DNS bằng cách đặt include_setup_instructions thành true.
Tham số:
domain_id(bắt buộc): ID miền (bí danh cũ:sending_domain_id)include_setup_instructions(tùy chọn): Nếu làtrue, thêm hướng dẫn thiết lập DNS vào phản hồi. Mặc định:false
create-domain
Tạo miền mới. Sau khi tạo, hãy thêm các bản ghi DNS để xác minh miền (dùng get-domain với include_setup_instructions: true để xem các bản ghi).
Tham số:
domain_name(bắt buộc): Tên miền (ví dụ: example.com)
update-domain
Cập nhật cài đặt theo dõi và thư đến của một miền.
Tham số:
domain_id(bắt buộc): ID miền (bí danh cũ:sending_domain_id)open_tracking_enabled(không bắt buộc): Theo dõi lượt mở email được gửi từ miền nàyclick_tracking_enabled(không bắt buộc): Theo dõi lượt nhấp vào liên kết trong email được gửi từ miền nàytracking_opt_out_enabled(không bắt buộc): Thêm liên kết từ chối theo dõi vào email được theo dõi. Yêu cầu bật theo dõi lượt mở hoặc lượt nhấpauto_unsubscribe_link_enabled(không bắt buộc): Tự động thêm liên kết hủy đăng ký vào emailinbound_enabled(không bắt buộc): Cho phép gắn miền này với hộp thư đến để nhận tất cả thư
Phải cung cấp ít nhất một cài đặt ngoài domain_id.
delete-domain
Xóa một miền.
Tham số:
domain_id(bắt buộc): ID miền cần xóa (bí danh cũ:sending_domain_id)
send-domain-setup-instructions
Gửi hướng dẫn thiết lập DNS của một miền qua email đến địa chỉ được chỉ định. Hữu ích khi cần chuyển tiếp bản ghi DNS cho đồng đội DevOps.
Tham số:
domain_id(bắt buộc): ID miền (bí danh cũ:sending_domain_id)email(bắt buộc): Địa chỉ email nhận hướng dẫn thiết lập DNS
get-company-info
Lấy thông tin công ty của một miền, dùng để xác minh tuân thủ miền.
Tham số:
domain_id(bắt buộc): ID miền (bí danh cũ:sending_domain_id)
create-company-info
Thiết lập thông tin công ty của một miền, cần thiết để xác minh tuân thủ miền.
Tham số:
domain_id(bắt buộc): ID miền (bí danh cũ:sending_domain_id)name(bắt buộc): Tên công ty hoặc cá nhânaddress(bắt buộc): Địa chỉ đường phốcity(bắt buộc): Thành phốcountry(bắt buộc): Quốc giazip_code(bắt buộc): Mã ZIP hoặc mã bưu chínhwebsite_url(bắt buộc): URL trang web của công typhone(không bắt buộc): Số điện thoạiprivacy_policy_url(không bắt buộc): URL trang chính sách quyền riêng tưterms_of_service_url(không bắt buộc): URL trang điều khoản dịch vụinfo_level(không bắt buộc):businesshoặcindividual
update-company-info
Cập nhật thông tin công ty của một miền.
Tham số:
domain_id(bắt buộc): ID miền (bí danh cũ:sending_domain_id)- Tất cả các trường của create-company-info đều không bắt buộc. Phải cung cấp ít nhất một trường; các trường bị bỏ qua sẽ không thay đổi.
list-suppressions
Liệt kê hoặc tìm kiếm các mục trong danh sách chặn (email bị trả lại vĩnh viễn, khiếu nại spam, hủy đăng ký, nhập thủ công). Mỗi lần gọi trả về tối đa 1000 kết quả.
Tham số:
email(không bắt buộc): Bộ lọc email. Chỉ trả về các mục trong danh sách chặn khớp với địa chỉ này.
create-suppression
Thêm địa chỉ email vào danh sách chặn của tài khoản để Mailtrap ngừng gửi email đến địa chỉ đó.
Tham số:
email(bắt buộc): Địa chỉ email cần chặndomain_id(bắt buộc): ID miền áp dụng mục chặn nàysending_stream(bắt buộc):transactionalhoặcbulktype(không bắt buộc):hard bounce,spam complaint,unsubscriptionhoặcmanual import. Mặc định làmanual import
delete-suppression
Xóa một mục chặn theo ID. Mailtrap sẽ tiếp tục gửi email đến địa chỉ này, trừ khi địa chỉ đó lại bị chặn.
Tham số:
suppression_id(bắt buộc): ID của mục chặn cần xóa
list-tracking-opt-outs
Liệt kê các địa chỉ email bị loại trừ khỏi việc theo dõi lượt mở và lượt nhấp. Mỗi lần gọi trả về tối đa 1000 bản ghi.
Tham số:
email(không bắt buộc): Bộ lọc email. Chỉ trả về các mục từ chối theo dõi khớp với địa chỉ nàystart_time(không bắt buộc): Chỉ lấy các mục từ chối theo dõi được tạo vào hoặc sau thời điểm này (ISO 8601)end_time(không bắt buộc): Chỉ lấy các mục từ chối theo dõi được tạo vào hoặc trước thời điểm này (ISO 8601)last_id(không bắt buộc): Con trỏ phân trang —last_idtừ phản hồi trước đó
create-tracking-opt-out
Loại trừ một địa chỉ email khỏi việc theo dõi lượt mở và lượt nhấp đối với một miền.
Tham số:
email(bắt buộc): Địa chỉ email từ chối theo dõidomain_id(bắt buộc): ID miền áp dụng mục từ chối theo dõi này
delete-tracking-opt-out
Xóa một địa chỉ email khỏi danh sách từ chối theo dõi để tiếp tục áp dụng việc theo dõi lượt mở và lượt nhấp cho địa chỉ đó.
Tham số:
tracking_opt_out_id(bắt buộc): ID của mục từ chối theo dõi cần xóa
list-webhooks
Liệt kê tất cả webhook được cấu hình cho tài khoản. Trả về toàn bộ bản ghi webhook dưới dạng JSON.
Tham số:
- Không yêu cầu tham số
get-webhook
Lấy một webhook theo ID. Trả về toàn bộ bản ghi webhook dưới dạng JSON. Lưu ý: signing_secret không được trả về ở đây — chỉ có trong phản hồi từ create-webhook.
Tham số:
webhook_id(bắt buộc): ID của webhook cần lấy
create-webhook
Tạo webhook. Phản hồi bao gồm signing_secret để xác minh chữ ký của tải trọng webhook — bí mật này chỉ được trả về khi tạo, vì vậy hãy lưu lại ngay. Nếu làm mất, hãy tạo lại webhook.
Tham số:
url(bắt buộc): URL mà Mailtrap sẽ POST các sự kiện webhook đếnwebhook_type(bắt buộc):"email_sending","audit_log"hoặc"inbound_receiving"active(không bắt buộc, boolean): mặc định làtruepayload_format(không bắt buộc):"json"hoặc"jsonlines". Mặc định là"json"sending_stream(không bắt buộc, chỉ dành choemail_sending):"transactional"hoặc"bulk"event_types(không bắt buộc, chỉ dành choemail_sending): mảng gồmdelivery,soft_bounce,bounce,suspension,unsubscribe,open,spam_complaint,click,rejectdomain_id(không bắt buộc, chỉ dành choemail_sending): ID miền để giới hạn webhook nàyinbound_inbox_id(không bắt buộc, chỉ dành choinbound_receiving): ID hộp thư đến được liên kết với webhook; bỏ qua để áp dụng cho tất cả hộp thư đến trong tài khoản
update-webhook
Cập nhật các trường có thể thay đổi của webhook. Không thể thay đổi webhook_type, sending_stream và domain_id sau khi tạo — hãy tạo lại webhook nếu cần thay đổi các trường đó.
Tham số:
webhook_id(bắt buộc): ID của webhook cần cập nhậturl(không bắt buộc): URL webhook mớiactive(không bắt buộc, boolean): Bật hoặc tắt webhookpayload_format(không bắt buộc):"json"hoặc"jsonlines"event_types(không bắt buộc, chỉ dành choemail_sending): mảng gồmdelivery,soft_bounce,bounce,suspension,unsubscribe,open,spam_complaint,click,rejectinbound_inbox_id(không bắt buộc, chỉ dành choinbound_receiving): ID hộp thư đến được liên kết với webhook
delete-webhook
Xóa vĩnh viễn một webhook theo ID. Trả về bản ghi webhook đã xóa.
Tham số:
webhook_id(bắt buộc): ID của webhook cần xóa
get-contact
Lấy một liên hệ theo ID hoặc email. Trả về toàn bộ bản ghi liên hệ (thành viên danh sách, trạng thái, trường tùy chỉnh).
Tham số:
contact_identifier(bắt buộc): ID liên hệ hoặc địa chỉ email
create-contact
Tạo liên hệ mới.
Tham số:
email(bắt buộc): Địa chỉ emailfields(không bắt buộc): Giá trị trường tùy chỉnh, được ánh xạ theo thẻ hợp nhất (ví dụ:first_name). Giá trị dạng chuỗi, số hoặc booleanlist_ids(không bắt buộc): ID các danh sách liên hệ để đăng ký liên hệ nàyunsubscribed(không bắt buộc, boolean): Tạo liên hệ với trạng tháiunsubscribed
update-contact
Cập nhật một liên hệ hiện có được xác định bằng ID hoặc email. list_ids thay thế toàn bộ tập hợp danh sách thành viên của liên hệ; list_ids_included/list_ids_excluded thêm/xóa mà không ảnh hưởng đến các mục còn lại.
Tham số:
contact_identifier(bắt buộc): ID liên hệ hoặc emailemail(không bắt buộc): Địa chỉ email mớifields(không bắt buộc): Giá trị trường tùy chỉnh, được ánh xạ theo thẻ hợp nhấtlist_ids(không bắt buộc): Thay thế tập hợp danh sách thành viên bằng chính xác danh sách nàylist_ids_included(không bắt buộc): ID danh sách cần thêm (bổ sung)list_ids_excluded(không bắt buộc): ID danh sách cần xóaunsubscribed(không bắt buộc, boolean): Đặt thànhunsubscribed(true) hoặcsubscribed(false)
delete-contact
Xóa vĩnh viễn một liên hệ theo ID hoặc email. Trả về bản ghi liên hệ đã xóa nếu API phản hồi bản ghi đó; nếu không, trả về tải trọng xác nhận.
Tham số:
contact_identifier(bắt buộc): ID liên hệ hoặc email
create-contact-event
Ghi nhận một sự kiện liên hệ cho một liên hệ (theo ID hoặc email). Dùng để kích hoạt các quy trình tự động hóa danh sách liên hệ.
Tham số:
contact_identifier(bắt buộc): ID liên hệ hoặc emailname(bắt buộc): Tên sự kiện (khớp với các điều kiện kích hoạt tự động hóa)params(bắt buộc): Đối tượng gồm các cặp khóa/giá trị tùy ý. Giá trị có thể là chuỗi, số, boolean hoặc null
list-contact-lists
Liệt kê tất cả danh sách liên hệ của tài khoản.
Tham số:
search(không bắt buộc): Lọc danh sách liên hệ theo tên (khớp không phân biệt chữ hoa chữ thường), ví dụ:news
get-contact-list
Lấy danh sách liên hệ theo ID.
Tham số:
list_id(bắt buộc): ID của danh sách liên hệ cần lấy
create-contact-list
Tạo danh sách liên hệ mới.
Tham số:
name(bắt buộc): Tên cho danh sách mới
update-contact-list
Đổi tên một danh sách liên hệ hiện có.
Tham số:
list_id(bắt buộc): ID của danh sách liên hệname(bắt buộc): Tên mới cho danh sách
delete-contact-list
Xóa vĩnh viễn một danh sách liên hệ theo ID.
Tham số:
list_id(bắt buộc): ID của danh sách liên hệ cần xóa
list-contact-fields
Liệt kê tất cả định nghĩa trường liên hệ của tài khoản.
Tham số:
- Không yêu cầu tham số
get-contact-field
Lấy định nghĩa trường liên hệ theo ID.
Tham số:
field_id(bắt buộc): ID của trường liên hệ
create-contact-field
Tạo định nghĩa trường liên hệ mới. merge_tag phải là duy nhất trong tài khoản và được dùng làm tên chỗ giữ trong các biến mẫu.
Tham số:
name(bắt buộc): Tên hiển thị (ví dụ: "First Name")merge_tag(bắt buộc): Tên chỗ giữ duy nhất (ví dụ:first_name)data_type(bắt buộc): Một trong các giá trịtext,number,boolean,date
update-contact-field
Cập nhật định nghĩa trường liên hệ. Có thể thay đổi bất kỳ tổ hợp nào của name, merge_tag và data_type.
Tham số:
field_id(bắt buộc): ID của trường liên hệname(không bắt buộc): Tên hiển thị mớimerge_tag(không bắt buộc): Thẻ hợp nhất mới (phải tiếp tục là duy nhất)data_type(không bắt buộc): Một trong các giá trịtext,number,boolean,date
delete-contact-field
Xóa vĩnh viễn định nghĩa trường liên hệ theo ID.
Tham số:
field_id(bắt buộc): ID của trường liên hệ cần xóa
create-contact-import
Nhập hàng loạt liên hệ. Trả về bản ghi tác vụ nhập; kiểm tra trạng thái bằng get-contact-import.
Tham số:
contacts(bắt buộc): Mảng các mục liên hệ. Mỗi mục cần có:email(bắt buộc): Địa chỉ email của liên hệfields(không bắt buộc): Giá trị trường tùy chỉnh, được ánh xạ theo thẻ hợp nhất (giá trị dạng chuỗi hoặc số)list_ids_included(không bắt buộc): ID danh sách cần thêm liên hệ vàolist_ids_excluded(không bắt buộc): ID danh sách cần xóa liên hệ khỏi
get-contact-import
Lấy trạng thái của tác vụ nhập liên hệ (created/started/finished/failed) cùng số lượng đã tạo/cập nhật/vượt giới hạn.
Tham số:
import_id(bắt buộc): ID của tác vụ nhập liên hệ
create-contact-export
Xuất các liên hệ khớp với một tập hợp bộ lọc kết hợp bằng AND. Trả về bản ghi tác vụ xuất; kiểm tra trạng thái bằng get-contact-export để lấy URL tải xuống khi status là finished.
Tham số:
filters(bắt buộc): Mảng các đối tượng bộ lọc. Mỗi đối tượng có:name(bắt buộc): Trường cần lọc (list_id,subscription_status,email, v.v.)operator(bắt buộc): Một trong các giá trịequal,not_equal,contains,not_contains,is_empty,is_not_emptyvalue(bắt buộc): Giá trị so sánh (chuỗi, số, boolean hoặc mảng)
get-contact-export
Lấy trạng thái của một tác vụ xuất danh bạ. Khi status là finished, trường url chứa liên kết tải xuống CSV.
Tham số:
export_id(bắt buộc): ID của tác vụ xuất danh bạ
list-email-campaigns
Liệt kê các chiến dịch email của tài khoản, mới nhất trước, với phân trang bằng mã thông báo trang. Có thể lọc theo tên bằng search.
Tham số:
token(không bắt buộc): Số trang cần truy xuất (phân trang bằng mã thông báo trang). Mặc định là1per_page(không bắt buộc): Số chiến dịch mỗi trang. Mặc định là50, tối đa100search(không bắt buộc): Lọc chiến dịch theo tên (khớp một phần, không phân biệt chữ hoa chữ thường)
get-email-campaign
Lấy chiến dịch email theo ID.
Tham số:
email_campaign_id(bắt buộc): ID của chiến dịch email
create-email-campaign
Tạo chiến dịch email mới. Chiến dịch luôn được tạo ở trạng thái draft; việc lên lịch và bắt đầu được thực hiện bằng các công cụ riêng (schedule-email-campaign, start-email-campaign).
Tham số:
name(bắt buộc): Tên chiến dịchdomain_id(bắt buộc): ID của miền đã xác minh dùng cho chiến dịch, như được trả về bởilist-domainsfrom_local_part(bắt buộc): Phần cục bộ (trước dấu @) của địa chỉ Người gửitemplate_attributes(bắt buộc): Mẫu email nội tuyến. Bao gồm:subject(bắt buộc): Dòng tiêu đề email (tối đa 255 ký tự). Hỗ trợ thẻ hợp nhất, ví dụHi {{first_name}}body_html(không bắt buộc): Nội dung HTML (thiết kế). Bắt buộc trước khi có thể lên lịch hoặc bắt đầu chiến dịch. Thêm liên kết hủy đăng ký bằng một thẻ neo cóhrefchứa phần giữ chỗ__unsubscribe_url__body_text(không bắt buộc): Bản thay thế dạng văn bản thuần của nội dung emailmerge_tags(không bắt buộc): Tên thuần của các thẻ hợp nhất được tham chiếu trong tiêu đề/nội dung, ví dụ["first_name"]
from_display_name(không bắt buộc): Tên hiển thị trong tiêu đề Người gửireply_to(không bắt buộc): Các phần của địa chỉ Trả lời đến (display_name,local_part,domain)delivery_mode(không bắt buộc):rapid(gửi nhanh nhất có thể) hoặcgradual(giới hạn tốc độ ở mứcdelivery_options.emails_per_hour)delivery_options(không bắt buộc): Tùy chọn giới hạn tốc độ gửi (emails_per_hour)contact_list_ids(không bắt buộc): ID của các danh sách liên hệ sẽ gửi đến (được xem là toàn bộ tập hợp danh sách được bao gồm)contact_segment_ids(không bắt buộc): ID của các phân khúc liên hệ sẽ gửi đến (được xem là toàn bộ tập hợp phân khúc được bao gồm)
update-email-campaign
Cập nhật chiến dịch email draft. Chỉ các trường được cung cấp mới thay đổi; mẫu được chỉnh sửa tại chỗ. Không thể cập nhật chiến dịch ở bất kỳ trạng thái nào khác.
Tham số:
email_campaign_id(bắt buộc): ID của chiến dịch email cần cập nhật- Tất cả tham số khác đều không bắt buộc và giống với
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
Xóa chiến dịch email theo ID. Chỉ có thể xóa chiến dịch ở trạng thái draft.
Tham số:
email_campaign_id(bắt buộc): ID của chiến dịch email cần xóa
start-email-campaign
Bắt đầu gửi ngay chiến dịch email draft. Chỉ có thể bắt đầu các chiến dịch draft; mẫu phải có thiết kế body_html, đồng thời phải thiết lập đối tượng nhận và miền đã xác minh.
Tham số:
email_campaign_id(bắt buộc): ID của chiến dịch email cần bắt đầu
schedule-email-campaign
Lên lịch bắt đầu gửi chiến dịch email draft vào một thời điểm trong tương lai. Chỉ có thể lên lịch cho các chiến dịch draft.
Tham số:
email_campaign_id(bắt buộc): ID của chiến dịch email cần lên lịchdatetime(bắt buộc): Thời điểm gửi chiến dịch (ISO 8601). Phải là thời điểm trong tương lai và không quá 1 tháng kể từ hiện tại
cancel-email-campaign
Hủy chiến dịch email scheduled, đưa chiến dịch trở lại trạng thái draft. Chỉ có thể hủy các chiến dịch scheduled.
Tham số:
email_campaign_id(bắt buộc): ID của chiến dịch email cần hủy
terminate-email-campaign
Chấm dứt chiến dịch email hiện đang gửi (started, queued hoặc paused), hủy lần gửi đang diễn ra.
Tham số:
email_campaign_id(bắt buộc): ID của chiến dịch email cần chấm dứt
reset-email-campaign
Đặt lại chiến dịch email scheduled về trạng thái draft. Chỉ có thể đặt lại các chiến dịch scheduled.
Tham số:
email_campaign_id(bắt buộc): ID của chiến dịch email cần đặt lại
get-email-campaign-stats
Lấy số liệu thống kê hiệu suất tổng hợp của một chiến dịch email (số lượng và tỷ lệ gửi thành công, mở, nhấp, thư bị trả lại, khiếu nại spam và hủy đăng ký).
Tham số:
email_campaign_id(bắt buộc): ID của chiến dịch emailstart_date(không bắt buộc): Thời điểm bắt đầu khoảng thời gian tổng hợp (bao gồm),YYYY-MM-DD. Mặc định là ngày chiến dịch được bắt đầu gần nhấtend_date(không bắt buộc): Thời điểm kết thúc khoảng thời gian tổng hợp (bao gồm),YYYY-MM-DD. Mặc định là ngày hiện tại
list-accounts
Liệt kê các tài khoản Mailtrap mà mã thông báo API hiện tại có thể truy cập, cùng với cấp độ truy cập của từng tài khoản. Hoạt động mà không cần MAILTRAP_ACCOUNT_ID, vì vậy hãy dùng công cụ này để tìm ID tài khoản của bạn.
Tham số:
- Không cần tham số
get-billing-usage
Lấy mức sử dụng trong chu kỳ thanh toán hiện tại của tài khoản: các gói gửi và kiểm thử, giới hạn và số lượng hiện tại.
Tham số:
- Không cần tham số
list-account-accesses
Liệt kê quyền truy cập tài khoản (người dùng, lời mời, mã thông báo API) của tài khoản. Có thể dùng bộ lọc tùy chọn để giới hạn kết quả theo các tài nguyên cụ thể. Yêu cầu quyền quản trị viên/chủ sở hữu tài khoản.
Tham số:
domain_uuids(không bắt buộc): Lọc theo UUID miền (mảng chuỗi)inbox_ids(không bắt buộc): Lọc theo ID sandbox (mảng chuỗi)project_ids(không bắt buộc): Lọc theo ID dự án sandbox (mảng chuỗi)
remove-account-access
Xóa một quyền truy cập tài khoản theo ID. Với các đối tượng chỉ định User, thao tác này thu hồi quyền của họ; với các đối tượng chỉ định Invite hoặc ApiToken, thao tác này xóa hoàn toàn đối tượng chỉ định. Yêu cầu quyền quản trị viên/chủ sở hữu.
Tham số:
account_access_id(bắt buộc): ID của bản ghi quyền truy cập cần xóa
get-permission-resources
Lấy tất cả tài nguyên (sandbox, dự án, miền, thanh toán, tài khoản) mà mã thông báo API có quyền quản trị, được lồng theo cấu trúc phân cấp.
Tham số:
- Không cần tham số
bulk-update-permissions
Tạo, cập nhật hoặc xóa hàng loạt quyền cho một quyền truy cập tài khoản. Các cặp (resource_type, resource_id) hiện có sẽ được cập nhật; các cặp mới sẽ được tạo. Đặt destroy: true trên một mục để xóa mục đó.
Tham số:
account_access_id(bắt buộc): ID quyền truy cập tài khoản đíchpermissions(bắt buộc): Mảng các mục quyền. Mỗi mục có:resource_id(bắt buộc): ID tài nguyên (số hoặc chuỗi)resource_type(bắt buộc): Một trong các giá trịaccount,project,inbox,domain,billingaccess_level(không bắt buộc):admin/100hoặcviewer/10destroy(không bắt buộc, boolean): Khi là true, xóa quyền này thay vì tạo/cập nhật quyền
list-api-tokens
Liệt kê tất cả mã thông báo API của tài khoản.
Tham số:
- Không cần tham số
create-api-token
Tạo mã thông báo API mới. Phản hồi bao gồm giá trị bí mật token — đây là lần duy nhất toàn bộ mã thông báo được trả về, vì vậy hãy lưu ngay. Nếu làm mất, hãy tạo lại mã thông báo.
Tham số:
name(bắt buộc): Tên hiển thị của mã thông báoexpires_at(không bắt buộc): Thời hạn hết hạn của mã thông báo dưới dạng ngày giờ ISO 8601. Bỏ qua để dùng mặc định của máy chủ (1 năm); truyềnnulltường minh để tạo mã thông báo không bao giờ hết hạn. Các giá trị trong quá khứ hoặc cách hiện tại hơn 5 năm sẽ bị từ chốiresources(không bắt buộc): Mảng quyền tài nguyên để giới hạn phạm vi của mã thông báo. Mỗi mục có:resource_type(bắt buộc): Một trong các giá trịaccount,project,inbox,domain,billingresource_id(bắt buộc): ID của tài nguyênaccess_level(bắt buộc):100(quản trị viên) hoặc10(người xem)
get-api-token
Lấy mã thông báo API theo ID. Chỉ trả về siêu dữ liệu — giá trị bí mật của mã thông báo không được trả về ở đây (chỉ có trong create-api-token / reset-api-token).
Tham số:
api_token_id(bắt buộc): ID của mã thông báo API
reset-api-token
Đặt lại (xoay vòng) mã thông báo API theo ID. Phản hồi bao gồm giá trị bí mật token mới — chỉ được trả về trong lần gọi này, vì vậy hãy lưu ngay. Mã thông báo trước đó sẽ bị vô hiệu hóa.
Tham số:
api_token_id(bắt buộc): ID của mã thông báo API cần đặt lạiexpires_at(không bắt buộc): Thời hạn hết hạn của mã thông báo mới dưới dạng ngày giờ ISO 8601. Bỏ qua để dùng mặc định của máy chủ (1 năm); truyềnnulltường minh để tạo mã thông báo không bao giờ hết hạn. Các giá trị trong quá khứ hoặc cách hiện tại hơn 5 năm sẽ bị từ chối
delete-api-token
Xóa vĩnh viễn mã thông báo API theo ID. Sau khi bị xóa, mã thông báo không thể dùng để xác thực nữa.
Tham số:
api_token_id(bắt buộc): ID của mã thông báo API cần xóa
list-sub-accounts
Liệt kê các tài khoản phụ trong tổ chức. Yêu cầu biến môi trường MAILTRAP_ORGANIZATION_ID và quyền quản lý tài khoản phụ.
Tham số:
- Không cần tham số
create-sub-account
Tạo tài khoản phụ mới trong tổ chức. Yêu cầu biến môi trường MAILTRAP_ORGANIZATION_ID và quyền quản lý tài khoản phụ.
Tham số:
name(bắt buộc): Tên hiển thị của tài khoản phụ mới
delete-sub-account
Xóa vĩnh viễn tài khoản phụ theo ID, đồng thời xóa toàn bộ dữ liệu của tài khoản đó. Xóa tài khoản phụ cuối cùng sẽ xóa tổ chức; gọi lại sẽ trả về 404. Nếu có thao tác xóa đồng thời cùng một tài khoản phụ, yêu cầu sẽ trả về 409. Yêu cầu biến môi trường MAILTRAP_ORGANIZATION_ID và quyền quản trị tổ chức; tổ chức cũng phải bật tính năng Organization & Sub-accounts (nếu không sẽ trả về 403).
Tham số:
sub_account_id(bắt buộc): ID của tài khoản phụ cần xóa
list-inbound-folders
Liệt kê tất cả thư mục nhận trong tài khoản. Trả về bản tóm tắt đã định dạng.
Tham số:
- Không cần tham số
get-inbound-folder
Lấy một thư mục nhận theo ID. Trả về toàn bộ bản ghi thư mục dưới dạng JSON.
Tham số:
folder_id(bắt buộc): ID của thư mục nhận
create-inbound-folder
Tạo thư mục nhận mới.
Tham số:
name(bắt buộc): Tên thư mục
update-inbound-folder
Đổi tên thư mục nhận.
Tham số:
folder_id(bắt buộc): ID của thư mục nhậnname(bắt buộc): Tên thư mục mới
delete-inbound-folder
Xóa vĩnh viễn thư mục nhận cùng với tất cả hộp thư trong đó.
Tham số:
folder_id(bắt buộc): ID của thư mục nhận
list-inbound-inboxes
Liệt kê tất cả hộp thư trong một thư mục nhận. Trả về bản tóm tắt đã định dạng.
Tham số:
folder_id(bắt buộc): ID của thư mục nhận
get-inbound-inbox
Lấy một hộp thư nhận theo ID. Trả về toàn bộ bản ghi hộp thư dưới dạng JSON.
Tham số:
folder_id(bắt buộc): ID của thư mục nhậninbox_id(bắt buộc): ID của hộp thư
create-inbound-inbox
Tạo hộp thư nhận mới trong một thư mục.
Tham số:
folder_id(bắt buộc): ID của thư mục thư đếnname(bắt buộc): Tên hộp thư đếndomain_id(không bắt buộc): Gắn với miền tùy chỉnh (hộp thư nhận tất cả). Bỏ qua nếu dùng hộp thư do Mailtrap lưu trữ
update-inbound-inbox
Đổi tên hộp thư đến.
Tham số:
folder_id(bắt buộc): ID của thư mục thư đếninbox_id(bắt buộc): ID của hộp thư đếnname(bắt buộc): Tên mới của hộp thư đến
delete-inbound-inbox
Xóa vĩnh viễn hộp thư đến.
Tham số:
folder_id(bắt buộc): ID của thư mục thư đếninbox_id(bắt buộc): ID của hộp thư đến
list-inbound-messages
Liệt kê thư đã nhận trong hộp thư đến (phân trang bằng con trỏ). Trả về bản tóm tắt được định dạng, kèm gợi ý về trang tiếp theo nếu còn kết quả.
Tham số:
inbox_id(bắt buộc): ID của hộp thư đếnlast_id(không bắt buộc): Con trỏ phân trang từlast_idcủa phản hồi trước đó
get-inbound-message
Lấy một thư đến cùng toàn bộ nội dung và URL tải xuống tệp đính kèm. Trả về bản ghi thư đầy đủ dưới dạng JSON.
Tham số:
inbox_id(bắt buộc): ID của hộp thư đếnmessage_id(bắt buộc): ID của thư
delete-inbound-message
Xóa vĩnh viễn một thư đến.
Tham số:
inbox_id(bắt buộc): ID của hộp thư đếnmessage_id(bắt buộc): ID của thư
reply-to-inbound-message
Trả lời thư đến (gửi cho người gửi ban đầu). Thao tác này gửi email thật. Địa chỉ có thể là chuỗi email thuần hoặc { email, name? }.
Tham số:
inbox_id(bắt buộc): ID của hộp thư đếnmessage_id(bắt buộc): ID của thư cần trả lờitext/html(khuyến nghị cung cấp ít nhất một): Nội dung trả lờifrom(không bắt buộc): Người gửi. Không được chấp nhận với hộp thư do Mailtrap lưu trữ; bắt buộc với hộp thư dùng miền tùy chỉnhcc/bcc/reply_to(không bắt buộc): Địa chỉ bổ sungcategory(không bắt buộc): Danh mục thưattachments(không bắt buộc): Mảng{ content (base64), filename, type?, disposition?, content_id? }headers/custom_variables(không bắt buộc): Đối tượng chứa các giá trị chuỗi
reply-all-to-inbound-message
Trả lời thư đến và gửi bản sao cho những người nhận khác trong thư gốc. Thao tác này gửi email thật. Dùng cùng các tham số như reply-to-inbound-message.
Tham số:
inbox_id(bắt buộc): ID của hộp thư đếnmessage_id(bắt buộc): ID của thư cần trả lời- Cùng các trường gửi không bắt buộc như
reply-to-inbound-message
forward-inbound-message
Chuyển tiếp thư đến cho người nhận mới. Thao tác này gửi email thật.
Tham số:
inbox_id(bắt buộc): ID của hộp thư đếnmessage_id(bắt buộc): ID của thư cần chuyển tiếpto(bắt buộc): Ít nhất một người nhận (chuỗi email thuần hoặc{ email, name? }, hoặc một mảng)- Cùng các trường gửi không bắt buộc như
reply-to-inbound-message
list-inbound-threads
Liệt kê các chuỗi hội thoại trong hộp thư đến (phân trang bằng con trỏ), có thể lọc theo search. Trả về bản tóm tắt được định dạng, kèm gợi ý về trang tiếp theo nếu còn kết quả.
Tham số:
inbox_id(bắt buộc): ID của hộp thư đếnlast_id(không bắt buộc): Con trỏ phân trang từlast_idcủa phản hồi trước đósearch(không bắt buộc): Văn bản không phân biệt chữ hoa chữ thường, được so khớp với chủ đề của chuỗi hội thoại và các địa chỉ from/to/cc/bcc trong thư của chuỗi đó. Truyền cùng giá trị khi phân trang
get-inbound-thread
Lấy một chuỗi hội thoại đến cùng các thư được nhúng trong đó (từ cũ nhất đến mới nhất). Trả về bản ghi chuỗi hội thoại đầy đủ dưới dạng JSON.
Tham số:
inbox_id(bắt buộc): ID của hộp thư đếnthread_id(bắt buộc): ID của chuỗi hội thoại
delete-inbound-thread
Xóa vĩnh viễn một chuỗi hội thoại đến.
Tham số:
inbox_id(bắt buộc): ID của hộp thư đếnthread_id(bắt buộc): ID của chuỗi hội thoại
list-inbound-forward-rules
Liệt kê các quy tắc chuyển tiếp của hộp thư đến. Trả về bản tóm tắt được định dạng.
Tham số:
inbox_id(bắt buộc): ID của hộp thư đến
get-inbound-forward-rule
Lấy một quy tắc chuyển tiếp đến theo ID. Trả về bản ghi quy tắc đầy đủ dưới dạng JSON, bao gồm các điều kiện và đích nhận.
Tham số:
inbox_id(bắt buộc): ID của hộp thư đếnforward_rule_id(bắt buộc): ID của quy tắc chuyển tiếp
create-inbound-forward-rule
Tạo quy tắc chuyển tiếp cho hộp thư đến. Các thư đã nhận khớp với tất cả điều kiện sẽ được chuyển tiếp đến các đích nhận của quy tắc.
Tham số:
inbox_id(bắt buộc): ID của hộp thư đếnname(bắt buộc): Tên quy tắc, duy nhất trong hộp thưconditions(không bắt buộc): Mảng{ match_type, operator, value?, header_key? }.match_typelàsender,recipienthoặcheader;operatorlàequal,not_equal,contains,starts_with,ends_with,emptyhoặcnot_empty(empty/not_emptychỉ áp dụng choheadervà không nhậnvalue);header_keylà bắt buộc đối vớiheader. Bỏ qua hoặc truyền[]để khớp với mọi thưdestinations(không bắt buộc): Mảng{ email }để chuyển tiếp các thư khớp điều kiện đến
update-inbound-forward-rule
Cập nhật quy tắc chuyển tiếp đến. Chỉ các trường được cung cấp mới thay đổi; nếu cung cấp mảng conditions hoặc destinations, toàn bộ tập hợp tương ứng sẽ được thay thế.
Tham số:
inbox_id(bắt buộc): ID của hộp thư đếnforward_rule_id(bắt buộc): ID của quy tắc chuyển tiếpname(không bắt buộc): Tên quy tắc mớiconditions(không bắt buộc): Tập hợp điều kiện thay thế (cùng cấu trúc như khi tạo);[]sẽ xóa mọi điều kiện, khiến quy tắc khớp với mọi thưdestinations(không bắt buộc): Tập hợp đích nhận thay thế;[]sẽ xóa mọi đích nhận
delete-inbound-forward-rule
Xóa vĩnh viễn một quy tắc chuyển tiếp đến.
Tham số:
inbox_id(bắt buộc): ID của hộp thư đếnforward_rule_id(bắt buộc): ID của quy tắc chuyển tiếp
Phát triển
- Sao chép kho lưu trữ:
git clone https://github.com/mailtrap/mailtrap-mcp.git
cd mailtrap-mcp
- Cài đặt các phần phụ thuộc:
npm install
Cấu hình với Claude Desktop hoặc Cursor
[!TIP] Xem vị trí của tệp cấu hình trong phần Thiết lập.
Thêm cấu hình sau:
{
"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"
}
}
}
}
Nếu bạn dùng asdf để quản lý Node.js, hãy sử dụng đường dẫn tuyệt đối đến tệp thực thi:
(ví dụ cho 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] Xem vị trí của tệp cấu hình trong phần Thiết lập.
{
"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"
}
}
}
}
}
Kiểm thử
Chạy công cụ với Mailtrap thật
Có hai cách để kiểm thử công cụ từ đầu đến cuối với tài khoản Mailtrap thật: giao diện trình duyệt MCP Inspector để khám phá tương tác, hoặc chế độ CLI để thực hiện lệnh gọi một lần từ shell.
Cả hai cách đều yêu cầu phải build gói trước:
npm run build
và xuất MAILTRAP_API_TOKEN + MAILTRAP_ACCOUNT_ID trong shell (tập lệnh mcp:cli chuyển tiếp cả hai biến này đến máy chủ được khởi chạy).
Giao diện trình duyệt
npm run dev
Inspector in ra một URL như http://localhost:6274. Mở URL đó, chuyển sang thẻ Tools, chọn một công cụ (ví dụ: get-template), điền các tham số dưới dạng JSON rồi nhấn Run. Phản hồi từ Mailtrap sẽ xuất hiện trong bảng bên dưới.
CLI
Để thực hiện lệnh gọi một lần mà không dùng giao diện, hãy dùng npm run mcp:cli. Truyền các cờ CLI của Inspector sau -- để npm chuyển tiếp nguyên văn:
# 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
Chạy máy chủ MCPB
# Run the MCPB server directly
node dist/mcpb-server.js
# Or use the provided binary
mailtrap-mcpb-server
[!TIP] Để phát triển với MCP Inspector:
npm run dev:mcpb
Xử lý lỗi
Máy chủ này sử dụng cơ chế xử lý lỗi có cấu trúc, phù hợp với các quy ước của MCP:
VALIDATION_ERROR: Lỗi xác thực đầu vàoCONFIGURATION_ERROR: Cấu hình bị thiếu hoặc không hợp lệEXECUTION_ERROR: Lỗi thực thi trong thời gian chạyTIMEOUT: Hết thời gian chờ thao tác (mặc định 30 giây)
Lỗi bao gồm thông báo có hướng dẫn xử lý và được ghi nhật ký theo cấu trúc.
Bảo mật
- Xác thực đầu vào bằng lược đồ Zod
- Xử lý biến môi trường an toàn
- Bảo vệ thao tác bằng giới hạn thời gian chờ (30 giây)
- Làm sạch thông tin nhạy cảm trong đầu ra lỗi
Ghi nhật ký
Nhật ký JSON có cấu trúc với các cấp độ: INFO, WARN, ERROR, DEBUG.
Bật ghi nhật ký gỡ lỗi bằng cách đặt DEBUG=true.
# Example: enable debug logging
DEBUG=true node dist/mcpb-server.js
Quan trọng: Máy chủ ghi nhật ký vào stderr để stdout được dành riêng cho các khung JSON-RPC. Điều này ngăn máy chủ chủ gặp lỗi phân tích cú pháp JSON do nhật ký bị xen lẫn.
Ví dụ phân tích nhật ký bằng 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")'
Khắc phục sự cố
Các vấn đề thường gặp:
- Thiếu API Token: đảm bảo đã đặt
MAILTRAP_API_TOKEN - Sandbox không hoạt động: cung cấp
sandbox_idtrong lệnh gọi công cụ (hoặctest_inbox_idcũ trên các công cụ gửi/liệt kê/hiển thị thư), hoặc đặt biến môi trườngMAILTRAP_SANDBOX_ID - Lỗi hết thời gian chờ: kiểm tra kết nối mạng và trạng thái API Mailtrap
- Lỗi xác thực: đảm bảo đã cung cấp tất cả các trường bắt buộc
Đóng góp
Chúng tôi hoan nghênh báo cáo lỗi và yêu cầu kéo trên GitHub. Dự án này hướng đến việc tạo ra một không gian cộng tác an toàn, thân thiện; những người đóng góp được kỳ vọng tuân thủ quy tắc ứng xử.
Giấy phép
Gói này là phần mềm mã nguồn mở, được cung cấp theo các điều khoản của Giấy phép MIT.
Quy tắc ứng xử
Mọi người tham gia vào các kho mã nguồn, trình theo dõi vấn đề, phòng trò chuyện và danh sách gửi thư của dự án Mailtrap đều được kỳ vọng tuân thủ quy tắc ứng xử.