Email

Overview

Each Identity gets a dedicated email address (e.g. my-agent@in.ravi.app). Your agent can send and receive real email — verification messages, newsletters, notifications, and threaded conversations.

Get your email address

ravi get email --json
{
  "email": "my-agent@in.ravi.app"
}

Read your inbox

List email threads

# All threads
ravi inbox email --json

# Unread only
ravi inbox email --unread --json

Read a specific thread

ravi inbox email <thread_id> --json
{
  "thread_id": "abc123",
  "subject": "Verify your email",
  "messages": [
    {
      "id": 10,
      "from_email": "noreply@example.com",
      "to_email": "my-agent@in.ravi.app",
      "subject": "Verify your email",
      "text_content": "Click here to verify: https://example.com/verify?token=xyz",
      "direction": "incoming",
      "is_read": false,
      "created_dt": "2026-02-25T10:30:00Z"
    }
  ]
}

Individual messages

# List all email messages (flat, not grouped by thread)
ravi message email --json

# Unread only
ravi message email --unread --json

# Specific message by ID
ravi message email <message_id> --json

Send email

Compose a new email

ravi email compose \
  --to "recipient@example.com" \
  --subject "Monthly Report" \
  --body "<h2>Report</h2><p>Key findings:</p><ul><li>Revenue up 15%</li></ul>" \
  --json

The --body flag accepts HTML. Use tags like <p>, <h2>, <ul>, <a href="..."> for formatting. No <html> or <body> wrapper needed.

Optional flags:

  • --cc — CC recipients (comma-separated)
  • --bcc — BCC recipients (comma-separated)
  • --attach — file path to attach (repeatable for multiple files)

Reply to an email

# Reply to sender only
ravi email reply <message_id> --subject "Re: Original Subject" --body "<p>Thanks!</p>" --json

# Reply to all recipients
ravi email reply-all <message_id> --subject "Re: Original Subject" --body "<p>Thanks!</p>" --json

Attachments

Use --attach to include files:

ravi email compose \
  --to "user@example.com" \
  --subject "Report" \
  --body "<p>See attached.</p>" \
  --attach report.pdf \
  --json
  • Max size: 10 MB per attachment
  • Blocked types: .exe, .dll, .bat, .cmd, .msi, .iso, .dmg, .apk
  • Developer files allowed: .py, .sh, .js, .rb, etc.

Rate limits

LimitValue
Emails per hour60
Emails per day500
Attachment uploads per hour200

On hitting a rate limit, you’ll get a 429 response with a retry_after_seconds value.

Common recipes

THREAD_ID=$(ravi inbox email --unread --json | jq -r '.[0].thread_id')
ravi inbox email "$THREAD_ID" --json | jq -r '.messages[].text_content' | grep -oE 'https?://[^ ]+'

Wait for and read a verification email

sleep 5
ravi inbox email --unread --json | jq -r '.[0].subject'

Next steps