How to automate sending emails or messages with OpenClaw?

Clawpedia · For Humans

Configure OpenClaw to automatically send emails and messages based on triggers, schedules, or commands.

How to Automate Sending Emails or Messages with OpenClaw

OpenClaw can send emails, SMS, and chat messages on your behalf — either on command or triggered by schedules and events. This turns your AI assistant into a powerful communication automation hub.

Email Sending Setup


# Install the email skill
openclaw skill install email-sender

# Run the setup wizard
openclaw skill setup email-sender
# → Email provider: gmail
# → Email address: you@gmail.com
# → App password: ****
# → Default sender name: Your Name
# → Configured successfully!

Email Configuration


# ~/.openclaw/skills/email-sender/config.yaml
email:
  provider: smtp
  smtp:
    host: smtp.gmail.com
    port: 587
    secure: true
    auth:
      user: ${EMAIL_USER}
      pass: ${EMAIL_APP_PASSWORD}   # Use App Password, not regular password
  
  defaults:
    sender_name: "Your Name"
    signature: |
      Best regards,
      Your Name
      Sent via OpenClaw
  
  # Or use an API provider
  # provider: sendgrid
  # api_key: ${SENDGRID_API_KEY}

Sending Emails via Chat


You: "Send an email to alice@company.com about the meeting tomorrow"
OpenClaw: I'll draft that email for you:

  To: alice@company.com
  Subject: Meeting Tomorrow
  
  Hi Alice,
  
  Just a reminder about our meeting tomorrow. Looking forward
  to discussing the project updates.
  
  Best regards,
  Your Name

  Send this? [Yes / Edit / Cancel]

You: "Yes"
OpenClaw: ✅ Email sent to alice@company.com

SMS Sending


openclaw skill install sms-sender
openclaw skill setup sms-sender
# → Provider: twilio
# → Account SID: AC****
# → Auth Token: ****
# → From number: +1234567890

You: "Text my wife that I'll be home late"
OpenClaw: I'll send an SMS to Sarah (+1-555-0123):
  "Hey, I'll be home a bit late today. See you soon!"
  Send? [Yes / Edit]

Scheduled Messages


# ~/.openclaw/automations/weekly-report.yaml
name: Weekly Report Email
schedule: "0 9 * * 1"    # Every Monday at 9 AM

action:
  skill: email-sender
  template: |
    Subject: Weekly Status Report - {{date}}
    To: team@company.com
    
    Hi team,
    
    Here's the automated weekly summary:
    {{#tasks_completed}}
    - {{title}} (completed {{date}})
    {{/tasks_completed}}
    
    Upcoming this week:
    {{#tasks_planned}}
    - {{title}} (due {{due_date}})
    {{/tasks_planned}}

# Create a scheduled message via CLI
openclaw schedule create \
  --name "morning-briefing" \
  --cron "0 7 * * 1-5" \
  --action "Send me a morning briefing email with weather, calendar, and news"

Event-Triggered Messages


# Send notification when something happens
automations:
  - name: server-alert
    trigger:
      skill: server-monitor
      event: server_down
    action:
      skill: sms-sender
      message: "⚠️ Server {{server_name}} is down! Detected at {{time}}"
      to: "+1-555-0123"

  - name: pr-notification
    trigger:
      skill: github-integration
      event: pr_review_requested
    action:
      skill: email-sender
      to: "you@company.com"
      subject: "PR Review Needed: {{pr.title}}"
      body: "{{pr.author}} requested your review on PR #{{pr.number}}"

Multi-Channel Messaging


You: "Announce the new release to the team on Slack, Discord, and email"
OpenClaw: I'll send the announcement to all three channels:

  📧 Email → team@company.com
  💬 Slack → #announcements
  🎮 Discord → #releases
  
  Message:
  "We're excited to announce v2.5.0! Key features include..."
  
  Send to all? [Yes / Edit / Select channels]

Safety Features


email:
  safety:
    require_confirmation: true      # Always ask before sending
    max_recipients: 10              # Prevent mass emails
    blocked_domains:
      - competitor.com              # Never send to these domains
    daily_limit: 50                 # Max emails per day
    
    # Review mode: draft but don't send
    draft_mode: false

Supported Providers

TypeProviderSkillFree Tier
EmailGmail SMTPemail-sender500/day
EmailSendGridemail-sender100/day
EmailMailgunemail-sender100/day
EmailAmazon SESemail-sender62,000/month
SMSTwiliosms-senderTrial credits
SMSVonagesms-sender€2 free credit
PushPushoverpush-notifierOne-time $5

Troubleshooting

PushNtfypush-notifierFree (unlimited)
ProblemSolution
"Authentication failed" (Gmail)Use App Password, not regular password
Emails going to spamSet up SPF/DKIM records for your domain
SMS not deliveringVerify the phone number format (+country code)
"Rate limit exceeded"Check provider's daily sending limits
Scheduled messages not firingVerify OpenClaw gateway is running 24/7

Tip: Always enable require_confirmation: true when setting up email automation. It takes one second to confirm but prevents embarrassing accidental sends. Once you're confident in your automations, you can disable it for specific scheduled tasks.

Related Articles