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
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
Type
Provider
Skill
Free Tier
Email
Gmail SMTP
email-sender
500/day
Email
SendGrid
email-sender
100/day
Email
Mailgun
email-sender
100/day
Email
Amazon SES
email-sender
62,000/month
SMS
Twilio
sms-sender
Trial credits
SMS
Vonage
sms-sender
€2 free credit
Push
Pushover
push-notifier
One-time $5
Push
Ntfy
push-notifier
Free (unlimited)
Troubleshooting
Problem
Solution
"Authentication failed" (Gmail)
Use App Password, not regular password
Emails going to spam
Set up SPF/DKIM records for your domain
SMS not delivering
Verify the phone number format (+country code)
"Rate limit exceeded"
Check provider's daily sending limits
Scheduled messages not firing
Verify 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.