🧪 Skills

Ravi email-send

Send, compose, reply, reply-all, or forward emails with HTML formatting and attachments. Do NOT use for reading incoming email (use ravi-inbox) or for creden...

v1.7.1
❤️ 0
⬇️ 249
👁 2
Share

Description


name: ravi-email-send description: Send, compose, reply, reply-all, or forward emails with HTML formatting and attachments. Do NOT use for reading incoming email (use ravi-inbox) or for credentials (use ravi-passwords or ravi-secrets).

Ravi Email — Send

Compose new emails, reply to existing ones, or forward them from your Ravi email address, with optional file attachments.

Writing quality matters. Before drafting email content, see the ravi-email-writing skill for subject lines, HTML formatting, tone, and anti-spam best practices.

Resolving Recipients by Name

If you have the recipient's name but not their email address (e.g. "email Alice"), use ravi-contacts first:

# Search contacts by name
ravi contacts search "Alice" --json
# → Returns matches with email, phone, display_name
# If one match → use the email from the result
# If multiple matches → confirm with the user which Alice they mean
# If no matches → ask the user for the email address directly

Compose a new email

ravi email compose --to "recipient@example.com" --subject "Subject" --body "<p>HTML content</p>" --json

Flags:

  • --to (required): Recipient email address
  • --subject (required): Email subject line
  • --body (required): Email body (HTML supported — use tags like <p>, <h2>, <ul> for formatting)
  • --cc: CC recipients (comma-separated)
  • --bcc: BCC recipients (comma-separated)
  • --attach: File path to attach (can be repeated for multiple files)

Example with HTML formatting and attachment:

ravi email compose --to "user@example.com" --subject "Monthly Report" \
  --body "<h2>Monthly Report</h2><p>Key findings:</p><ul><li>Revenue up 15%</li><li>Churn down 3%</li></ul>" \
  --attach report.pdf --json

Reply to an email

# Reply to sender only
ravi email reply <message_id> --body "<p>Reply content</p>" --json

# Reply to all recipients
ravi email reply-all <message_id> --body "<p>Reply content</p>" --json

Flags:

  • --body (required): Email body (HTML supported — use tags like <p>, <h2>, <ul> for formatting)
  • --cc: CC recipients (comma-separated)
  • --bcc: BCC recipients (comma-separated)
  • --attach: File path to attach (can be repeated for multiple files)

Example with CC:

ravi email reply <message_id> --body "<p>Adding the team.</p>" --cc "team@example.com" --json

Forward an email

ravi email forward <message_id> --to "recipient@example.com" --body "<p>FYI — see below.</p>" --json

Flags:

  • --to (required): Recipient email address
  • --body (required): Email body (HTML supported — use tags like <p>, <h2>, <ul> for formatting)
  • --cc: CC recipients (comma-separated)
  • --bcc: BCC recipients (comma-separated)
  • --attach: File path to attach (can be repeated for multiple files)

Attachments

Attachments are uploaded automatically when you use --attach. The CLI:

  1. Validates the file (blocked extensions like .exe rejected instantly)
  2. Requests a presigned upload URL from the server
  3. Uploads the file directly to cloud storage
  4. Includes the attachment UUID in the email

Blocked extensions: .exe, .dll, .bat, .cmd, .msi, .iso, .dmg, .apk, and other dangerous file types. Developer files (.py, .sh, .js, .rb) are allowed.

Max size: 10 MB per attachment.

Rate Limits

Email sending is rate-limited per user account:

  • 60 emails/hour and 500 emails/day
  • 200 attachment uploads/hour

On hitting a rate limit, you'll get a 429 error with a retry_after_seconds value. Wait that many seconds before retrying.

Best practices for agents:

  • Avoid tight loops of email sends — batch work where possible
  • On 429: parse retry_after_seconds from the error, wait, then retry
  • For bulk operations, add a 1-2 second delay between sends

Important Notes

  • 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.
  • Always use --json — human-readable output is not designed for parsing.

Related Skills

  • ravi-contacts — Look up a person's email address by name before sending
  • ravi-email-writing — Subject lines, HTML templates, tone, and anti-spam best practices
  • ravi-inbox — Read incoming email before replying or forwarding
  • ravi-identity — Get your email address and identity name for signatures
  • ravi-feedback — Report deliverability issues or suggest email feature improvements

Reviews (0)

Sign in to write a review.

No reviews yet. Be the first to review!

Comments (0)

Sign in to join the discussion.

No comments yet. Be the first to share your thoughts!

Compatible Platforms

Pricing

Free

Related Configs