{
  "schemaVersion": "1.0",
  "item": {
    "slug": "imap-smtp-email-plus",
    "name": "IMAP/SMTP Email (Plus)",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/lRoccoon/imap-smtp-email-plus",
    "canonicalUrl": "https://clawhub.ai/lRoccoon/imap-smtp-email-plus",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/imap-smtp-email-plus",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=imap-smtp-email-plus",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "README.md",
      "SKILL.md",
      "_meta.json",
      "package-lock.json",
      "package.json",
      "scripts/imap.js"
    ],
    "primaryDoc": "SKILL.md",
    "quickSetup": [
      "Download the package from Yavira.",
      "Extract the archive and review SKILL.md first.",
      "Import or place the package into your OpenClaw setup."
    ],
    "agentAssist": {
      "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
      "steps": [
        "Download the package from Yavira.",
        "Extract it into a folder your agent can access.",
        "Paste one of the prompts below and point your agent at the extracted folder."
      ],
      "prompts": [
        {
          "label": "New install",
          "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Then review README.md for any prerequisites, environment setup, or post-install checks. Tell me what you changed and call out any manual steps you could not complete."
        },
        {
          "label": "Upgrade existing",
          "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Then review README.md for any prerequisites, environment setup, or post-install checks. Summarize what changed and any follow-up checks I should run."
        }
      ]
    },
    "sourceHealth": {
      "source": "tencent",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-04-30T16:55:25.780Z",
      "expiresAt": "2026-05-07T16:55:25.780Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
        "contentDisposition": "attachment; filename=\"network-1.0.0.zip\"",
        "redirectLocation": null,
        "bodySnippet": null
      },
      "scope": "source",
      "summary": "Source download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this source.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/imap-smtp-email-plus"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    },
    "downloadPageUrl": "https://openagent3.xyz/downloads/imap-smtp-email-plus",
    "agentPageUrl": "https://openagent3.xyz/skills/imap-smtp-email-plus/agent",
    "manifestUrl": "https://openagent3.xyz/skills/imap-smtp-email-plus/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/imap-smtp-email-plus/agent.md"
  },
  "agentAssist": {
    "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
    "steps": [
      "Download the package from Yavira.",
      "Extract it into a folder your agent can access.",
      "Paste one of the prompts below and point your agent at the extracted folder."
    ],
    "prompts": [
      {
        "label": "New install",
        "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Then review README.md for any prerequisites, environment setup, or post-install checks. Tell me what you changed and call out any manual steps you could not complete."
      },
      {
        "label": "Upgrade existing",
        "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Then review README.md for any prerequisites, environment setup, or post-install checks. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "IMAP/SMTP Email Tool",
        "body": "Read, search, and manage email via IMAP protocol. Send email via SMTP. Supports Gmail, Outlook, 163.com, vip.163.com, 126.com, vip.126.com, 188.com, vip.188.com, and any standard IMAP/SMTP server."
      },
      {
        "title": "Configuration",
        "body": "Create .env in the skill folder or set environment variables:\n\n# IMAP Configuration (receiving email)\nIMAP_HOST=imap.gmail.com          # Server hostname\nIMAP_PORT=993                     # Server port\nIMAP_USER=your@email.com\nIMAP_PASS=your_password\nIMAP_TLS=true                     # Use TLS/SSL connection\nIMAP_REJECT_UNAUTHORIZED=true     # Set to false for self-signed certs\nIMAP_MAILBOX=INBOX                # Default mailbox\n\n# SMTP Configuration (sending email)\nSMTP_HOST=smtp.gmail.com          # SMTP server hostname\nSMTP_PORT=587                     # SMTP port (587 for STARTTLS, 465 for SSL)\nSMTP_SECURE=false                 # true for SSL (465), false for STARTTLS (587)\nSMTP_USER=your@gmail.com          # Your email address\nSMTP_PASS=your_password           # Your password or app password\nSMTP_FROM=your@gmail.com          # Default sender email (optional)\nSMTP_REJECT_UNAUTHORIZED=true     # Set to false for self-signed certs"
      },
      {
        "title": "Common Email Servers",
        "body": "ProviderIMAP HostIMAP PortSMTP HostSMTP Port163.comimap.163.com993smtp.163.com465vip.163.comimap.vip.163.com993smtp.vip.163.com465126.comimap.126.com993smtp.126.com465vip.126.comimap.vip.126.com993smtp.vip.126.com465188.comimap.188.com993smtp.188.com465vip.188.comimap.vip.188.com993smtp.vip.188.com465yeah.netimap.yeah.net993smtp.yeah.net465Gmailimap.gmail.com993smtp.gmail.com587Outlookoutlook.office365.com993smtp.office365.com587QQ Mailimap.qq.com993smtp.qq.com587\n\nImportant for 163.com:\n\nUse authorization code (授权码), not account password\nEnable IMAP/SMTP in web settings first"
      },
      {
        "title": "check",
        "body": "Check for new/unread emails.\n\nnode scripts/imap.js check [--limit 10] [--mailbox INBOX] [--recent 2h]\n\nOptions:\n\n--limit <n>: Max results (default: 10)\n--mailbox <name>: Mailbox to check (default: INBOX)\n--recent <time>: Only show emails from last X time (e.g., 30m, 2h, 7d)"
      },
      {
        "title": "fetch",
        "body": "Fetch full email content by UID.\n\nnode scripts/imap.js fetch <uid> [--mailbox INBOX]"
      },
      {
        "title": "download",
        "body": "Download all attachments from an email, or a specific attachment.\n\nnode scripts/imap.js download <uid> [--mailbox INBOX] [--dir <path>] [--file <filename>]\n\nOptions:\n\n--mailbox <name>: Mailbox (default: INBOX)\n--dir <path>: Output directory (default: current directory)\n--file <filename>: Download only the specified attachment (default: download all)"
      },
      {
        "title": "search",
        "body": "Search emails with filters.\n\nnode scripts/imap.js search [options]\n\nOptions:\n  --unseen           Only unread messages\n  --seen             Only read messages\n  --from <email>     From address contains\n  --subject <text>   Subject contains\n  --recent <time>    From last X time (e.g., 30m, 2h, 7d)\n  --since <date>     After date (YYYY-MM-DD)\n  --before <date>    Before date (YYYY-MM-DD)\n  --limit <n>        Max results (default: 20)\n  --mailbox <name>   Mailbox to search (default: INBOX)"
      },
      {
        "title": "mark-read / mark-unread",
        "body": "Mark message(s) as read or unread.\n\nnode scripts/imap.js mark-read <uid> [uid2 uid3...]\nnode scripts/imap.js mark-unread <uid> [uid2 uid3...]"
      },
      {
        "title": "move",
        "body": "Move message(s) to another mailbox/folder. Useful for archiving emails.\n\nnode scripts/imap.js move <target-mailbox> <uid> [uid2 uid3...] [--mailbox <source>]\n\nExamples:\n\n# Archive to Gmail \"All Mail\" (归档到所有邮件)\nnode scripts/imap.js move \"[Gmail]/所有邮件\" 123 456\n\n# Move to a custom folder\nnode scripts/imap.js move \"Work\" 123\n\n# Move from a specific mailbox\nnode scripts/imap.js move \"Archive\" 123 --mailbox INBOX"
      },
      {
        "title": "list-mailboxes",
        "body": "List all available mailboxes/folders.\n\nnode scripts/imap.js list-mailboxes"
      },
      {
        "title": "send",
        "body": "Send email via SMTP.\n\nnode scripts/smtp.js send --to <email> --subject <text> [options]\n\nRequired:\n\n--to <email>: Recipient (comma-separated for multiple)\n--subject <text>: Email subject, or --subject-file <file>\n\nOptional:\n\n--body <text>: Plain text body\n--html: Send body as HTML\n--body-file <file>: Read body from file\n--html-file <file>: Read HTML from file\n--cc <email>: CC recipients\n--bcc <email>: BCC recipients\n--attach <file>: Attachments (comma-separated)\n--from <email>: Override default sender\n\nExamples:\n\n# Simple text email\nnode scripts/smtp.js send --to recipient@example.com --subject \"Hello\" --body \"World\"\n\n# HTML email\nnode scripts/smtp.js send --to recipient@example.com --subject \"Newsletter\" --html --body \"<h1>Welcome</h1>\"\n\n# Email with attachment\nnode scripts/smtp.js send --to recipient@example.com --subject \"Report\" --body \"Please find attached\" --attach report.pdf\n\n# Multiple recipients\nnode scripts/smtp.js send --to \"a@example.com,b@example.com\" --cc \"c@example.com\" --subject \"Update\" --body \"Team update\""
      },
      {
        "title": "test",
        "body": "Test SMTP connection by sending a test email to yourself.\n\nnode scripts/smtp.js test"
      },
      {
        "title": "Dependencies",
        "body": "npm install"
      },
      {
        "title": "Security Notes",
        "body": "Store credentials in .env (add to .gitignore)\nFor Gmail: use App Password if 2FA is enabled\nFor 163.com: use authorization code (授权码), not account password"
      },
      {
        "title": "Troubleshooting",
        "body": "Connection timeout:\n\nVerify server is running and accessible\nCheck host/port configuration\n\nAuthentication failed:\n\nVerify username (usually full email address)\nCheck password is correct\nFor 163.com: use authorization code, not account password\nFor Gmail: use App Password if 2FA enabled\n\nTLS/SSL errors:\n\nMatch IMAP_TLS/SMTP_SECURE setting to server requirements\nFor self-signed certs: set IMAP_REJECT_UNAUTHORIZED=false or SMTP_REJECT_UNAUTHORIZED=false"
      }
    ],
    "body": "IMAP/SMTP Email Tool\n\nRead, search, and manage email via IMAP protocol. Send email via SMTP. Supports Gmail, Outlook, 163.com, vip.163.com, 126.com, vip.126.com, 188.com, vip.188.com, and any standard IMAP/SMTP server.\n\nConfiguration\n\nCreate .env in the skill folder or set environment variables:\n\n# IMAP Configuration (receiving email)\nIMAP_HOST=imap.gmail.com          # Server hostname\nIMAP_PORT=993                     # Server port\nIMAP_USER=your@email.com\nIMAP_PASS=your_password\nIMAP_TLS=true                     # Use TLS/SSL connection\nIMAP_REJECT_UNAUTHORIZED=true     # Set to false for self-signed certs\nIMAP_MAILBOX=INBOX                # Default mailbox\n\n# SMTP Configuration (sending email)\nSMTP_HOST=smtp.gmail.com          # SMTP server hostname\nSMTP_PORT=587                     # SMTP port (587 for STARTTLS, 465 for SSL)\nSMTP_SECURE=false                 # true for SSL (465), false for STARTTLS (587)\nSMTP_USER=your@gmail.com          # Your email address\nSMTP_PASS=your_password           # Your password or app password\nSMTP_FROM=your@gmail.com          # Default sender email (optional)\nSMTP_REJECT_UNAUTHORIZED=true     # Set to false for self-signed certs\n\nCommon Email Servers\nProvider\tIMAP Host\tIMAP Port\tSMTP Host\tSMTP Port\n163.com\timap.163.com\t993\tsmtp.163.com\t465\nvip.163.com\timap.vip.163.com\t993\tsmtp.vip.163.com\t465\n126.com\timap.126.com\t993\tsmtp.126.com\t465\nvip.126.com\timap.vip.126.com\t993\tsmtp.vip.126.com\t465\n188.com\timap.188.com\t993\tsmtp.188.com\t465\nvip.188.com\timap.vip.188.com\t993\tsmtp.vip.188.com\t465\nyeah.net\timap.yeah.net\t993\tsmtp.yeah.net\t465\nGmail\timap.gmail.com\t993\tsmtp.gmail.com\t587\nOutlook\toutlook.office365.com\t993\tsmtp.office365.com\t587\nQQ Mail\timap.qq.com\t993\tsmtp.qq.com\t587\n\nImportant for 163.com:\n\nUse authorization code (授权码), not account password\nEnable IMAP/SMTP in web settings first\nIMAP Commands (Receiving Email)\ncheck\n\nCheck for new/unread emails.\n\nnode scripts/imap.js check [--limit 10] [--mailbox INBOX] [--recent 2h]\n\n\nOptions:\n\n--limit <n>: Max results (default: 10)\n--mailbox <name>: Mailbox to check (default: INBOX)\n--recent <time>: Only show emails from last X time (e.g., 30m, 2h, 7d)\nfetch\n\nFetch full email content by UID.\n\nnode scripts/imap.js fetch <uid> [--mailbox INBOX]\n\ndownload\n\nDownload all attachments from an email, or a specific attachment.\n\nnode scripts/imap.js download <uid> [--mailbox INBOX] [--dir <path>] [--file <filename>]\n\n\nOptions:\n\n--mailbox <name>: Mailbox (default: INBOX)\n--dir <path>: Output directory (default: current directory)\n--file <filename>: Download only the specified attachment (default: download all)\nsearch\n\nSearch emails with filters.\n\nnode scripts/imap.js search [options]\n\nOptions:\n  --unseen           Only unread messages\n  --seen             Only read messages\n  --from <email>     From address contains\n  --subject <text>   Subject contains\n  --recent <time>    From last X time (e.g., 30m, 2h, 7d)\n  --since <date>     After date (YYYY-MM-DD)\n  --before <date>    Before date (YYYY-MM-DD)\n  --limit <n>        Max results (default: 20)\n  --mailbox <name>   Mailbox to search (default: INBOX)\n\nmark-read / mark-unread\n\nMark message(s) as read or unread.\n\nnode scripts/imap.js mark-read <uid> [uid2 uid3...]\nnode scripts/imap.js mark-unread <uid> [uid2 uid3...]\n\nmove\n\nMove message(s) to another mailbox/folder. Useful for archiving emails.\n\nnode scripts/imap.js move <target-mailbox> <uid> [uid2 uid3...] [--mailbox <source>]\n\n\nExamples:\n\n# Archive to Gmail \"All Mail\" (归档到所有邮件)\nnode scripts/imap.js move \"[Gmail]/所有邮件\" 123 456\n\n# Move to a custom folder\nnode scripts/imap.js move \"Work\" 123\n\n# Move from a specific mailbox\nnode scripts/imap.js move \"Archive\" 123 --mailbox INBOX\n\nlist-mailboxes\n\nList all available mailboxes/folders.\n\nnode scripts/imap.js list-mailboxes\n\nSMTP Commands (Sending Email)\nsend\n\nSend email via SMTP.\n\nnode scripts/smtp.js send --to <email> --subject <text> [options]\n\n\nRequired:\n\n--to <email>: Recipient (comma-separated for multiple)\n--subject <text>: Email subject, or --subject-file <file>\n\nOptional:\n\n--body <text>: Plain text body\n--html: Send body as HTML\n--body-file <file>: Read body from file\n--html-file <file>: Read HTML from file\n--cc <email>: CC recipients\n--bcc <email>: BCC recipients\n--attach <file>: Attachments (comma-separated)\n--from <email>: Override default sender\n\nExamples:\n\n# Simple text email\nnode scripts/smtp.js send --to recipient@example.com --subject \"Hello\" --body \"World\"\n\n# HTML email\nnode scripts/smtp.js send --to recipient@example.com --subject \"Newsletter\" --html --body \"<h1>Welcome</h1>\"\n\n# Email with attachment\nnode scripts/smtp.js send --to recipient@example.com --subject \"Report\" --body \"Please find attached\" --attach report.pdf\n\n# Multiple recipients\nnode scripts/smtp.js send --to \"a@example.com,b@example.com\" --cc \"c@example.com\" --subject \"Update\" --body \"Team update\"\n\ntest\n\nTest SMTP connection by sending a test email to yourself.\n\nnode scripts/smtp.js test\n\nDependencies\nnpm install\n\nSecurity Notes\nStore credentials in .env (add to .gitignore)\nFor Gmail: use App Password if 2FA is enabled\nFor 163.com: use authorization code (授权码), not account password\nTroubleshooting\n\nConnection timeout:\n\nVerify server is running and accessible\nCheck host/port configuration\n\nAuthentication failed:\n\nVerify username (usually full email address)\nCheck password is correct\nFor 163.com: use authorization code, not account password\nFor Gmail: use App Password if 2FA enabled\n\nTLS/SSL errors:\n\nMatch IMAP_TLS/SMTP_SECURE setting to server requirements\nFor self-signed certs: set IMAP_REJECT_UNAUTHORIZED=false or SMTP_REJECT_UNAUTHORIZED=false"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/lRoccoon/imap-smtp-email-plus",
    "publisherUrl": "https://clawhub.ai/lRoccoon/imap-smtp-email-plus",
    "owner": "lRoccoon",
    "version": "1.0.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/imap-smtp-email-plus",
    "downloadUrl": "https://openagent3.xyz/downloads/imap-smtp-email-plus",
    "agentUrl": "https://openagent3.xyz/skills/imap-smtp-email-plus/agent",
    "manifestUrl": "https://openagent3.xyz/skills/imap-smtp-email-plus/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/imap-smtp-email-plus/agent.md"
  }
}