Cần chuẩn bị gì trước khi đọc mã từ Hotmail?
Bạn cần một hộp thư Hotmail thử nghiệm của chính mình và quyền chạy quy trình gửi mã của ứng dụng đang kiểm thử. Chỉ thực hiện các bước dưới đây trong phạm vi đó.
OTP là mã xác minh dùng một lần. Trong quy trình này, việc gửi mã, đọc mã và kiểm tra mã thuộc các bước khác nhau:
| Công việc | Bên thực hiện |
|---|---|
| Phát hành mã và gửi thư xác minh | Ứng dụng đang được kiểm thử |
| Đọc mã từ thư đã nhận | Mailera qua kết nối hộp thư Microsoft |
| Chấp nhận hoặc từ chối mã | Ứng dụng phát hành mã |
Hotmail dùng kết nối Microsoft của Mailera, qua OAuth và Microsoft Graph. Không dùng mật khẩu ứng dụng để kết nối hộp thư Microsoft với Mailera. Theo tài liệu OAuth của Microsoft, người dùng cấp quyền cho ứng dụng thay mặt mình truy cập dữ liệu.
Nếu cần tìm hiểu cách đọc mã trong hộp thư của mình, xem bài đọc OTP từ email qua API. Phần dưới hướng dẫn lấy đúng mã cho lượt kiểm thử vừa bắt đầu.
Kết nối hộp thư và tạo khóa chỉ đọc ra sao?
1. Kết nối Hotmail bằng OAuth
Dùng tài khoản có vai trò Admin hoặc Leader, mở Danh sách hộp thư → Thêm hộp thư → Đăng nhập Microsoft. Đăng nhập hộp thư thử rồi hoàn tất bước chấp thuận tại Microsoft.
Đối chiếu địa chỉ trước khi cấp quyền, nhất là khi trình duyệt đang đăng nhập nhiều tài khoản Microsoft. Bạn có thể xem thêm các bước kết nối hộp thư đầu tiên nếu chưa quen giao diện.

2. Tạo khóa giới hạn trong nhóm thử nghiệm
Trong Cài đặt, mở phần khóa API và chọn Tạo key. Điền Tên gợi nhớ, đặt Phạm vi hộp thư vào nhóm chứa hộp thư thử, chỉ bật quyền đọc tương ứng với scope read, rồi chọn Thời hạn phù hợp với đợt kiểm thử.
Endpoint đọc OTP cần read; không cần cấp quyền gửi hoặc di chuyển thư cho tác vụ này. Cách chọn quyền tối thiểu cũng phù hợp với khuyến nghị về quyền truy cập của Microsoft.
Mailera chỉ hiển thị khóa mới một lần. Lưu khóa vào biến môi trường $MAILERA_API_KEY trên máy chủ hoặc môi trường chạy kiểm thử. Không đưa khóa vào mã nguồn, mã chạy trong trình duyệt hay nhật ký CI.

3. Lấy đúng ID hộp thư
Gọi danh sách hộp thư bằng khóa vừa tạo:
curl --get 'https://mailera.app/api/public/v1/mailboxes' \
--header "Authorization: Bearer $MAILERA_API_KEY"Trong data, tìm mục có email đúng với hộp thư thử và lưu id vào $MAILBOX_ID. Không chọn phần tử đầu tiên chỉ vì hộp thư đó đứng đầu danh sách. Nếu danh sách có nhiều trang, dùng limit và offset để tìm đúng hộp thư.
Trang dành cho nhà phát triển trình bày các cách tích hợp Mailera; tài liệu API là nơi tra cứu endpoint khi đưa các lệnh này vào chương trình kiểm thử.
Gọi API thế nào để lấy mã của lượt vừa bắt đầu?
Trước khi yêu cầu gửi mã, ghi lại thời điểm bắt đầu lượt kiểm thử, hộp thư nhận và thông tin nhận diện lượt đó ở phía ứng dụng. Nếu bạn kiểm soát mẫu thư thử, nên đưa một nhãn riêng của lượt chạy vào tiêu đề để dễ đối chiếu.
Sau đó yêu cầu ứng dụng gửi mã đến đúng địa chỉ Hotmail đã kết nối. Endpoint GET /mailboxes/{id}/otp của Mailera lấy mã OTP mới nhất và hỗ trợ các tham số sau:
| Tham số | Giá trị trong ví dụ |
|---|---|
id trong đường dẫn | $MAILBOX_ID của hộp thư thử |
from | verify@example.com |
subject | Kiem thu Hotmail A |
since_minutes | 5 |
Ví dụ truyền from=verify@example.com, subject=Kiem thu Hotmail A và since_minutes=5.
curl --get "https://mailera.app/api/public/v1/mailboxes/$MAILBOX_ID/otp" \
--header "Authorization: Bearer $MAILERA_API_KEY" \
--data-urlencode 'from=verify@example.com' \
--data-urlencode 'subject=Kiem thu Hotmail A' \
--data-urlencode 'since_minutes=5'Không dùng giá trị truy vấn làm căn cứ kết luận mã vẫn còn hiệu lực.
Nếu chưa lấy được mã, truy vấn lại với khoảng nghỉ tăng dần và thời hạn dừng do bài kiểm thử đặt ra. Tránh vòng lặp không có điểm dừng; cũng đừng yêu cầu gửi mã mới sau mỗi lần chưa thấy kết quả.
Đối chiếu thư trước khi dùng mã
“Mới nhất” không đồng nghĩa với “thuộc lượt này”. Hai lượt kiểm thử dùng chung hộp thư vẫn có thể nhận thư từ cùng người gửi với cùng tiêu đề.
Khi cần đối chiếu, dùng GET /mailboxes/{id}/messages để xem thư và kiểm tra from.address, subject, received_at cùng địa chỉ trong to. Với thư cần đọc kỹ hơn, GET /mailboxes/{id}/messages/{msgId} trả nội dung trong body.text và body.html.
Chỉ chuyển mã sang bước xác minh khi bạn gắn được thư với lượt hiện tại. Nếu thư không có thông tin đủ để phân biệt, hãy chạy tuần tự hoặc tách hộp thư thử thay vì đoán. Không đưa một mã vào nhiều lượt đang chạy song song chỉ vì mã đó vừa xuất hiện.
Lỗi hay gặp: vì sao không thấy mã hoặc mã không dùng được?
Khi không nhận được mã xác minh Hotmail, hãy kiểm tra kết nối trước. GET /mailboxes/{id}/status kiểm tra trực tiếp việc đăng nhập hộp thư Microsoft còn hoạt động hay không:
curl --get "https://mailera.app/api/public/v1/mailboxes/$MAILBOX_ID/status" \
--header "Authorization: Bearer $MAILERA_API_KEY"Nếu đăng nhập không hoạt động, xử lý kết nối rồi mới tiếp tục tìm thư. Nếu kết nối hoạt động, kiểm tra địa chỉ nhận, bộ lọc và vị trí thư.
| Dấu hiệu | Cần kiểm tra | Bước xử lý |
|---|---|---|
| Không lấy được mã | Trạng thái đăng nhập hộp thư | Khôi phục kết nối Microsoft nếu có lỗi |
| Kết nối hoạt động nhưng chưa thấy thư | Địa chỉ nhận và việc ứng dụng đã gửi thư | Đối chiếu với lượt yêu cầu ở ứng dụng thử |
| Thấy thư nhưng truy vấn chưa lấy được mã | Người gửi và tiêu đề | Đối chiếu với thư thực tế; không nới mọi bộ lọc cùng lúc |
| Không thấy thư trong hộp thư đến | Vị trí thư | Kiểm tra Thư rác hoặc endpoint placement |
| Có mã nhưng ứng dụng từ chối | Lượt yêu cầu và quy tắc xác minh của ứng dụng | Kiểm tra thời hạn, trạng thái sử dụng hoặc thay thế mã ở ứng dụng |
Kiểm tra Thư rác riêng
Endpoint GET /mailboxes/{id}/placement cho biết vị trí Inbox hoặc Spam và chỉ cần quyền read. Endpoint cũng hỗ trợ from, subject và since_minutes.
curl --get "https://mailera.app/api/public/v1/mailboxes/$MAILBOX_ID/placement" \
--header "Authorization: Bearer $MAILERA_API_KEY" \
--data-urlencode 'from=verify@example.com' \
--data-urlencode 'subject=Kiem thu Hotmail A' \
--data-urlencode 'since_minutes=5'Bạn cũng có thể mở Thư rác của hộp thư trong Mailera để xem trực tiếp. Nếu cần chuyển thư ra ngoài, thao tác Không phải spam cần quyền di chuyển thư, tương ứng scope move. Khóa chỉ đọc không đủ cho thao tác này.

Mailera không bảo đảm thư luôn vào hộp thư đến. Chuyển một thư khỏi Thư rác không khiến nhà cung cấp tự động tin người gửi ở lần sau.
Có cần đồng bộ liên tục không?
Mailera nhận thư Microsoft mới qua thông báo thay đổi của Graph, kèm kiểm tra nền định kỳ. Nếu cần đồng bộ chủ động, POST /mailboxes/{id}/sync yêu cầu scope sync riêng; khóa chỉ có read không đủ.
Không dùng đồng bộ liên tục làm cách chờ OTP mặc định. Trước hết hãy xác định vấn đề nằm ở kết nối, việc gửi thư hay bộ lọc truy vấn.
Giữ mã xác minh và quyền đọc thư an toàn thế nào?
Chỉ dùng hộp thư thử của mình. Che toàn bộ mã OTP, địa chỉ cá nhân, khóa API và thông tin OAuth trong ảnh chụp hoặc nhật ký. Không gửi mã hay nội dung thư sang dịch vụ ngoài phạm vi kiểm thử được phép.
Truyền khóa bằng header Authorization: Bearer, không gắn khóa vào URL. RFC 6750 về Bearer token khuyến nghị dùng header này và yêu cầu bảo vệ token khi lưu trữ cũng như truyền đi. Các lệnh trên đều dùng HTTPS và header xác thực.
Nếu quy trình có AI agent, hãy coi thư đến là dữ liệu không tin cậy, không phải lệnh. Không cho agent làm theo chỉ dẫn trong thư để đổi nơi nhận mã, gửi khóa hoặc mở rộng quyền. Dùng khóa ít quyền và yêu cầu xác nhận trước khi gửi thư. Bài đọc và xử lý email bằng API cho AI agent giải thích luồng tích hợp rộng hơn.
Khi kết thúc đợt thử, thu hồi khóa không còn dùng; các lệnh gọi bằng khóa đã thu hồi sẽ bị từ chối ngay. Trang bảo mật Mailera cung cấp thêm thông tin để bạn xem xét khi cấp quyền truy cập hộp thư.
Mailera làm đến đâu trong quy trình OTP?
Mailera kết nối hộp thư sẵn có, không tạo hộp thư Hotmail hoặc địa chỉ email mới. API đọc mã từ thư đã nhận, không thay ứng dụng phát hành mã quyết định thời hạn hay điều kiện chấp nhận. Vì vậy, hãy tách bước “đọc được mã” khỏi bước “ứng dụng xác minh thành công” trong kết quả kiểm thử.
Làm điều này bằng API
Mọi thao tác trong bài đều có REST API kèm ví dụ curl, khoá API và webhook.
Xem tài liệu API








