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ý của bạn gửi email giao dịch với nội dung trực tiếp hoặc mẫu có sẵn qua
send-email. - Kiểm tra email trong môi trường sandbox — Gửi email thử nghiệm đến hộp thư sandbox và kiểm tra nội dung, điểm spam, và phân tích HTML.
- Theo dõi nhật ký gửi — Tìm kiếm nhật ký email và xem lịch sử sự kiện để gỡ lỗi các vấn đề gửi với
list-email-logs. - Quản lý mẫu email — Tạo, liệt kê, cập nhật hoặc xóa mẫu bằng các lệnh ngôn ngữ tự nhiên.
- Phân tích số liệu gửi — Nhận tỷ lệ gửi thành công, bị trả lại, mở và nhấp chuột cho bất kỳ khoảng thời gian nào với
get-sending-stats. - Quản lý tên miền gửi — Liệt kê, tạo và cấu hình tên miền gửi với xác minh DNS và theo dõi nhấp chuột.
Tài liệu
Máy chủ MCP Mailtrap chính thức
Máy chủ MCP chính thức cho Mailtrap — nền tảng giao email. Nó 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 tương thích MCP khác.
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ạ, tên miền gửi và webhook, kiểm tra nhật ký email và số liệu thống kê giao hàng, khắc phục sự cố khả năng giao hàng và quản lý tài nguyên tài khoản — tất cả bằng các lời nhắc ngôn ngữ tự nhiên.
Khả năng
- Email API và SMTP — Gửi email giao dịch và hàng loạt, bao gồm tin nhắn theo lô và dựa trên mẫu.
- Kiểm tra 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 của máy khách HTML.
- Giám sát giao hàng — Tìm kiếm nhật ký email, kiểm tra lịch sử sự kiện và phân tích tỷ lệ giao hàng, trả lại, mở, nhấp và spam.
- Cơ sở hạ tầng email — Quản lý tên miền gửi, 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, với nhập và xuất.
- Quản lý tài khoản — Xem lại mức sử dụng thanh toán và quản lý quyền truy cập, quyền, mã thông báo API và tài khoản phụ.
Máy khách MCP được hỗ trợ
Hoạt động với Claude Desktop, Claude Code, Cursor, VS Code và bất kỳ máy khách tương thích MCP nào khác. Hướng dẫn thiết lập cho từng loại ở 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 tên miền của bạn
- Lấy mã thông báo API từ Cài đặt API Mailtrap
- Lấy ID tài khoản từ Quản lý tài khoản Mailtrap
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 mẫu, số liệu thống kê, nhật ký email, danh sách/xem hộp thư sandbox, tên miền gửi và danh sách chặn. Chỉ tùy chọn cho các công cụ gửi (send-email, send-sandbox-email và các công cụ batch-send-*), các công cụ chiến dịch email, công cụ thông tin công ty và công cụ từ chối theo dõi.
Tùy chọn (có thể truyền dưới dạng tham số công cụ thay thế):
DEFAULT_FROM_EMAIL- Email người gửi mặc định khifromkhông được cung cấp cho send-email, send-sandbox-email hoặc các công cụ batch-send-* (nơi nó điền vàobase.from). Cho phép chuyển đổi người gửi mỗi lần gọi qua tham sốfrom.MAILTRAP_SANDBOX_ID- ID sandbox mặc định cho các công cụ sandbox khisandbox_idkhông được cung cấp. Cho phép chuyển đổi giữa các sandbox mỗi lần gọi qua tham sốsandbox_id.MAILTRAP_TEST_INBOX_ID- ID hộp thư kiểm tra mặc định cho các công cụ sandbox khitest_inbox_idkhông được cung cấp. Cho phép chuyển đổi giữa các hộp thư mỗi lần gọi qua tham sốtest_inbox_id. Bí danh kế thừa choMAILTRAP_SANDBOX_ID, vẫn được tôn trọng như một phương án dự phòng.MAILTRAP_ORGANIZATION_ID- Bắt buộc cho các công cụ tổ chức (list-sub-accounts,create-sub-account).MAILTRAP_ORGANIZATION_API_TOKEN- Mã thông báo API theo 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
CLI Smithery
Smithery là trình cài đặt và quản lý đăng ký cho các máy chủ MCP hoạt động với mọi máy khách AI.
npx @smithery/cli install mailtrap
Smithery tự động xử lý cấu hình máy khách và cung cấp quy trình thiết lập tương tác. Đây là cách dễ nhất để bắt đầu với các máy chủ MCP cục bộ.
Thiết lập
Claude Desktop
Sử dụng MCPB để cài đặt máy chủ Mailtrap. Bạn có thể tìm các tệp đó trong Bản phát hành.
Tải xuống tệp .MCPB và mở nó. Nếu bạn có Claude Desktop - nó sẽ mở 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_TEST_INBOX_ID": "your_test_inbox_id"
}
}
}
}
Nếu bạn sử dụng asdf để quản lý Node.js, bạn phải 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/npx",
"args": ["-y", "mcp-mailtrap"],
"env": {
"PATH": "/Users/<username>/.asdf/shims:/usr/bin:/bin",
"ASDF_DIR": "/opt/homebrew/opt/asdf/libexec",
"ASDF_DATA_DIR": "/Users/<username>/.asdf",
"ASDF_NODEJS_VERSION": "20.6.1",
"MAILTRAP_API_TOKEN": "your_mailtrap_api_token",
"DEFAULT_FROM_EMAIL": "your_sender@example.com",
"MAILTRAP_ACCOUNT_ID": "your_account_id",
"MAILTRAP_TEST_INBOX_ID": "your_test_inbox_id"
}
}
}
}
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 trong Bảng lệnh: Preferences: Open User Settings (JSON)
Sau đó, trong tệp cài đặt, thêm cấu hình sau:
{
"mcp": {
"servers": {
"mailtrap": {
"command": "npx",
"args": ["-y", "mcp-mailtrap"],
"env": {
"MAILTRAP_API_TOKEN": "your_mailtrap_api_token",
"DEFAULT_FROM_EMAIL": "your_sender@example.com",
"MAILTRAP_ACCOUNT_ID": "your_account_id",
"MAILTRAP_TEST_INBOX_ID": "your_test_inbox_id"
}
}
}
}
}
[!TIP] Đừng quên khởi động lại máy chủ MCP của bạn sau khi thay đổi phần "env".
Gói MCP (MCPB)
Để cài đặt dễ dàng trong các máy chủ hỗ trợ Gói MCP, bạn có thể phân phối tệp gói .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
Điều này tạo mailtrap-mcp.mcpb bằng cách sử dụng kho lưu trữ manifest.json và các tạo phẩm đã xây dựng trong dist/.
Cách sử dụng
Sau khi được cấu hình, bạn có thể yêu cầu đại lý gửi email và quản lý mẫu, ví dụ:
Thao tác gửi email:
- "Gửi email đến 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 cho nhóm tại team@example.com"
- "Gửi mẫu chào mừng (uuid
b81aabcd-1a1e-41cf-91b6-eca0254b3d96) đến 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 kiểm tra' để xem trước email chào mừng của chúng ta trông như thế nào"
Nhật ký email (gỡ lỗi giao hàng):
- "Liệt kê nhật ký email đã gửi gần đây của tôi"
- "Hiển thị nhật ký email cho các email được gửi đến user@example.com"
- "Lấy thông điệp nhật ký email cho ID abc-123-uuid để kiểm tra trạng thái giao hàng"
Số liệu thống kê gửi:
- "Lấy số liệu thống kê gửi cho tháng 1 năm 2025"
- "Hiển thị tỷ lệ giao hàng phân theo tên miền cho tháng trước"
- "Số liệu thống kê email của tôi theo danh mục từ 2025-01-01 đến 2025-01-31 là gì?"
Thao tác Sandbox:
- "Lấy tất cả tin nhắn từ hộp thư sandbox của tôi"
- "Hiển thị cho tôi trang đầu tiên của tin nhắn sandbox"
- "Tìm kiếm tin nhắn chứa 'test' trong hộp thư sandbox của tôi"
- "Hiển thị cho tôi chi tiết của tin nhắn sandbox có ID 5159037506"
Thao tác 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 có tên 'Email chào mừng' với tiêu đề 'Chào mừng đến với nền tảng của chúng tôi!'"
- "Cập nhật mẫu có ID 12345 để thay đổi tiêu đề thành 'Thông điệp chào mừng đã cập nhật'"
- "Xóa mẫu có ID 67890"
Tên miền gửi:
- "Liệt kê tên miền gửi của tôi"
- "Lấy tên miền gửi có ID 3938"
- "Tạo tên miền gửi cho example.com"
- "Bật theo dõi nhấp chuột cho tên miền gửi 3938"
- "Xóa tên miền gửi 3938"
- "Lấy tên miền gửi 3938 với hướng dẫn thiết lập DNS"
- "Hiển thị thông tin công ty cho tên miền gửi 3938"
- "Đặt thông tin công ty cho tên miền 3938 thành Acme Inc, 123 Main St, San Francisco, US, 94105, https://acme.com"
- "Thay đổi thành phố thông tin công ty cho tên miền 3938 thành New York"
Danh sách chặn:
- "Liệt kê danh sách chặn cho bounced@example.com"
- "Chặn bounced@example.com trên luồng giao dịch của tên miền 3938"
- "Hiển thị cho tôi 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:
- "Dừng theo dõi mở và nhấp cho privacy@example.com trên tê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ệ bản tin của tôi"
- "Hiển thị cho tôi tất cả danh sách liên hệ của tôi"
- "Tạo trường liên hệ có tên 'signup_source' để theo dõi nơi danh bạ đến"
- "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ừ 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 lại 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 trả lại và spam"
- "Cập nhật webhook 4821 để cũng gửi sự kiện giao hà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ị cho tôi các tài nguyên quyền có sẵn 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 không sử dụng 1234"
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ụ có sẵn
send-email
Gửi email giao dịch qua Mailtrap. Hỗ trợ hai chế độ loại trừ lẫn nhau — nội dung nội tuyến (subject + text/html) hoặc dựa trên mẫu (template_uuid).
Tham số:
from(tùy chọn): Người gửi dưới dạng{ email, name? }(chuỗi email trần cũng được chấp nhận khi chạy). Nếu không được cung cấp,DEFAULT_FROM_EMAILsẽ được sử dụng.to(tùy chọn): Mảng người nhận dưới dạng đối tượng{ email, name? }(chuỗi email trần hoặc một địa chỉ không phải mảng cũng được chấp nhận khi chạy). Tùy chọn nếucchoặcbccđược cung cấp; í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 đối tượng{ email, name? }(chuỗi email trần cũng được chấp nhận khi chạy).bcc(tùy chọn): Mảng người nhận BCC dưới dạng đối tượng{ email, name? }(chuỗi email trần cũng được chấp nhận khi chạy).subject(có điều kiện): Dòng tiêu đề email. Bắt buộc cho gửi nội tuyến; phải bỏ qua khitemplate_uuidđược đặt.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) cho gửi nội tuyến; phải bỏ qua khitemplate_uuidđược đặt.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) cho gửi nội tuyến; phải bỏ qua khitemplate_uuidđược đặt.category(tùy chọn): Danh mục email để theo dõi và phân tích. Phải bỏ qua khitemplate_uuidđược đặt.template_uuid(tùy chọn): Sử dụng mẫu email Mailtrap thay vì nội dung nội tuyến. Khi được đặt,subject/text/html/categoryphải được bỏ qua (theo API Mailtrap).template_variables(tùy chọn): Đối tượng các biến được thay thế vào mẫu được tham chiếu bởitemplate_uuid. Chỉ được phép 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 nằm trên base; các ghi đè theo người nhận nằm trong requests[]. Mỗi yêu cầu phải bao gồm ít nhất một người nhận qua to, cc hoặc bcc. Cùng quy tắc loại trừ nội tuyến-vs-mẫu như send-email — được kiểm tra sau khi hợp nhất cơ sở với mỗi yêu cầu.
Tham số:
base(tùy chọn): Đối tượng chứa các trường dùng chung cho toàn bộ lô.from(tùy chọn): Người gửi dưới dạng{ email, name? }(chuỗi email trần cũng được chấp nhận khi chạy). Dự phòng vềDEFAULT_FROM_EMAIL.reply_to(tùy chọn): Địa chỉ trả lời (reply-to).subject/text/html/category(tùy chọn, chế độ nội tuyến): Nội dung mặc định cho mọi yêu cầu.template_uuid/template_variables(tùy chọn, chế độ mẫu): Mẫu mặc định + biến. Loại trừ lẫn nhau với các trường nội tuyến.custom_variables(tùy chọn): Biến tùy chỉnh mặc định (giá trị chuỗi).headers(tùy chọn): Tiêu đề tùy chỉnh mặc định.
requests(bắt buộc): Mảng không rỗng các thông điệp theo từng người nhận. Mỗi mục có:to(tùy chọn): Mảng người nhận dưới dạng đối tượng{ email, name? }(chuỗi email trần hoặc một địa chỉ không phải mảng cũng được chấp nhận khi chạy). Tùy chọn nếucchoặcbccđược cung cấp; ít nhất một trongto/cc/bccphải chứa người nhận.cc,bcc,reply_to(tùy chọn).- Ghi đè nội tuyến (
subject/text/html/category) hoặc mẫu (template_uuid/template_variables); trường nào bỏ qua sẽ dự phòng về giá trịbasetương ứng. custom_variables,headers(tùy chọn).
batch-send-bulk-email
Gửi một lô email hàng loạt qua API bulk-stream của Mailtrap. Cùng cấu trúc base + requests[], quy tắc xác thực và nội tuyến-vs-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 endpoint bulk thay vì endpoint 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ử giao hàng) với phân trang và bộ lọc tùy chọn. Dùng để gỡ lỗi sự cố giao hàng ngay từ IDE.
Tham số:
search_after(tùy chọn): Con trỏ phân trang từnext_page_cursorcủa phản hồi trướcsent_after(tùy chọn): Ngày/giờ ISO 8601; chỉ nhật ký gửi sau thời điểm nàysent_before(tùy chọn): Ngày/giờ ISO 8601; chỉ nhật ký gửi trước thời điểm nàyfrom_email(tùy chọn): Lọc theo email người gửi; dùng vớifrom_operator(mặc định: ci_equal)to_email(tùy chọn): Lọc theo email người nhận; dùng vớito_operator(mặc định: ci_equal)status(tùy chọn): Lọc theo trạng thái giao hàng: delivered, not_delivered, enqueued, opted_out; dùng vớistatus_operator(mặc định: equal)subject(tùy chọn): Lọc theo chủ đề email; dùng vớisubject_operator(mặc định: ci_contain). Dùngsubject_operator: empty/not_empty để lọc theo sự hiện diện của chủ đề.sending_domain_id(tùy chọn): Lọc theo ID miền gửi (số); dùng vớisending_domain_id_operator(mặc định: equal)sending_stream(tùy chọn): Lọc theo luồng: transactional hoặc bulk; dùng vớisending_stream_operator(mặc định: equal)events(tùy chọn): Lọc theo (các) loại sự kiện: delivery, open, click, bounce, spam, unsubscribe, soft_bounce, reject, suspension; dùng vớievents_operator(include_event / not_include_event)clicks_count/opens_count(tùy chọn): Lọc theo số lần click/mở; dùng với*_operator: equal, greater_than, less_thanclient_ip/sending_ip(tùy chọn): Lọc theo IP; dùng với*_operator: equal, not_equal, contain, not_containemail_service_provider_response(tùy chọn): Lọc theo văn bản phản hồi của nhà cung cấp; dùng với*_operator(ci_contain, v.v.)email_service_provider(tùy chọn): Lọc theo nhà cung cấp (chính xác); dùng với*_operator: equal, not_equalrecipient_mx(tùy chọn): Lọc theo MX người nhận; dùng vớirecipient_mx_operator(ci_contain, v.v.)category(tùy chọn): Lọc theo danh mục email; dùng vớicategory_operator: equal, not_equal
Tất cả tham số đều tùy chọn.
get-email-log-message
Lấy một thông điệp nhật ký email theo ID (UUID): bản tóm tắt dễ đọc (từ, đến, chủ đề, thời gian gửi, trạng thái, danh mục, luồng, tương tác, bối cảnh giao hàng), sau đó là lịch sử sự kiện chi tiết. Tùy chọn, với include_content: true, bạn cũng có thể tải và hiển thị nội dung thông điệp (HTML và văn bản thuần) khi Mailtrap hiển thị URL thông điệp thô.
Tham số:
message_id(bắt buộc): UUID của thông điệp nhật ký email (từ phản hồi gửi hoặc list-email-logs). Dùnglist-email-logsđể tìm ID thông điệp.include_content(tùy chọn): Khitrue, tìm nạp EML thô (nếuraw_message_urlkhả dụng) và nối 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ự show-sandbox-email-message.
get-sending-stats
Lấy thống kê gửi email (tỷ lệ giao hàng, trả lại, mở, click, spam) cho một phạm vi ngày. 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ệ giao hà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 cho phạm vi thống kê (YYYY-MM-DD)end_date(bắt buộc): Ngày kết thúc cho phạm vi thống kê (YYYY-MM-DD)breakdown(tùy chọn): 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(tùy chọn): Giới hạn kết quả theo các ID miền gửi này (mảng số nguyên)sending_streams(tùy chọn): Giới hạn theotransactionalvà/hoặcbulk(mảng chuỗi)categories(tùy chọn): Giới hạn theo các danh mục email này (mảng chuỗi)email_service_providers(tùy chọn): Giới hạn theo các nhà cung cấp này, ví dụ: Google, Yahoo, Outlook (mảng chuỗi)
create-template
Tạo một mẫu email mới trong tài khoản Mailtrap của bạn.
Tham số:
name(bắt buộc): Tên của 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(tùy chọn): Danh mục mẫu (mặc định là "General")
list-templates
Liệt kê tất cả mẫu email trong tài khoản Mailtrap của bạn.
Tham số:
- Không yêu cầu tham số
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 tìm nạp
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(tùy chọn): Tên mới cho mẫusubject(tùy chọn): Dòng chủ đề email mớihtml(tùy chọn): Nội dung HTML mới của mẫutext(tùy chọn): Phiên bản văn bản thuần mới của mẫucategory(tùy chọn): Danh mục mới cho mẫu
[!NOTE] Ít nhất một trường có thể cập nhật (tên, chủ đề, html, văn bản hoặc danh mục) phải được cung cấp khi gọi update-template để thực hiện cập nhật.
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 hộp thư thử nghiệm Mailtrap của bạn cho mục đích phát triển và kiểm thử. Điều này hoàn hảo để kiểm tra mẫu email mà không gửi đến người nhận thực. Hỗ trợ hai chế độ giống như send-email — nội dung nội tuyến hoặc dựa trên mẫu (template_uuid).
Tham số:
test_inbox_id(tùy chọn): ID hộp thư thử nghiệm Mailtrap. Bắt buộc trừ khiMAILTRAP_TEST_INBOX_IDđược đặt; truyền theo từng lệnh gọi để nhắm đến một hộp thư cụ thể.from(tùy chọn): Người gửi dưới dạng{ email, name? }(chuỗi email trần cũng được chấp nhận khi chạy). Nếu không cung cấp,DEFAULT_FROM_EMAILđược sử dụng.to(tùy chọn): Mảng người nhận dưới dạng đối tượng{ email, name? }(chuỗi email trần trong mảng hoặc chuỗi email thuần phân tách bằng dấu phẩy cũng được chấp nhận khi chạy). Tùy chọn nếucchoặcbccđược cung cấp; í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 đối tượng{ email, name? }(chuỗi email trần cũng được chấp nhận khi chạy).bcc(tùy chọn): Mảng người nhận BCC dưới dạng đối tượng{ email, name? }(chuỗi email trần cũng được chấp nhận khi chạy).subject(có điều kiện): Dòng chủ đề email. Bắt buộc cho gửi nội tuyến; phải bỏ qua khitemplate_uuidđược đặt.text(có điều kiện): Văn bản nội dung email. Bắt buộc (cùng với hoặc thay chohtml) cho gửi nội tuyến; phải bỏ qua khitemplate_uuidđược đặt.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) cho gửi nội tuyến; phải bỏ qua khitemplate_uuidđược đặt.category(tùy chọn): Danh mục email để theo dõi. Phải bỏ qua khitemplate_uuidđược đặt.template_uuid(tùy chọn): Sử dụng mẫu email Mailtrap thay vì nội dung nội tuyến. Khi được đặt,subject/text/html/categoryphải được bỏ qua.template_variables(tùy chọn): Đối tượng biến được thay thế vào mẫu được tham chiếu bởitemplate_uuid. Chỉ được phép cùng vớitemplate_uuid.
batch-send-sandbox-email
Gửi một lô email đến hộp thư thử nghiệm Mailtrap của bạn trong một lệnh gọi API, không gửi đến người nhận thực. Cùng cấu trúc base + requests[], quy tắc xác thực và nội tuyến-vs-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 hộp thư thử nghiệm duy nhất.
Tham số:
sandbox_id(tùy chọn): ID sandbox (hộp thư thử nghiệm) Mailtrap. Bắt buộc trừ khiMAILTRAP_SANDBOX_IDđược đặt; truyền theo từng lệnh gọi để nhắm đến một sandbox cụ thể.base(tùy chọn),requests(bắt buộc): Xembatch-send-transactional-emailở trên.
[!NOTE] Đối với các công cụ sandbox, cung cấp
test_inbox_idtrong lệnh gọi công cụ hoặc đặt biến môi trườngMAILTRAP_TEST_INBOX_ID. Bạn có thể chuyển đổi giữa các hộp thư theo từng lệnh gọi bằng cách truyềntest_inbox_id. Các công cụ nhậnsandbox_idsử dụngMAILTRAP_SANDBOX_IDtrước tiên.
get-sandbox-messages
Truy xuất danh sách thông điệp từ hộp thư thử nghiệm Mailtrap của bạn. Hữu ích để kiểm tra email nào đã được nhận trong sandbox của bạn trong quá trình kiểm thử.
Tham số:
page(tùy chọn): Số trang cho phân trang (tối thiểu: 1)last_id(tùy chọn): Phân trang bằng ID thông điệp cuối cùng. Trả về các thông điệp sau ID thông điệp được chỉ định (tối thiểu: 1)search(tùy chọn): Truy vấn tìm kiếm để lọc thông điệp
[!NOTE] Tất cả tham số đều tùy chọn. Nếu không cung cấp tham số nào, trang đầu tiên của thông điệp từ hộp thư sẽ được trả về. Dùng page để phân trang truyền thống, last_id để phân trang dựa trên con trỏ hoặc search để lọc thông điệp theo nội dung.
show-sandbox-email-message
Hiển thị thông tin chi tiết và nội dung của một thông điệp email cụ thể từ hộp thư thử nghiệm Mailtrap của bạn, bao gồm nội dung HTML và văn bản.
Tham số:
message_id(bắt buộc): ID của thông điệp email sandbox cần truy xuất
[!NOTE] Dùng
get-sandbox-messagestrước tiên để lấy danh sách thông điệp và ID của chúng, sau đó dùng công cụ này để xem nội dung đầy đủ của một thông điệp cụ thể.
get-sandbox-project
Lấy một dự án sandbox theo ID, bao gồm các hộp thư và số lượng email của nó.
Tham số:
project_id(bắt buộc): ID của dự án cần tìm nạp
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 cho dự án (2–100 ký tự)
list-sandboxes
Liệt kê mọi sandbox có thể truy cập bằng mã thông báo API trên tất cả các dự án.
Tham số:
- Không yêu cầu tham số
mark-sandbox-as-read
Đánh dấu tất cả thông điệp trong một 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 một 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ỉ email nhận qua thư cho một 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ỉ email nhận qua thư mới cho một 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 một thư của 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ự phòng sangMAILTRAP_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 để chuyển tiếp thư đến
update-sandbox-message
Đánh dấu một thư sandbox là đã đọc hoặc chưa đọc.
Tham số:
sandbox_id(tùy chọn): ID sandbox. Dự phòng sangMAILTRAP_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ư sandbox.
Tham số:
sandbox_id(tùy chọn): ID sandbox. Dự phòng sangMAILTRAP_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ư sandbox (điểm, quy tắc, báo cáo đầy đủ). Thay thế độc lập cho include_spam_report: true trên show-sandbox-email-message.
Tham số:
sandbox_id(tùy chọn): ID sandbox. Dự phòng sangMAILTRAP_SANDBOX_ID.message_id(bắt buộc): ID của thư sandbox
get-sandbox-message-html-analysis
Lấy báo cáo phân tích HTML cho một thư sandbox (điểm tương thích máy khách, các phần tử có vấn đề). Thay thế độc lập cho include_html_analysis: true trên show-sandbox-email-message.
Tham số:
sandbox_id(tùy chọn): ID sandbox. Dự phòng sangMAILTRAP_SANDBOX_ID.message_id(bắt buộc): ID của thư sandbox
get-sandbox-message-headers
Lấy các tiêu đề thư đã phân tích cho một thư sandbox.
Tham số:
sandbox_id(tùy chọn): ID sandbox. Dự phòng sangMAILTRAP_SANDBOX_ID.message_id(bắt buộc): ID của thư sandbox
get-sandbox-message-html
Lấy nội dung HTML đã hiển thị của một thư sandbox.
Tham số:
sandbox_id(tùy chọn): ID sandbox. Dự phòng sangMAILTRAP_SANDBOX_ID.message_id(bắt buộc): ID của thư sandbox
get-sandbox-message-text
Lấy nội dung văn bản thuần túy của một thư sandbox.
Tham số:
sandbox_id(tùy chọn): ID sandbox. Dự phòng sangMAILTRAP_SANDBOX_ID.message_id(bắt buộc): ID của thư sandbox
get-sandbox-message-raw
Lấy thư thô, định dạng MIME (tiêu đề + nội dung) cho một thư sandbox.
Tham số:
sandbox_id(tùy chọn): ID sandbox. Dự phòng sangMAILTRAP_SANDBOX_ID.message_id(bắt buộc): ID của thư sandbox
get-sandbox-message-eml
Lấy thư được hiển thị dưới dạng tệp EML (phù hợp để đính kèm vào ticket hoặc nhập vào một máy khách email khác).
Tham số:
sandbox_id(tùy chọn): ID sandbox. Dự phòng sangMAILTRAP_SANDBOX_ID.message_id(bắt buộc): ID của thư sandbox
get-sandbox-message-html-source
Lấy mã nguồn HTML chưa hiển thị của một thư sandbox (HTML trước khi có bất kỳ chuyển đổi nào phía Mailtrap như viết lại liên kết CID).
Tham số:
sandbox_id(tùy chọn): ID sandbox. Dự phòng sangMAILTRAP_SANDBOX_ID.message_id(bắt buộc): ID của thư sandbox
list-sandbox-attachments
Liệt kê tất cả tệp đính kèm trên một thư 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ự phòng sangMAILTRAP_SANDBOX_ID.message_id(bắt buộc): ID của thư sandbox
get-sandbox-attachment
Lấy siêu dữ liệu và URL tải xuống cho một tệp đính kèm.
Tham số:
sandbox_id(tùy chọn): ID sandbox. Dự phòng sangMAILTRAP_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-sending-domains
Liệt kê các miền gửi thư và trạng thái xác minh DNS của chúng.
Tham số:
- Không yêu cầu tham số
get-sending-domain
Lấy một miền gửi thư theo ID và trạng thái xác minh của nó (bao gồm cả bản ghi DNS). Tùy chọn bao gồm hướng dẫn thiết lập DNS bằng cách đặt include_setup_instructions thành true.
Tham số:
sending_domain_id(bắt buộc): ID miền gửi thưinclude_setup_instructions(tùy chọn): Nếutrue, thêm hướng dẫn thiết lập DNS vào phản hồi. Mặc định:false
create-sending-domain
Tạo một miền gửi thư mới. Sau khi tạo, thêm bản ghi DNS để xác minh miền (sử dụng get-sending-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-sending-domain
Cập nhật cài đặt theo dõi và thư đến của một miền gửi thư.
Tham số:
sending_domain_id(bắt buộc): ID miền gửi thưopen_tracking_enabled(tùy chọn): Theo dõi lượt mở email gửi từ miền nàyclick_tracking_enabled(tùy chọn): Theo dõi lượt nhấp vào liên kết trong email gửi từ miền nàytracking_opt_out_enabled(tùy chọn): Thêm liên kết từ chối theo dõi vào email được theo dõi. Yêu cầu theo dõi mở hoặc nhấpauto_unsubscribe_link_enabled(tùy chọn): Tự động thêm liên kết hủy đăng ký vào emailinbound_enabled(tùy chọn): Cho phép miền được đính kèm vào hộp thư đến dạng catch-all
Ít nhất một cài đặt ngoài sending_domain_id phải được cung cấp.
delete-sending-domain
Xóa một miền gửi thư.
Tham số:
sending_domain_id(bắt buộc): ID miền gửi thư cần xóa
send-sending-domain-setup-instructions
Gửi email hướng dẫn thiết lập DNS cho một miền gửi thư đến một địa chỉ nhất định. Hữu ích để chuyển tiếp bản ghi DNS cho đồng nghiệp DevOps.
Tham số:
sending_domain_id(bắt buộc): ID miền gửi thưemail(bắt buộc): Địa chỉ email để gửi hướng dẫn thiết lập DNS đến
get-company-info
Lấy thông tin công ty của một miền gửi thư, được sử dụng để xác minh tuân thủ miền.
Tham số:
sending_domain_id(bắt buộc): ID miền gửi thư
create-company-info
Đặt thông tin công ty của một miền gửi thư, bắt buộc để xác minh tuân thủ miền.
Tham số:
sending_domain_id(bắt buộc): ID miền gửi thư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ông typhone(tùy chọn): Số điện thoạiprivacy_policy_url(tùy chọn): URL trang chính sách quyền riêng tưterms_of_service_url(tùy chọn): URL trang điều khoản dịch vụinfo_level(tùy chọn):businesshoặcindividual
update-company-info
Cập nhật thông tin công ty của một miền gửi thư.
Tham số:
sending_domain_id(bắt buộc): ID miền gửi thư- Mọi trường của create-company-info, tất cả đều tùy chọn. Ít nhất một trường phải được cung cấp; các trường bỏ qua sẽ không thay đổi.
list-suppressions
Liệt kê hoặc tìm kiếm các địa chỉ bị chặn (thư bị trả lại cứng, khiếu nại spam, hủy đăng ký, nhập thủ công). Trả về tối đa 1000 kết quả mỗi lần gọi.
Tham số:
email(tùy chọn): Bộ lọc email. Chỉ trả về các địa chỉ bị chặn khớp với địa chỉ này.
create-suppression
Thêm một địa chỉ email vào danh sách chặn của tài khoản, để Mailtrap ngừng gửi thư đến địa chỉ đó.
Tham số:
email(bắt buộc): Địa chỉ email cần chặndomain_id(bắt buộc): ID của miền gửi thư mà việc chặn áp dụngsending_stream(bắt buộc):transactionalhoặcbulktype(tùy chọn):hard bounce,spam complaint,unsubscriptionhoặcmanual import. Mặc định làmanual import
delete-suppression
Xóa một địa chỉ bị chặn theo ID. Mailtrap sẽ tiếp tục gửi thư đến email này trừ khi nó bị chặn lại.
Tham số:
suppression_id(bắt buộc): ID của địa chỉ bị chặn cần xóa
list-tracking-opt-outs
Liệt kê các địa chỉ email bị loại trừ khỏi theo dõi mở và nhấp. Trả về tối đa 1000 bản ghi mỗi lần gọi.
Tham số:
email(tùy chọn): Bộ lọc email. Chỉ trả về các địa chỉ từ chối khớp với địa chỉ nàystart_time(tùy chọn): Chỉ các địa chỉ từ chối được tạo vào hoặc sau thời điểm này (ISO 8601)end_time(tùy chọn): Chỉ các địa chỉ từ chối được tạo vào hoặc trước thời điểm này (ISO 8601)last_id(tùy chọn): 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 theo dõi mở và nhấp cho một miền gửi thư.
Tham số:
email(bắt buộc): Địa chỉ email cần từ chối theo dõidomain_id(bắt buộc): ID của miền gửi thư mà việc từ chối áp dụng
delete-tracking-opt-out
Xóa một địa chỉ email khỏi danh sách từ chối theo dõi, để theo dõi mở và nhấp áp dụng lại cho địa chỉ đó.
Tham số:
tracking_opt_out_id(bắt buộc): ID của địa chỉ 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 — nó 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 một webhook. Phản hồi bao gồm signing_secret để xác minh chữ ký tải trọng webhook — bí mật này chỉ được trả về khi tạo, vì vậy hãy lưu trữ ngay. Nếu bạn làm mất nó, 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(tùy chọn, boolean): mặc định làtruepayload_format(tùy chọn):"json"hoặc"jsonlines". Mặc định là"json"sending_stream(tùy chọn, chỉemail_sending):"transactional"hoặc"bulk"event_types(tùy chọn, chỉemail_sending): mảng gồmdelivery,soft_bounce,bounce,suspension,unsubscribe,open,spam_complaint,click,rejectdomain_id(tùy chọn, chỉemail_sending): ID miền gửi thư để giới hạn webhook nàyinbound_inbox_id(tùy chọn, chỉinbound_receiving): ID của hộp thư đến mà webhook được liên kết; 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 một webhook. webhook_type, sending_stream và domain_id không thể thay đổi sau khi tạo — hãy tạo lại webhook nếu bạn 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(tùy chọn): URL webhook mớiactive(tùy chọn, boolean): Bật hoặc tắt webhookpayload_format(tùy chọn):"json"hoặc"jsonlines"event_types(tùy chọn, chỉemail_sending): mảng gồmdelivery,soft_bounce,bounce,suspension,unsubscribe,open,spam_complaint,click,rejectinbound_inbox_id(tùy chọn, chỉinbound_receiving): ID của hộp thư đến mà webhook được liên kết
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 thông tin một contact theo ID hoặc email. Trả về bản ghi contact đầy đủ (các danh sách thành viên, trạng thái, trường tùy chỉnh).
Tham số:
contact_identifier(bắt buộc): ID contact hoặc địa chỉ email
create-contact
Tạo một contact mới.
Tham số:
email(bắt buộc): Địa chỉ emailfields(tùy chọn): Giá trị trường tùy chỉnh theo merge tag (ví dụ:first_name). Giá trị chuỗi, số hoặc booleanlist_ids(tùy chọn): ID của các danh sách contact để đăng ký contact nàyunsubscribed(tùy chọn, boolean): Tạo contact ở trạng tháiunsubscribed
update-contact
Cập nhật một contact hiện có được xác định bằng ID hoặc email. list_ids thay thế toàn bộ tập hợp thành viên của contact; list_ids_included/list_ids_excluded thêm/xóa mà không ảnh hưởng đến phần còn lại.
Tham số:
contact_identifier(bắt buộc): ID contact hoặc emailemail(tùy chọn): Địa chỉ email mớifields(tùy chọn): Giá trị trường tùy chỉnh theo merge taglist_ids(tùy chọn): Thay thế tập hợp thành viên bằng danh sách chính xác nàylist_ids_included(tùy chọn): ID danh sách để thêm (cộng dồn)list_ids_excluded(tùy chọn): ID danh sách để xóaunsubscribed(tùy chọn, boolean): Đặt thànhunsubscribed(true) hoặcsubscribed(false)
delete-contact
Xóa vĩnh viễn một contact theo ID hoặc email. Trả về bản ghi contact đã xóa khi API phản hồi kèm theo; nếu không, trả về payload xác nhận.
Tham số:
contact_identifier(bắt buộc): ID contact hoặc email
create-contact-event
Ghi lại một sự kiện contact đối với một contact (theo ID hoặc email). Được dùng để kích hoạt các quy trình tự động hóa danh sách contact.
Tham số:
contact_identifier(bắt buộc): ID contact hoặc emailname(bắt buộc): Tên sự kiện (khớp với trình kích hoạt tự động hóa)params(bắt buộc): Đối tượng chứa 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 contact của tài khoản.
Tham số:
search(tùy chọn): Lọc danh sách contact theo tên (khớp không phân biệt hoa thường), ví dụ:news
get-contact-list
Lấy danh sách contact theo ID.
Tham số:
list_id(bắt buộc): ID của danh sách contact cần lấy
create-contact-list
Tạo một danh sách contact 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 contact hiện có.
Tham số:
list_id(bắt buộc): ID của danh sách contactname(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 contact theo ID.
Tham số:
list_id(bắt buộc): ID của danh sách contact cần xóa
list-contact-fields
Liệt kê tất cả định nghĩa trường contact 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 contact theo ID.
Tham số:
field_id(bắt buộc): ID của trường contact
create-contact-field
Tạo định nghĩa trường contact mới. merge_tag phải là duy nhất trong tài khoản và được dùng làm tên placeholder 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 placeholder 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 contact. 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 contactname(tùy chọn): Tên hiển thị mớimerge_tag(tùy chọn): Merge tag mới (phải giữ tính duy nhất)data_type(tùy chọn): 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 contact theo ID.
Tham số:
field_id(bắt buộc): ID của trường contact cần xóa
create-contact-import
Nhập hàng loạt contact. Trả về bản ghi công việc nhập; theo dõi trạng thái của nó bằng get-contact-import.
Tham số:
contacts(bắt buộc): Mảng các mục contact. Mỗi mục cần:email(bắt buộc): Địa chỉ email contactfields(tùy chọn): Giá trị trường tùy chỉnh theo merge tag (giá trị chuỗi hoặc số)list_ids_included(tùy chọn): ID danh sách để thêm contact vàolist_ids_excluded(tùy chọn): ID danh sách để xóa contact khỏi
get-contact-import
Lấy trạng thái của công việc nhập contact (created/started/finished/failed) kèm số lượng created/updated/over-limit.
Tham số:
import_id(bắt buộc): ID của công việc nhập contact
create-contact-export
Xuất các contact khớp với một tập hợp các bộ lọc kết hợp bằng AND. Trả về bản ghi công việc xuất; theo dõi 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 bộ lọc có:name(bắt buộc): Trường để 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 công việc xuất contact. 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 công việc xuất contact
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 page-token. Tùy chọn lọc theo tên bằng search.
Tham số:
token(tùy chọn): Số trang cần lấy (phân trang page-token). Mặc định là1per_page(tùy chọn): Số chiến dịch mỗi trang. Mặc định là50, tối đa100search(tùy chọn): Lọc chiến dịch theo tên (khớp một phần, không phân biệt hoa 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 là các công cụ riêng biệt (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 gửi đã xác minh dùng cho chiến dịch, như được trả về bởi các endpoint Sending Domainsfrom_local_part(bắt buộc): Phần local (trước dấu @) của địa chỉ Fromtemplate_attributes(bắt buộc): Mẫu email nội tuyến. Có:subject(bắt buộc): Dòng tiêu đề email (tối đa 255 ký tự). Hỗ trợ merge tags, ví dụ:Hi {{first_name}}body_html(tùy chọn): Nội dung HTML (thiết kế). Bắt buộc trước khi chiến dịch có thể được lên lịch hoặc bắt đầu. Bao gồm liên kết hủy đăng ký qua một thẻ anchor cóhrefchứa placeholder__unsubscribe_url__body_text(tùy chọn): Bản thay thế văn bản thuần của nội dung emailmerge_tags(tùy chọn): Tên trần của các merge tag được tham chiếu trong tiêu đề/nội dung, ví dụ:["first_name"]
from_display_name(tùy chọn): Tên hiển thị hiển thị trong tiêu đề Fromreply_to(tùy chọn): Các phần của địa chỉ Reply-To (display_name,local_part,domain)delivery_mode(tùy chọn):rapid(gửi nhanh nhất có thể) hoặcgradual(giới hạn tốc độ xuốngdelivery_options.emails_per_hour)delivery_options(tùy chọn): Các tùy chọn giới hạn tốc độ gửi (emails_per_hour)contact_list_ids(tùy chọn): ID của các danh sách contact để gửi đến (được coi là tập hợp đầy đủ các danh sách được bao gồm)contact_segment_ids(tùy chọn): ID của các phân đoạn contact để gửi đến (được coi là tập hợp đầy đủ các phân đoạn được bao gồm)
update-email-campaign
Cập nhật chiến dịch email ở trạng thái draft. Chỉ các trường được cung cấp thay đổi; mẫu được chỉnh sửa tại chỗ. Các chiến dịch ở bất kỳ trạng thái nào khác không thể cập nhật.
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ả các tham số khác là tùy chọn 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ỉ chiến dịch ở trạng thái draft mới có thể bị xóa.
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 chiến dịch email ở trạng thái draft ngay lập tức. Chỉ các chiến dịch draft mới có thể bắt đầu; mẫu phải có thiết kế body_html và đối tượng nhận cùng miền gửi đã xác minh phải được thiết lập.
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 cho chiến dịch email ở trạng thái draft bắt đầu gửi vào một thời điểm trong tương lai. Chỉ các chiến dịch draft mới có thể được lên lịch.
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 ở tương lai và không quá 1 tháng trước
cancel-email-campaign
Hủy chiến dịch email ở trạng thái scheduled, đưa nó về trạng thái draft. Chỉ các chiến dịch scheduled mới có thể bị hủy.
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 một chiến dịch email đang gửi (started, queued hoặc paused), hủy bỏ quá trình 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 ở trạng thái scheduled về trạng thái draft. Chỉ các chiến dịch scheduled mới có thể được đặt lại.
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 cho một chiến dịch email (số lượng và tỷ lệ gửi thành công, mở, nhấp chuột, 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(tùy chọn): Bắt đầu của cửa sổ tổng hợp (bao gồm),YYYY-MM-DD. Mặc định là ngày chiến dịch được bắt đầu lần cuốiend_date(tùy chọn): Kết thúc của cửa sổ 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à token API hiện tại có thể truy cập, kèm mức truy cập của từng tài khoản.
Tham số:
- Không yêu cầu tham số
get-billing-usage
Lấy mức sử dụng chu kỳ thanh toán hiện tại của tài khoản: gói gửi và kiểm thử, giới hạn và số lượng hiện tại.
Tham số:
- Không yêu cầu tham số
list-account-accesses
Liệt kê các quyền truy cập tài khoản (người dùng, lời mời, token API) của tài khoản. Các bộ lọc tùy chọn thu hẹp kết quả đến 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(tùy chọn): Lọc theo UUID miền gửi (mảng chuỗi)inbox_ids(tùy chọn): Lọc theo ID hộp thư sandbox (mảng chuỗi)project_ids(tùy chọn): Lọc theo ID dự án sandbox (mảng chuỗi)
remove-account-access
Xóa quyền truy cập tài khoản theo ID. Đối với các định danh User, thao tác này thu hồi quyền của họ; đối với các định danh Invite hoặc ApiToken, thao tác này xóa hoàn toàn định danh đó. 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 (hộp thư, dự án, miền, thanh toán, tài khoản) mà token API có quyền truy cập quản trị, được lồng theo cấp bậc.
Tham số:
- Không yêu cầu 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(tùy chọn):admin/100hoặcviewer/10destroy(tùy chọn, boolean): Khi true, xóa quyền này thay vì tạo/cập nhật
list-api-tokens
Liệt kê tất cả API token của tài khoản.
Tham số:
- Không yêu cầu tham số
create-api-token
Tạo một API token mới. Phản hồi bao gồm giá trị bí mật token — đây là lần duy nhất token đầy đủ được trả về, vì vậy hãy lưu trữ ngay lập tức. Nếu bạn làm mất nó, hãy tạo lại token.
Tham số:
name(bắt buộc): Tên hiển thị cho tokenexpires_at(tùy chọn): Thời gian hết hạn token theo định 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 cho token không bao giờ hết hạn. Các giá trị trong quá khứ hoặc giá trị xa hơn 5 năm sẽ bị từ chốiresources(tùy chọn): Mảng quyền tài nguyên để giới hạn phạm vi token. 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ị) hoặc10(người xem)
get-api-token
Lấy API token theo ID. Chỉ trả về siêu dữ liệu — giá trị token bí mật không được trả về ở đây (chỉ từ create-api-token / reset-api-token).
Tham số:
api_token_id(bắt buộc): ID của API token
reset-api-token
Đặt lại (xoay vòng) một API token 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 trữ ngay lập tức. Token trước đó sẽ bị vô hiệu hóa.
Tham số:
api_token_id(bắt buộc): ID của API token cần đặt lạiexpires_at(tùy chọn): Thời gian hết hạn cho token mới theo định 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 cho token không bao giờ hết hạn. Các giá trị trong quá khứ hoặc giá trị xa hơn 5 năm sẽ bị từ chối
delete-api-token
Xóa vĩnh viễn một API token theo ID. Token không thể xác thực sau khi bị xóa.
Tham số:
api_token_id(bắt buộc): ID của API token cần xóa
list-sub-accounts
Liệt kê các tài khoản con 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 con.
Tham số:
- Không yêu cầu tham số
create-sub-account
Tạo một tài khoản con 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 con.
Tham số:
name(bắt buộc): Tên hiển thị cho tài khoản con mới
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 yêu cầu tham số
get-inbound-folder
Lấy một thư mục nhận theo ID. Trả về bản ghi thư mục đầy đủ 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 một 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 một 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 một thư mục nhận cùng với tất cả hộp thư của nó.
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ề bản ghi hộp thư đầy đủ 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 một 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 nhậnname(bắt buộc): Tên hộp thưdomain_id(tùy chọn): Gắn vào một miền gửi tùy chỉnh (hộp thư bắt tất cả). Bỏ qua để dùng hộp thư do Mailtrap lưu trữ
update-inbound-inbox
Đổi tên một hộp thư nhận.
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ưname(bắt buộc): Tên hộp thư mới
delete-inbound-inbox
Xóa vĩnh viễn một hộp thư nhận.
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ư
list-inbound-messages
Liệt kê các thư đã nhận trong một hộp thư nhận (phân trang bằng con trỏ). Trả về bản tóm tắt đã định dạng kèm gợi ý trang tiếp theo khi có thêm kết quả.
Tham số:
inbox_id(bắt buộc): ID của hộp thưlast_id(tùy chọn): Con trỏ phân trang từlast_idcủa phản hồi trước đó
get-inbound-message
Lấy một thư nhận với toàn bộ nội dung và URL tải 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ưmessage_id(bắt buộc): ID của thư
delete-inbound-message
Xóa vĩnh viễn một thư nhận.
Tham số:
inbox_id(bắt buộc): ID của hộp thưmessage_id(bắt buộc): ID của thư
reply-to-inbound-message
Trả lời một thư nhận (gửi đến người gửi ban đầu). Gửi một email thực. Địa chỉ chấp nhận chuỗi email trần hoặc { email, name? }.
Tham số:
inbox_id(bắt buộc): ID của hộp thưmessage_id(bắt buộc): ID của thư cần trả lờitext/html(ít nhất một trong hai được khuyến nghị): Nội dung trả lờifrom(tùy chọn): Người gửi. Bị từ chối đối với hộp thư do Mailtrap lưu trữ; bắt buộc đối với hộp thư miền tùy chỉnhcc/bcc/reply_to(tùy chọn): Các địa chỉ bổ sungcategory(tùy chọn): Danh mục thưattachments(tùy chọn): Mảng các{ content (base64), filename, type?, disposition?, content_id? }headers/custom_variables(tùy chọn): Các đối tượng giá trị chuỗi
reply-all-to-inbound-message
Trả lời một thư nhận và sao chép các người nhận khác của thư gốc. Gửi một email thực. Các tham số tương tự như reply-to-inbound-message.
Tham số:
inbox_id(bắt buộc): ID của hộp thưmessage_id(bắt buộc): ID của thư cần trả lời- Cộng với các trường gửi tùy chọn tương tự như
reply-to-inbound-message
forward-inbound-message
Chuyển tiếp một thư nhận đến người nhận mới. Gửi một email thực.
Tham số:
inbox_id(bắt buộc): ID của hộp thưmessage_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 trần hoặc{ email, name? }, hoặc một mảng)- Cộng với các trường gửi tùy chọn tương tự như
reply-to-inbound-message
list-inbound-threads
Liệt kê các chuỗi hội thoại trong một hộp thư nhận (phân trang bằng con trỏ). Trả về bản tóm tắt đã định dạng kèm gợi ý trang tiếp theo khi có thêm kết quả.
Tham số:
inbox_id(bắt buộc): ID của hộp thưlast_id(tùy chọn): Con trỏ phân trang từlast_idcủa phản hồi trước đó
get-inbound-thread
Lấy một chuỗi hội thoại nhận với các thư được nhúng (cũ nhất trước). Trả về bản ghi chuỗi đầy đủ dưới dạng JSON.
Tham số:
inbox_id(bắt buộc): ID của hộp thưthread_id(bắt buộc): ID của chuỗi
delete-inbound-thread
Xóa vĩnh viễn một chuỗi hội thoại nhận.
Tham số:
inbox_id(bắt buộc): ID của hộp thưthread_id(bắt buộc): ID của chuỗi
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ụ 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_TEST_INBOX_ID": "your_test_inbox_id"
}
}
}
}
Nếu bạn sử dụng asdf để quản lý Node.js, bạn nên 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": "20.6.1",
"MAILTRAP_API_TOKEN": "your_mailtrap_api_token",
"DEFAULT_FROM_EMAIL": "your_sender@example.com",
"MAILTRAP_ACCOUNT_ID": "your_account_id",
"MAILTRAP_TEST_INBOX_ID": "your_test_inbox_id"
}
}
}
}
VS Code
[!TIP] 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_TEST_INBOX_ID": "your_test_inbox_id"
}
}
}
}
}
Kiểm thử
Chạy các công cụ với Mailtrap thực
Có hai cách để kiểm tra một công cụ từ đầu đến cuối với tài khoản Mailtrap thực: giao diện trình duyệt MCP Inspector để khám phá tương tác, hoặc chế độ CLI của nó cho các lệnh gọi một lần từ shell.
Cả hai đều yêu cầu bundle được xây dựng trước:
npm run build
và MAILTRAP_API_TOKEN + MAILTRAP_ACCOUNT_ID được xuất trong shell của bạn (script mcp:cli chuyển tiếp cả hai đến server đã 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ở nó, chuyển đến tab Tools, chọn một công cụ (ví dụ: get-template), điền các tham số dưới dạng JSON và nhấn Run. Phản hồi từ Mailtrap sẽ xuất hiện trong bảng bên dưới.
CLI
Đối với các lệnh gọi một lần không cần giao diện, hãy sử 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-sending-domain-setup-instructions \
--tool-arg sending_domain_id=3938 \
--tool-arg email=devops@example.com
Chạy MCPB Server
# 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
Server này sử dụng xử lý lỗi có cấu trúc phù hợp với các quy ước MCP:
VALIDATION_ERROR: Lỗi xác thực đầu vàoCONFIGURATION_ERROR: Thiếu hoặc sai cấu hìnhEXECUTION_ERROR: Lỗi thực thi thời gian chạyTIMEOUT: Hết thời gian thao tác (mặc định 30 giây)
Lỗi bao gồm các thông báo có thể hành động và được ghi nhật ký dưới dạng có cấu trúc.
Bảo mật
- Đầu vào được xác thực qua lược đồ Zod
- Biến môi trường được xử lý an toàn
- Bảo vệ hết thời gian trên các thao tác (30 giây)
- Chi tiết nhạy cảm được làm sạch 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: Server ghi nhật ký vào stderr để stdout vẫn dành riêng cho các khung JSON-RPC. Điều này ngăn các host gặp lỗi phân tích JSON do nhật ký bị trộn 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")'
Xử lý sự cố
Các vấn đề phổ biến:
- Thiếu API Token: đảm bảo
MAILTRAP_API_TOKENđược đặt - Sandbox không hoạt động: cung cấp
test_inbox_idtrong lệnh gọi công cụ hoặc đặt biến môi trườngMAILTRAP_TEST_INBOX_ID - Lỗi hết thời gian: 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 tất cả các trường bắt buộc được cung cấp
Đóng góp
Báo cáo lỗi và yêu cầu kéo được hoan nghênh trên GitHub. Dự án này nhằm tạo ra một không gian an toàn, thân thiện cho sự hợp tác, và các nhà đóng góp được kỳ vọng tuân thủ quy tắc ứng xử.
Giấy phép
Gói này được cung cấp dưới dạng mã nguồn mở theo các điều khoản của Giấy phép MIT.
Quy tắc ứng xử
Mọi người tương tác trong 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 được kỳ vọng tuân theo quy tắc ứng xử.