← Mục lục tài liệu

read_mail_code

key: email.read_mail_code nhóm: EmailAction hàm Client A13: read_mail_code

Chức năng

Đăng nhập IMAP vào hòm thư, lọc thư mới theo người nhận/thời gian, rồi bóc mã xác thực ra — theo độ dài + kiểu ký tự, hoặc theo XPath của phần tử chứa mã. Dùng cho luồng OTP/2FA khi đăng ký hoặc đăng nhập.

Tham số (14)

Tên trên UIpayloadNameKiểuMặc địnhMô tả
🚩 Email Email string Chức năng: Địa chỉ hộp thư dùng để đăng nhập IMAP và đọc mã xác thực. Bạn cần nhập mục này để action chạy đúng. Ví dụ 1: you@gmail.com. Giải nghĩa: Hộp thư Gmail cá nhân. Ví dụ 2: bot@congty.vn. Giải nghĩa: Hộp thư riêng dành cho tự động hóa. Ví dụ 3: ={{$json.email}}. Giải nghĩa: Lặp qua danh sách hộp thư lấy từ node trước.
🚩 Password Password string Chức năng: Mật khẩu đăng nhập IMAP. Với Gmail và Outlook phải dùng App Password chứ không phải mật khẩu thường. Bạn cần nhập mục này để action chạy đúng. Ví dụ 1: abcd efgh ijkl mnop. Giải nghĩa: App Password 16 ký tự do Google cấp. Ví dụ 2: ={{$json.app_password}}. Giải nghĩa: Lấy từ node Credentials để không lộ trong workflow. Ví dụ 3: ={{$credentials.mailPassword}}. Giải nghĩa: Lấy từ credential đã lưu trong n8n.
Mail Server Mail_server string imap.gmail.com Chức năng: Địa chỉ máy chủ IMAP của nhà cung cấp email. Bạn có thể để trống nếu không cần dùng. Ví dụ 1: imap.gmail.com. Giải nghĩa: Dành cho Gmail và Google Workspace. Ví dụ 2: outlook.office365.com. Giải nghĩa: Dành cho Outlook và Microsoft 365. Ví dụ 3: imap.mail.yahoo.com. Giải nghĩa: Dành cho Yahoo Mail.
Email Sent To Contains Email_sent_to_contains string Chức năng: Chỉ xét những thư có địa chỉ người nhận chứa chuỗi này. Rất hữu ích khi dùng địa chỉ dạng cộng (alias) cho nhiều tài khoản. Bạn có thể để trống nếu không cần dùng. Ví dụ 1: shop01@gmail.com. Giải nghĩa: Chỉ lấy thư gửi tới đúng alias này. Ví dụ 2: +shop01. Giải nghĩa: Khớp mọi thư gửi tới dạng ten+shop01@gmail.com. Ví dụ 3: ={{$json.alias}}. Giải nghĩa: Alias do bước trước sinh ra.
Code Type Code_type options (number / alphanumeric) number Chức năng: Loại ký tự của mã xác thực cần bóc ra khỏi nội dung thư. Bạn có thể để trống nếu không cần dùng. Ví dụ 1: number. Giải nghĩa: Mã chỉ gồm chữ số, ví dụ 123456. Ví dụ 2: alphanumeric. Giải nghĩa: Mã trộn chữ và số, ví dụ A1B2C3. Ví dụ 3: ={{$json.code_type}}. Giải nghĩa: Kiểu mã do bước trước xác định.
Code Length Code_length string 6 Chức năng: Số ký tự của mã xác thực. Dùng để nhặt đúng chuỗi giữa nhiều con số trong thư. Bạn có thể để trống nếu không cần dùng. Ví dụ 1: 6. Giải nghĩa: Độ dài phổ biến nhất cho mã OTP. Ví dụ 2: 4. Giải nghĩa: Mã ngắn của một số ngân hàng và ứng dụng. Ví dụ 3: 8. Giải nghĩa: Mã dài dùng cho khôi phục tài khoản.
Code Element XPath Code_element_xpath string Chức năng: Cách lấy mã theo cấu trúc HTML của thư thay vì dò theo độ dài. Dùng khi trong thư có nhiều số dễ gây nhầm. Bạn có thể để trống nếu không cần dùng. Ví dụ 1: //span[@id='otp']. Giải nghĩa: Lấy mã nằm trong thẻ span có id là otp. Ví dụ 2: //td[contains(@class,'code')]. Giải nghĩa: Lấy mã trong ô bảng có class chứa chữ code. Ví dụ 3: (để trống). Giải nghĩa: Để trống nếu đã dùng cách dò theo độ dài và kiểu ký tự.
Code Element Attribute Code_element_attribute string text Chức năng: Thuộc tính của phần tử ở trên chứa mã. Ghi text nếu mã là chữ hiển thị. Bạn có thể để trống nếu không cần dùng. Ví dụ 1: text. Giải nghĩa: Mã là nội dung chữ bên trong thẻ. Ví dụ 2: data-code. Giải nghĩa: Mã nằm trong thuộc tính tùy chỉnh data-code. Ví dụ 3: value. Giải nghĩa: Mã nằm trong thuộc tính value của một input.
Folder folder string INBOX Chức năng: Hộp thư IMAP cần quét để tìm mã xác thực. Bạn có thể để trống nếu không cần dùng. Ví dụ 1: INBOX. Giải nghĩa: Hộp thư đến — nơi mã thường nằm. Ví dụ 2: [Gmail]/Spam. Giải nghĩa: Quét thư rác khi mã hay bị lọc nhầm. Ví dụ 3: ={{$json.folder}}. Giải nghĩa: Hộp thư do bước trước xác định.
Unread Only unread_only boolean true Chức năng: Bật thì chỉ xét thư chưa đọc — tránh lấy nhầm mã cũ đã dùng. Tắt khi cần đọc lại thư đã mở. Bạn có thể để trống nếu không cần dùng. Ví dụ 1: true. Giải nghĩa: Chỉ lấy mã mới về, an toàn nhất. Ví dụ 2: false. Giải nghĩa: Quét cả thư đã đọc, dùng khi chạy lại một bước bị lỗi. Ví dụ 3: ={{$json.flag}}. Giải nghĩa: Chọn theo dữ liệu điều khiển.
Max Mails max_mails string 30 Chức năng: Số thư gần nhất được quét. Số lớn thì chắc chắn tìm ra nhưng chậm hơn. Bạn có thể để trống nếu không cần dùng. Ví dụ 1: 10. Giải nghĩa: Chỉ soi vài thư mới nhất — nhanh. Ví dụ 2: 30. Giải nghĩa: Mặc định, đủ cho hộp thư có lưu lượng vừa phải. Ví dụ 3: 100. Giải nghĩa: Quét sâu khi hộp thư nhận rất nhiều thư mỗi phút.
Debug debug boolean false Chức năng: Bật để in nhật ký chi tiết quá trình đọc thư: kết nối, lọc, chuỗi khớp được. Bạn có thể để trống nếu không cần dùng. Ví dụ 1: false. Giải nghĩa: Chạy im lặng. Ví dụ 2: true. Giải nghĩa: In log để biết vì sao không tìm thấy mã. Ví dụ 3: ={{$json.debug}}. Giải nghĩa: Bật log theo cờ điều khiển.
Debug Prefix debug_prefix string [MAIL] Chức năng: Chuỗi đứng đầu mỗi dòng log để dễ lọc khi nhiều node cùng ghi nhật ký. Bạn có thể để trống nếu không cần dùng. Ví dụ 1: [MAIL]. Giải nghĩa: Nhãn mặc định cho nhóm đọc thư. Ví dụ 2: [OTP-SHOP01]. Giải nghĩa: Tách log theo từng tài khoản đang chạy. Ví dụ 3: ={{$workflow.name}}. Giải nghĩa: Lấy tên workflow làm nhãn.
Max Age Minutes max_age_minutes string Chức năng: Chỉ chấp nhận thư đến trong khoảng phút gần đây. Đây là chốt chặn quan trọng để không lấy nhầm mã OTP cũ đã hết hạn. Bạn có thể để trống nếu không cần dùng. Ví dụ 1: 5. Giải nghĩa: Chỉ nhận mã vừa gửi trong 5 phút — khớp với hạn OTP thông thường. Ví dụ 2: 1. Giải nghĩa: Rất chặt, dùng khi vừa bấm nút gửi mã xong. Ví dụ 3: 60. Giải nghĩa: Nới rộng một giờ cho các loại mã sống lâu.

🚩 = bắt buộc. Ô rỗng của tham số tùy chọn sẽ bị loại khỏi payload.inputs — Client tự áp default.

Payload MQTT gửi đi

{
  "version": "great-lotus-pyauto-v1",
  "action": {
    "key": "email.read_mail_code",
    "group": "EmailAction",
    "function": "read_mail_code"
  },
  "inputs": {
    "Email": {
      "type": "string",
      "value": ""
    },
    "Password": {
      "type": "string",
      "value": ""
    },
    "Mail_server": {
      "type": "string",
      "value": "imap.gmail.com"
    },
    "Email_sent_to_contains": {
      "type": "string",
      "value": ""
    },
    "Code_type": {
      "type": "options",
      "value": "number"
    },
    "Code_length": {
      "type": "string",
      "value": 6
    },
    "Code_element_xpath": {
      "type": "string",
      "value": ""
    },
    "Code_element_attribute": {
      "type": "string",
      "value": "text"
    },
    "folder": {
      "type": "string",
      "value": "INBOX"
    },
    "unread_only": {
      "type": "boolean",
      "value": true
    },
    "max_mails": {
      "type": "string",
      "value": 30
    },
    "debug": {
      "type": "boolean",
      "value": false
    },
    "debug_prefix": {
      "type": "string",
      "value": "[MAIL]"
    }
  },
  "meta": {
    "requestId": "<16 hex>",
    "requestTopic": "WP2_PC176",
    "responseTopic": "RES_WP2_PC176",
    "waitForResponse": true,
    "responseTimeoutSec": 60
  }
}

Publish lên topic bạn nhập ở ô Topic; nếu bật Wait For Response, node chờ Client trả lời trên RES_<topic> với đúng meta.requestId. return: "NG" ⇒ node ném lỗi.

Sinh tự động bởi tools/gen_doc_html.js từ ACTION_SPECS (package n8n-nodes-c12_pyautogui_web@0.1.34) · 2026-07-22 · Đừng sửa tay file này — sửa _notes/ hoặc source rồi chạy lại npm run doc:build.