Có thể đọc OTP trong Yahoo Mail và iCloud Mail bằng API không?

Có. Bạn kết nối hộp thư sẵn có, rồi dùng API Mailera để đọc mã xác minh gửi đến hộp thư đó. Đây là API của Mailera, không phải API đăng nhập Yahoo hay API chính thức của Apple.

OTP trong bài là mã được ứng dụng thử gửi qua email, không phải cách khôi phục quyền đăng nhập tài khoản nhà cung cấp. Chẳng hạn, Apple hướng dẫn nhận mã xác thực tài khoản qua thiết bị tin cậy, tin nhắn hoặc cuộc gọi; các kênh đó không nằm trong luồng đọc email này.

Mailera kết nối các hộp thư bạn đã có, không tạo hộp thư hoặc địa chỉ email mới. Kết quả còn phụ thuộc thư đã đến và được đồng bộ; không nên thiết kế lượt thử dựa trên giả định mã sẽ có ngay.

Luồng từ ứng dụng thử gửi email đến Yahoo hoặc iCloud, Mailera đồng bộ và ứng dụng đọc OTP qua API.
Thư cần đến hộp thư và được đồng bộ trước khi ứng dụng đọc mã qua API.

Nếu cần quy trình chung cho các nhà cung cấp, xem bài đọc OTP từ hộp thư của chính bạn.

Cần chuẩn bị gì cho từng nhà cung cấp?

Chỉ dùng hộp thư thử thuộc sở hữu của bạn. Với cả hai nhà cung cấp, mật khẩu điền vào Mailera là mật khẩu ứng dụng, không phải mật khẩu đăng nhập thông thường.

Nội dungYahoo MailiCloud Mail
Kết nối với MaileraIMAP với mật khẩu ứng dụngIMAP với mật khẩu dành riêng cho ứng dụng
Điều kiện cần chú ýTài khoản phải có khả năng tạo mật khẩu ứng dụngApple Account phải bật xác thực hai yếu tố
Tài liệu tạo mật khẩuHướng dẫn mật khẩu ứng dụng YahooHướng dẫn mật khẩu dành riêng cho ứng dụng Apple
Khi đổi mật khẩu chínhMật khẩu ứng dụng vẫn còn hiệu lực; muốn vô hiệu hóa phải xóa nóĐổi hoặc đặt lại mật khẩu chính tự động thu hồi toàn bộ mật khẩu ứng dụng

Các hướng dẫn Yahoo và Apple ở bảng trên được đọc ngày 25/10/2026.

Yahoo: tạo mật khẩu ứng dụng

  1. Mở trang bảo mật tài khoản Yahoo, tìm “External connections”, chọn “Create app password”.
  2. Nhập tên ứng dụng, rồi chọn “Generate password”.
  3. Dùng mật khẩu vừa tạo cho kết nối Mailera.

Nếu thiếu tùy chọn tạo, làm theo hướng dẫn hỗ trợ của Yahoo. Yahoo khuyên dùng trình duyệt đã đăng nhập tài khoản trong vài ngày liên tiếp và tránh chế độ ẩn danh. Bộ phận hỗ trợ không thể thay đổi kết quả xét điều kiện tạo mật khẩu ứng dụng; đừng mặc định mọi tài khoản đều dùng được bước này.

iCloud: kiểm tra xác thực hai yếu tố

  1. Đảm bảo Apple Account đã bật xác thực hai yếu tố.
  2. Đăng nhập Apple Account tại account.apple.com, vào “Sign-In and Security” → “App-Specific Passwords”.
  3. Chọn “Generate an app-specific password” và làm theo hướng dẫn trên màn hình.

Tài liệu máy chủ iCloud Mail cũng yêu cầu mật khẩu dành riêng cho ứng dụng khi cấu hình máy chủ nhận thư. Bạn có thể đối chiếu cách kết nối trên trang Yahoo Mail và iCloud Mail của Mailera.

Kết nối hộp thư Yahoo hoặc iCloud với Mailera như thế nào?

Bạn cần vai trò Admin hoặc Leader để thêm hộp thư.

  1. Mở Danh sách hộp thư → Thêm hộp thư, chọn Một hộp thư.
  2. Nhập Địa chỉ email, kiểm tra nhà cung cấp được nhận diện. Nếu cần, chọn lại trong Hoặc chọn nhà cung cấp, rồi chọn Tiếp tục.
  3. Trong Thông tin kết nối, điền mật khẩu ứng dụng vào Mật khẩu. Chọn Nhóm quản lý dành cho hộp thư thử.
  4. Chọn Kiểm tra & kết nối. Xem kết quả Đăng nhập nhận thư và Nhận ra thư mục. Bước này đăng nhập thử, không gửi email.
  5. Nếu nhận thư thành công nhưng gửi thư thất bại, chọn Lưu ở chế độ Chỉ nhận. Đọc OTP không cần khả năng gửi thư.
  6. Trở lại danh sách, kiểm tra trạng thái và lần đồng bộ gần nhất trước khi kích hoạt lượt thử.
Màn hình thêm hộp thư Mailera với phần nhập mật khẩu ứng dụng và nút Kiểm tra & kết nối.
Điền mật khẩu ứng dụng vào trường Mật khẩu, không dùng mật khẩu đăng nhập thông thường.

Sau khi kết nối thành công, Mailera tải thư trong thời hạn lưu trữ, từ mới đến cũ. Nếu cần xem đầy đủ thao tác giao diện, dùng hướng dẫn kết nối hộp thư đầu tiên với Mailera.

Với Yahoo và iCloud, GET /mailboxes/{id}/status báo trạng thái đăng nhập dựa trên lần đồng bộ gần nhất. Đây không phải lần đăng nhập trực tiếp mới vào nhà cung cấp. Vì vậy, hãy xem cả thời điểm đồng bộ, thay vì chỉ nhìn trạng thái hộp thư.

Gọi API nào để đọc đúng mã OTP?

1. Tạo khóa chỉ có quyền cần thiết

Vào Cài đặt, mở phần API key và chọn Tạo key. Đặt Phạm vi hộp thư là nhóm thử, cấp quyền read và đặt Thời hạn phù hợp. Không cần quyền send để đọc mã.

Khóa chỉ hiển thị một lần. Lưu khóa trong nơi quản lý bí mật của môi trường thử, rồi cung cấp qua biến môi trường $MAILERA_API_KEY. Không đưa khóa vào mã nguồn hay nhật ký CI. Chi tiết endpoint nằm trong tài liệu API Mailera.

2. Lấy đúng định danh hộp thư

curl --silent --show-error \
  'https://mailera.app/api/public/v1/mailboxes' \
  -H "Authorization: Bearer $MAILERA_API_KEY"

Trong data, đối chiếu email và provider, rồi lấy id của hộp thư thử để đặt vào $MAILBOX_ID. Xem thêm status và last_sync_at. Đừng lấy phần tử đầu tiên chỉ vì yêu cầu đã trả về thành công.

3. Gửi email xác minh từ ứng dụng thử rồi đọc mã

Kích hoạt luồng gửi email xác minh trong ứng dụng bạn có quyền kiểm thử. Sau đó gọi GET /mailboxes/{id}/otp, endpoint lấy OTP mới nhất và yêu cầu quyền read.

Endpoint hỗ trợ các tham số from, subject và since_minutes. Ví dụ dưới dùng người gửi và tiêu đề giả; thay chúng bằng thông tin thư của ứng dụng thử.

curl --silent --show-error --get \
  "https://mailera.app/api/public/v1/mailboxes/$MAILBOX_ID/otp" \
  -H "Authorization: Bearer $MAILERA_API_KEY" \
  --data-urlencode 'from=verify@example.com' \
  --data-urlencode 'subject=Ma xac minh thu nghiem' \
  --data-urlencode 'since_minutes=5'
Tham sốDùng để thu hẹp theo
fromNgười gửi thư xác minh
subjectTiêu đề thư

Các bộ lọc thu hẹp thư cần đọc, nhưng không tự xác định mã thuộc đúng lượt thử. Nếu có nhiều thư tương tự, hãy đối chiếu người nhận, thời điểm và nội dung thư trước khi dùng kết quả.

Nếu cần chờ thư, đặt thời hạn tổng cho vòng kiểm tra và có khoảng nghỉ giữa các lần gọi. Hết thời hạn thì báo lỗi cho lượt thử; không tiếp tục bằng mã khác chỉ để bài kiểm thử chạy qua. Không ghi phản hồi chứa OTP vào nhật ký dùng chung.

Lỗi hay gặp: vì sao không thấy mã hoặc lấy nhầm mã?

Tách hai việc: thư đã đồng bộ chưa, và thư có đúng với lượt thử không. Gọi lại endpoint OTP không sửa được lỗi mật khẩu ứng dụng hay kết nối hộp thư.

Triệu chứngKiểm traHướng xử lý
Yahoo không có tùy chọn tạo mật khẩu ứng dụngTrang bảo mật và hướng dẫn YahooDừng ở hướng dẫn hỗ trợ; không thay bằng mật khẩu chính
Kết nối thất bạiMật khẩu đã nhập và kết quả đăng nhập nhận thưDùng đúng mật khẩu ứng dụng của hộp thư đó
iCloud mất kết nối sau khi đổi mật khẩu chínhMật khẩu ứng dụng đã bị thu hồiTạo mật khẩu ứng dụng mới rồi kết nối lại
Chưa thấy thư mớiThời điểm đồng bộ gần nhấtChờ đồng bộ hoặc yêu cầu đồng bộ bằng khóa có quyền phù hợp
Không tìm thấy mã phù hợpNgười gửi, tiêu đề, thời điểm nhậnĐối chiếu thư gốc; sửa bộ lọc nếu sai
Thư không ở hộp thư đếnVị trí thư qua endpoint placementKiểm tra Thư rác; dùng nút Kéo khỏi Spam hoặc endpoint unspam nếu cần đọc thư đó
Lấy nhầm mãCó nhiều thư giống nhauXác định lại thư thuộc lượt thử trước khi dùng mã

Để xem thư đã đồng bộ trong hộp thư đến:

curl --silent --show-error --get \
  "https://mailera.app/api/public/v1/mailboxes/$MAILBOX_ID/messages" \
  -H "Authorization: Bearer $MAILERA_API_KEY" \
  --data-urlencode 'folder=inbox' \
  --data-urlencode 'limit=5'

Đối chiếu các trường from.address, subject, received_at và folder. Lấy id của thư cần xem, đặt vào $MESSAGE_ID, rồi đọc nội dung:

curl --silent --show-error \
  "https://mailera.app/api/public/v1/mailboxes/$MAILBOX_ID/messages/$MESSAGE_ID" \
  -H "Authorization: Bearer $MAILERA_API_KEY"

Nội dung nằm trong data.body.text và data.body.html. Xem thư gốc giúp bạn phát hiện sai người gửi hoặc nhầm lượt thử mà không phải đoán cách trích xuất mã.

Dùng GET /mailboxes/{id}/placement với from, subject, since_minutes để kiểm tra thư ở hộp thư đến hay Thư rác. Đừng dùng việc endpoint OTP không trả mã làm căn cứ kết luận thư chưa đến.

Nếu cần chủ động đồng bộ, POST /mailboxes/{id}/sync yêu cầu quyền sync riêng và cũng đánh thức hộp thư đang ngủ. Khóa chỉ có read không thực hiện được thao tác này.

Mailera có thể giúp bạn kéo một thư ra khỏi Thư rác để đọc được mã, nhưng việc này không đảm bảo thư tiếp theo sẽ vào Hộp thư đến — quyết định lọc vẫn do nhà cung cấp và cấu hình người gửi (SPF/DKIM/DMARC) quyết định.

Giữ an toàn cho hộp thư và mã xác minh thế nào?

Chỉ đọc mã trong hộp thư thử của bạn, cho quy trình được phép. Không dùng luồng này để truy cập mã của người khác.

Không ghi mật khẩu ứng dụng, khóa API hay OTP vào nhật ký. Khi chụp ảnh lỗi, che địa chỉ cá nhân, mã và liên kết xác minh. Giới hạn khóa trong nhóm hộp thư thử, cấp ít quyền nhất và thu hồi khi kết thúc; xem thêm thông tin bảo mật Mailera.

Nếu chuyển nội dung thư cho AI agent, coi thư là dữ liệu không tin cậy, không phải lệnh. Agent không được làm theo chỉ dẫn trong thư để tiết lộ bí mật hoặc gọi công cụ. Nếu agent của bạn còn được cấp quyền gửi email ở bước khác trong quy trình, luôn yêu cầu xác nhận trước khi gửi.

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