Back to skills
SkillHub ClubShip Full StackFull Stack

email

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

Packaged view

This page reorganizes the original catalog entry around fit, installability, and workflow context first. The original raw source lives below.

Stars
3,127
Hot score
99
Updated
March 20, 2026
Overall rating
C0.0
Composite score
0.0
Best-practice grade
B84.0

Install command

npx @skill-hub/cli install openclaw-skills-email-skill

Repository

openclaw/skills

Skill path: skills/awspace/email-skill

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

Open repository

Best for

Primary workflow: Ship Full Stack.

Technical facets: Full Stack.

Target audience: everyone.

License: Unknown.

Original source

Catalog source: SkillHub Club.

Repository owner: openclaw.

This is still a mirrored public skill entry. Review the repository before installing into production workflows.

What it helps with

  • Install email into Claude Code, Codex CLI, Gemini CLI, or OpenCode workflows
  • Review https://github.com/openclaw/skills before adding email to shared team environments
  • Use email for development workflows

Works across

Claude CodeCodex CLIGemini CLIOpenCode

Favorites: 0.

Sub-skills: 0.

Aggregator: No.

Original source / Raw SKILL.md

---
name: email
description: Email management and automation. Send, read, search, and organize emails across multiple providers.
metadata: {"clawdbot":{"emoji":"πŸ“§","always":true,"requires":{"bins":["python3"]}}}
---

# 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:

```json
{
  "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
}
```

### 2. For Gmail Users (Recommended)

1. Enable 2-factor authentication on your Google account
2. Generate an App Password:
   - Go to https://myaccount.google.com/security
   - Under "Signing in to Google," select "App passwords"
   - Generate a new app password for "Mail"
   - Use this 16-character password in your config

### 3. Alternative: Environment Variables

Set these environment variables instead of using a config file:

```bash
# 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
```bash
python email_sender.py --to "[email protected]" --subject "Hello" --body "This is a test email"
```

### Send Email with Attachment
```bash
python email_sender.py --to "[email protected]" --subject "Report" --body "Please find attached" --attachment "report.pdf" --attachment "data.xlsx"
```

### Send Test Email
```bash
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

```python
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**
   - Verify your username and password
   - For Gmail: Use app password instead of regular password
   - Check if 2FA is enabled

2. **Connection Refused**
   - Verify SMTP server and port
   - Check firewall settings
   - Try different port (465 for SSL)

3. **Attachment Too Large**
   - Most providers limit attachments to 25MB
   - 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


---

## Skill Companion Files

> Additional files collected from the skill directory layout.

### README.md

```markdown
# OpenClaw Email Skill πŸ“§

A comprehensive email management and automation skill for OpenClaw, enabling seamless email sending, configuration, and integration across multiple email providers.

## Features

- **Multi-provider Support**: Gmail, Outlook/Office365, Yahoo, QQ Mail, and custom SMTP servers
- **Attachment Support**: Send emails with multiple file attachments
- **HTML & Plain Text**: Support for both HTML and plain text email formats
- **CC/BCC Recipients**: Full recipient management capabilities
- **Secure Connections**: TLS/SSL encryption for secure email transmission
- **OpenClaw Integration**: Native integration with OpenClaw's skill system
- **Test Functionality**: Built-in test email verification

## Quick Start

### Installation

1. **Clone the repository:**
   ```bash
   git clone https://github.com/awspace/openclaw-email-skill.git
   cd openclaw-email-skill
   ```

2. **Install dependencies:**
   ```bash
   pip install -r requirements.txt
   ```

### Configuration

Create a configuration file `email_config.json`:

```json
{
  "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
}
```

### For Gmail Users

1. Enable 2-factor authentication on your Google account
2. Generate an App Password:
   - Go to https://myaccount.google.com/security
   - Under "Signing in to Google," select "App passwords"
   - Generate a new app password for "Mail"
   - Use this 16-character password in your config

## Usage Examples

### Command Line

```bash
# 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"

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

### OpenClaw Integration

When installed as an OpenClaw skill, you can use natural language 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]"
```

### Python API

```python
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']}")
```

## Supported Email Providers

| Provider | SMTP Server | Port | TLS | Notes |
|----------|-------------|------|-----|-------|
| Gmail | smtp.gmail.com | 587 | Yes | Requires App Password with 2FA |
| 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 | - |

## File Structure

```
openclaw-email-skill/
β”œβ”€β”€ SKILL.md                    # Main skill documentation
β”œβ”€β”€ email_sender.py            # Core email functionality
β”œβ”€β”€ config_template.json       # Configuration template
β”œβ”€β”€ test_email.py              # Test script
β”œβ”€β”€ openclaw_integration.md    # OpenClaw integration guide
β”œβ”€β”€ _meta.json                 # Skill metadata
β”œβ”€β”€ requirements.txt           # Python dependencies
└── README.md                  # This file
```

## Requirements

- Python 3.7+
- OpenClaw (for integration)
- Required Python packages:
  - `smtplib` (standard library)
  - `email` (standard library)

## Troubleshooting

### Common Issues

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

2. **Connection Refused**
   - Verify SMTP server and port
   - Check firewall settings
   - Try different port (465 for SSL)

3. **Attachment Too Large**
   - Most providers limit attachments to 25MB
   - Consider compressing files or using cloud storage links

### Error Messages

- `SMTPAuthenticationError`: Invalid credentials
- `SMTPConnectError`: Cannot connect to SMTP server
- `SMTPDataError`: Server rejected message
- `TimeoutError`: Connection timeout

## 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
- Store credentials in secure locations (not in code)

## Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

1. Fork the repository
2. Create your feature branch (`git checkout -b feature/amazing-feature`)
3. Commit your changes (`git commit -m 'Add some amazing feature'`)
4. Push to the branch (`git push origin feature/amazing-feature`)
5. Open a Pull Request

## License

This project is licensed under the MIT License - see the LICENSE file for details.

## Acknowledgments

- Built for [OpenClaw](https://openclaw.ai) - The open-source AI assistant platform
- Inspired by the need for seamless email automation in AI workflows
- Thanks to all contributors and users

## Support

For issues, questions, or feature requests:
- Open an issue on [GitHub](https://github.com/awspace/openclaw-email-skill/issues)
- Check the [OpenClaw documentation](https://docs.openclaw.ai)
- Join the [OpenClaw community](https://discord.com/invite/clawd)

---

**Happy Emailing!** πŸ“§βœ¨
```

### _meta.json

```json
{
  "owner": "awspace",
  "slug": "email-skill",
  "displayName": "Email",
  "latest": {
    "version": "0.1.0",
    "publishedAt": 1772164810039,
    "commit": "https://github.com/openclaw/skills/commit/5a3ccea8d1cfb002ca5087d5077d83a8e2a185f8"
  },
  "history": []
}

```

email | SkillHub