SkillHub

email-skill

v0.1.0

Email management and automation. Send, read, search, and organize emails across multiple providers.

Sourced from ClawHub, Authored by awspace

Installation

Please help me install the skill `email-skill` from SkillHub official store. npx skills add awspace/email-skill

Email 📧

Email management and automation with attachment support.

Features

  • Send emails with attachments
  • Support for multiple email providers (Gmail, Outlook, Yahoo, etc.)
  • HTML and plain text email support
  • CC and BCC recipients
  • Test email functionality
  • Secure TLS/SSL connections

Setup Instructions

1. Configure Email Credentials

Create a configuration file email_config.json in your workspace:

{
  "smtp_server": "smtp.gmail.com",
  "smtp_port": 587,
  "username": "[email protected]",
  "password": "your-app-password",
  "sender_name": "OpenClaw Assistant",
  "use_tls": true,
  "use_ssl": false
}
  1. Enable 2-factor authentication on your Google account
  2. Generate an App Password:
  3. Go to https://myaccount.google.com/security
  4. Under "Signing in to Google," select "App passwords"
  5. Generate a new app password for "Mail"
  6. Use this 16-character password in your config

3. Alternative: Environment Variables

Set these environment variables instead of using a config file:

# Windows
set SMTP_SERVER=smtp.gmail.com
set SMTP_PORT=587
set [email protected]
set EMAIL_PASSWORD=your-app-password
set EMAIL_SENDER_NAME="OpenClaw Assistant"

# macOS/Linux
export SMTP_SERVER=smtp.gmail.com
export SMTP_PORT=587
export [email protected]
export EMAIL_PASSWORD=your-app-password
export EMAIL_SENDER_NAME="OpenClaw Assistant"

Usage Examples

Send a Simple Email

python email_sender.py --to "[email protected]" --subject "Hello" --body "This is a test email"

Send Email with Attachment

python email_sender.py --to "[email protected]" --subject "Report" --body "Please find attached" --attachment "report.pdf" --attachment "data.xlsx"

Send Test Email

python email_sender.py --to "[email protected]" --test

Using with OpenClaw Commands

"Send email to [email protected] with subject Meeting Notes and body Here are the notes from today's meeting"
"Send test email to verify configuration"
"Email the report.pdf file to [email protected]"

Supported Email Providers

Provider SMTP Server Port TLS
Gmail smtp.gmail.com 587 Yes
Outlook/Office365 smtp.office365.com 587 Yes
Yahoo smtp.mail.yahoo.com 587 Yes
QQ Mail smtp.qq.com 587 Yes
Custom SMTP your.smtp.server.com 587/465 As configured

Python API Usage

from email_sender import EmailSender

# Initialize with config file
sender = EmailSender("email_config.json")

# Send email with attachment
result = sender.send_email(
    to_email="[email protected]",
    subject="Important Document",
    body="Please review the attached document.",
    attachments=["document.pdf", "data.csv"]
)

if result["success"]:
    print(f"Email sent with {result['attachments']} attachments")
else:
    print(f"Error: {result['error']}")

Troubleshooting

Common Issues:

  1. Authentication Failed
  2. Verify your username and password
  3. For Gmail: Use app password instead of regular password
  4. Check if 2FA is enabled

  5. Connection Refused

  6. Verify SMTP server and port
  7. Check firewall settings
  8. Try different port (465 for SSL)

  9. Attachment Too Large

  10. Most providers limit attachments to 25MB
  11. Consider compressing files or using cloud storage links

Security Notes

  • Never commit email credentials to version control
  • Use environment variables for production deployments
  • Regularly rotate app passwords
  • Consider using dedicated email accounts for automation