{
  "schemaVersion": "1.0",
  "item": {
    "slug": "ravi-email-send",
    "name": "Ravi email-send",
    "source": "tencent",
    "type": "skill",
    "category": "通讯协作",
    "sourceUrl": "https://clawhub.ai/raunaksingwi/ravi-email-send",
    "canonicalUrl": "https://clawhub.ai/raunaksingwi/ravi-email-send",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/ravi-email-send",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=ravi-email-send",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "SKILL.md"
    ],
    "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. 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. 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/ravi-email-send"
    },
    "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/ravi-email-send",
    "agentPageUrl": "https://openagent3.xyz/skills/ravi-email-send/agent",
    "manifestUrl": "https://openagent3.xyz/skills/ravi-email-send/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/ravi-email-send/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. 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. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "Ravi Email — Send",
        "body": "Compose new emails, reply to existing ones, or forward them from your Ravi email address, with optional file attachments.\n\nWriting quality matters. Before drafting email content, see the ravi-email-writing skill for subject lines, HTML formatting, tone, and anti-spam best practices."
      },
      {
        "title": "Resolving Recipients by Name",
        "body": "If you have the recipient's name but not their email address (e.g. \"email Alice\"), use ravi-contacts first:\n\n# Search contacts by name\nravi contacts search \"Alice\" --json\n# → Returns matches with email, phone, display_name\n# If one match → use the email from the result\n# If multiple matches → confirm with the user which Alice they mean\n# If no matches → ask the user for the email address directly"
      },
      {
        "title": "Compose a new email",
        "body": "ravi email compose --to \"recipient@example.com\" --subject \"Subject\" --body \"<p>HTML content</p>\" --json\n\nFlags:\n\n--to (required): Recipient email address\n--subject (required): Email subject line\n--body (required): Email body (HTML supported — use tags like <p>, <h2>, <ul> for formatting)\n--cc: CC recipients (comma-separated)\n--bcc: BCC recipients (comma-separated)\n--attach: File path to attach (can be repeated for multiple files)\n\nExample with HTML formatting and attachment:\n\nravi email compose --to \"user@example.com\" --subject \"Monthly Report\" \\\n  --body \"<h2>Monthly Report</h2><p>Key findings:</p><ul><li>Revenue up 15%</li><li>Churn down 3%</li></ul>\" \\\n  --attach report.pdf --json"
      },
      {
        "title": "Reply to an email",
        "body": "# Reply to sender only\nravi email reply <message_id> --body \"<p>Reply content</p>\" --json\n\n# Reply to all recipients\nravi email reply-all <message_id> --body \"<p>Reply content</p>\" --json\n\nFlags:\n\n--body (required): Email body (HTML supported — use tags like <p>, <h2>, <ul> for formatting)\n--cc: CC recipients (comma-separated)\n--bcc: BCC recipients (comma-separated)\n--attach: File path to attach (can be repeated for multiple files)\n\nExample with CC:\n\nravi email reply <message_id> --body \"<p>Adding the team.</p>\" --cc \"team@example.com\" --json"
      },
      {
        "title": "Forward an email",
        "body": "ravi email forward <message_id> --to \"recipient@example.com\" --body \"<p>FYI — see below.</p>\" --json\n\nFlags:\n\n--to (required): Recipient email address\n--body (required): Email body (HTML supported — use tags like <p>, <h2>, <ul> for formatting)\n--cc: CC recipients (comma-separated)\n--bcc: BCC recipients (comma-separated)\n--attach: File path to attach (can be repeated for multiple files)"
      },
      {
        "title": "Attachments",
        "body": "Attachments are uploaded automatically when you use --attach. The CLI:\n\nValidates the file (blocked extensions like .exe rejected instantly)\nRequests a presigned upload URL from the server\nUploads the file directly to cloud storage\nIncludes the attachment UUID in the email\n\nBlocked extensions: .exe, .dll, .bat, .cmd, .msi, .iso, .dmg, .apk, and other dangerous file types. Developer files (.py, .sh, .js, .rb) are allowed.\n\nMax size: 10 MB per attachment."
      },
      {
        "title": "Rate Limits",
        "body": "Email sending is rate-limited per user account:\n\n60 emails/hour and 500 emails/day\n200 attachment uploads/hour\n\nOn hitting a rate limit, you'll get a 429 error with a retry_after_seconds value. Wait that many seconds before retrying.\n\nBest practices for agents:\n\nAvoid tight loops of email sends — batch work where possible\nOn 429: parse retry_after_seconds from the error, wait, then retry\nFor bulk operations, add a 1-2 second delay between sends"
      },
      {
        "title": "Important Notes",
        "body": "HTML email bodies — The --body flag accepts HTML. Use tags for formatting: <p>, <h2>, <ul>, <a href=\"...\">. No <html> or <body> wrapper needed. See ravi-email-writing for templates and anti-spam rules.\nAlways use --json — human-readable output is not designed for parsing."
      },
      {
        "title": "Related Skills",
        "body": "ravi-contacts — Look up a person's email address by name before sending\nravi-email-writing — Subject lines, HTML templates, tone, and anti-spam best practices\nravi-inbox — Read incoming email before replying or forwarding\nravi-identity — Get your email address and identity name for signatures\nravi-feedback — Report deliverability issues or suggest email feature improvements"
      }
    ],
    "body": "Ravi Email — Send\n\nCompose new emails, reply to existing ones, or forward them from your Ravi email address, with optional file attachments.\n\nWriting quality matters. Before drafting email content, see the ravi-email-writing skill for subject lines, HTML formatting, tone, and anti-spam best practices.\n\nResolving Recipients by Name\n\nIf you have the recipient's name but not their email address (e.g. \"email Alice\"), use ravi-contacts first:\n\n# Search contacts by name\nravi contacts search \"Alice\" --json\n# → Returns matches with email, phone, display_name\n# If one match → use the email from the result\n# If multiple matches → confirm with the user which Alice they mean\n# If no matches → ask the user for the email address directly\n\nCompose a new email\nravi email compose --to \"recipient@example.com\" --subject \"Subject\" --body \"<p>HTML content</p>\" --json\n\n\nFlags:\n\n--to (required): Recipient email address\n--subject (required): Email subject line\n--body (required): Email body (HTML supported — use tags like <p>, <h2>, <ul> for formatting)\n--cc: CC recipients (comma-separated)\n--bcc: BCC recipients (comma-separated)\n--attach: File path to attach (can be repeated for multiple files)\n\nExample with HTML formatting and attachment:\n\nravi email compose --to \"user@example.com\" --subject \"Monthly Report\" \\\n  --body \"<h2>Monthly Report</h2><p>Key findings:</p><ul><li>Revenue up 15%</li><li>Churn down 3%</li></ul>\" \\\n  --attach report.pdf --json\n\nReply to an email\n# Reply to sender only\nravi email reply <message_id> --body \"<p>Reply content</p>\" --json\n\n# Reply to all recipients\nravi email reply-all <message_id> --body \"<p>Reply content</p>\" --json\n\n\nFlags:\n\n--body (required): Email body (HTML supported — use tags like <p>, <h2>, <ul> for formatting)\n--cc: CC recipients (comma-separated)\n--bcc: BCC recipients (comma-separated)\n--attach: File path to attach (can be repeated for multiple files)\n\nExample with CC:\n\nravi email reply <message_id> --body \"<p>Adding the team.</p>\" --cc \"team@example.com\" --json\n\nForward an email\nravi email forward <message_id> --to \"recipient@example.com\" --body \"<p>FYI — see below.</p>\" --json\n\n\nFlags:\n\n--to (required): Recipient email address\n--body (required): Email body (HTML supported — use tags like <p>, <h2>, <ul> for formatting)\n--cc: CC recipients (comma-separated)\n--bcc: BCC recipients (comma-separated)\n--attach: File path to attach (can be repeated for multiple files)\nAttachments\n\nAttachments are uploaded automatically when you use --attach. The CLI:\n\nValidates the file (blocked extensions like .exe rejected instantly)\nRequests a presigned upload URL from the server\nUploads the file directly to cloud storage\nIncludes the attachment UUID in the email\n\nBlocked extensions: .exe, .dll, .bat, .cmd, .msi, .iso, .dmg, .apk, and other dangerous file types. Developer files (.py, .sh, .js, .rb) are allowed.\n\nMax size: 10 MB per attachment.\n\nRate Limits\n\nEmail sending is rate-limited per user account:\n\n60 emails/hour and 500 emails/day\n200 attachment uploads/hour\n\nOn hitting a rate limit, you'll get a 429 error with a retry_after_seconds value. Wait that many seconds before retrying.\n\nBest practices for agents:\n\nAvoid tight loops of email sends — batch work where possible\nOn 429: parse retry_after_seconds from the error, wait, then retry\nFor bulk operations, add a 1-2 second delay between sends\nImportant Notes\nHTML email bodies — The --body flag accepts HTML. Use tags for formatting: <p>, <h2>, <ul>, <a href=\"...\">. No <html> or <body> wrapper needed. See ravi-email-writing for templates and anti-spam rules.\nAlways use --json — human-readable output is not designed for parsing.\nRelated Skills\nravi-contacts — Look up a person's email address by name before sending\nravi-email-writing — Subject lines, HTML templates, tone, and anti-spam best practices\nravi-inbox — Read incoming email before replying or forwarding\nravi-identity — Get your email address and identity name for signatures\nravi-feedback — Report deliverability issues or suggest email feature improvements"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/raunaksingwi/ravi-email-send",
    "publisherUrl": "https://clawhub.ai/raunaksingwi/ravi-email-send",
    "owner": "raunaksingwi",
    "version": "1.7.1",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/ravi-email-send",
    "downloadUrl": "https://openagent3.xyz/downloads/ravi-email-send",
    "agentUrl": "https://openagent3.xyz/skills/ravi-email-send/agent",
    "manifestUrl": "https://openagent3.xyz/skills/ravi-email-send/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/ravi-email-send/agent.md"
  }
}