diff --git a/config/local-upload.yaml b/config/local-upload.yaml new file mode 100644 index 0000000..34519bb --- /dev/null +++ b/config/local-upload.yaml @@ -0,0 +1,9 @@ +# Default bucket (used when no bucket specified) +default: local + +# Bucket configurations +buckets: + local: + mode: local + endpoint: http://localhost:8001/public + public_dir: public # relative to cwd, or use absolute path diff --git a/config/s3-upload-sparticle.yaml b/config/s3-upload-sparticle.yaml new file mode 100644 index 0000000..91b144e --- /dev/null +++ b/config/s3-upload-sparticle.yaml @@ -0,0 +1,8 @@ +default: local + +# Bucket configurations +buckets: + local: + mode: local + endpoint: http://localhost:8001/public + public_dir: public # relative to cwd, or use absolute path diff --git a/docker-compose-with-pgsql.yml b/docker-compose-with-pgsql.yml index 2c9ca52..4eaf91d 100644 --- a/docker-compose-with-pgsql.yml +++ b/docker-compose-with-pgsql.yml @@ -34,6 +34,7 @@ services: - DEFAULT_THINKING_ENABLE=true # PostgreSQL 配置 - CHECKPOINT_DB_URL=postgresql://postgres:E5ACJo6zJub4QS@postgres:5432/agent_db + - R2_UPLOAD_CONFIG=/app/config/local-upload.yaml volumes: # 挂载项目数据目录 - ./projects:/app/projects diff --git a/docker-compose.yml b/docker-compose.yml index 4f2efde..0adb11a 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -13,6 +13,7 @@ services: - BACKEND_HOST=http://api-dev.gbase.ai - MAX_CONTEXT_TOKENS=262144 - DEFAULT_THINKING_ENABLE=true + - R2_UPLOAD_CONFIG=/app/config/s3-upload-sparticle.yaml volumes: # 挂载项目数据目录 - ./projects:/app/projects diff --git a/skills/imap-smtp-email/SKILL.md b/skills/imap-smtp-email/SKILL.md new file mode 100644 index 0000000..908f901 --- /dev/null +++ b/skills/imap-smtp-email/SKILL.md @@ -0,0 +1,211 @@ +--- +name: imap-smtp-email +description: Read and send email via IMAP/SMTP. Check for new/unread messages, fetch content, search mailboxes, mark as read/unread, and send emails with attachments. Works with any IMAP/SMTP server including Gmail, Outlook, 163.com, vip.163.com, 126.com, vip.126.com, 188.com, and vip.188.com. +metadata: + openclaw: + emoji: "📧" + requires: + env: + - IMAP_HOST + - IMAP_USER + - IMAP_PASS + - SMTP_HOST + - SMTP_USER + - SMTP_PASS + bins: + - node + - npm + primaryEnv: SMTP_PASS +--- + +# IMAP/SMTP Email Tool + +Read, search, and manage email via IMAP protocol. Send email via SMTP. Supports Gmail, Outlook, 163.com, vip.163.com, 126.com, vip.126.com, 188.com, vip.188.com, and any standard IMAP/SMTP server. + +## Configuration + +Create `.env` in the skill folder or set environment variables: + +```bash +# IMAP Configuration (receiving email) +IMAP_HOST=imap.gmail.com # Server hostname +IMAP_PORT=993 # Server port +IMAP_USER=your@email.com +IMAP_PASS=your_password +IMAP_TLS=true # Use TLS/SSL connection +IMAP_REJECT_UNAUTHORIZED=true # Set to false for self-signed certs +IMAP_MAILBOX=INBOX # Default mailbox + +# SMTP Configuration (sending email) +SMTP_HOST=smtp.gmail.com # SMTP server hostname +SMTP_PORT=587 # SMTP port (587 for STARTTLS, 465 for SSL) +SMTP_SECURE=false # true for SSL (465), false for STARTTLS (587) +SMTP_USER=your@gmail.com # Your email address +SMTP_PASS=your_password # Your password or app password +SMTP_FROM=your@gmail.com # Default sender email (optional) +SMTP_REJECT_UNAUTHORIZED=true # Set to false for self-signed certs +``` + +## Common Email Servers + +| Provider | IMAP Host | IMAP Port | SMTP Host | SMTP Port | +|----------|-----------|-----------|-----------|-----------| +| 163.com | imap.163.com | 993 | smtp.163.com | 465 | +| vip.163.com | imap.vip.163.com | 993 | smtp.vip.163.com | 465 | +| 126.com | imap.126.com | 993 | smtp.126.com | 465 | +| vip.126.com | imap.vip.126.com | 993 | smtp.vip.126.com | 465 | +| 188.com | imap.188.com | 993 | smtp.188.com | 465 | +| vip.188.com | imap.vip.188.com | 993 | smtp.vip.188.com | 465 | +| yeah.net | imap.yeah.net | 993 | smtp.yeah.net | 465 | +| Gmail | imap.gmail.com | 993 | smtp.gmail.com | 587 | +| Outlook | outlook.office365.com | 993 | smtp.office365.com | 587 | +| QQ Mail | imap.qq.com | 993 | smtp.qq.com | 587 | + +**Important for Gmail:** +- Gmail does **not** accept your regular account password +- You must generate an **App Password**: https://myaccount.google.com/apppasswords +- Use the generated 16-character App Password as `IMAP_PASS` / `SMTP_PASS` +- Requires Google Account with 2-Step Verification enabled + +**Important for 163.com:** +- Use **authorization code** (授权码), not account password +- Enable IMAP/SMTP in web settings first + +## IMAP Commands (Receiving Email) + +### check +Check for new/unread emails. + +```bash +node scripts/imap.js check [--limit 10] [--mailbox INBOX] [--recent 2h] +``` + +Options: +- `--limit `: Max results (default: 10) +- `--mailbox `: Mailbox to check (default: INBOX) +- `--recent