Token导航 LogoToken导航TokenDH.com
研究检索敏感数据clawhub未标认证来源可访问clear审计提醒

sales-email-automation销售电子邮件自动化

Agent Skill

sales-email-automation 用于查找、检索和筛选相关信息,适合在 OpenClaw 中需要根据关键词、任务场景或来源线索快速定位候选结果时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

总安装

3,672

周安装

150

GitHub Stars

公开资料未说明

下载量

1,176
OpenClaw

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

2

许可证

MIT-0

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:sales-email-automation(销售电子邮件自动化)
来源仓库:https://github.com/cjboy007/sales-email-automation
安装命令:
openclaw skills install sales-email-automation
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 OpenClaw 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

ClawHubOpenClaw
openclaw skills install sales-email-automation

简介

sales-email-automation 支持 IMAP/SMTP 协议下的邮件收发与自动化管理。

  • 适用于客户关系维护、线索跟进与销售流程自动化任务。
  • 通过 clawhub 安装后,可批量读取未读邮件、发送带附件消息并标记状态。
  • 使用前必须配置邮箱账号与安全授权,防范钓鱼与数据泄露风险。
  • 建议设置发件频率限制以避免被识别为垃圾邮件发送者。

SKILL.md

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, and other standard email providers.
metadata
openclaw
emoji
📧
requires
env
bins
primaryEnv
SMTP_PASS

IMAP/SMTP Email Tool

Read, search, and manage email via IMAP protocol. Send email via SMTP. Supports Gmail, Outlook, 163.com, and any standard IMAP/SMTP server.

Configuration

Create .env in the skill folder or set environment variables:

# 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

ProviderIMAP HostIMAP PortSMTP HostSMTP Port
163.comimap.163.com993smtp.163.com465
Gmailimap.gmail.com993smtp.gmail.com587
Outlookoutlook.office365.com993smtp.office365.com587
QQ Mailimap.qq.com993smtp.qq.com587

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.

node scripts/imap.js check [--limit 10] [--mailbox INBOX] [--recent 2h]

Options:

  • --limit <n>: Max results (default: 10)
  • --mailbox <name>: Mailbox to check (default: INBOX)
  • --recent <time>: Only show emails from last X time (e.g., 30m, 2h, 7d)

fetch

Fetch full email content by UID.

node scripts/imap.js fetch <uid> [--mailbox INBOX]

download

Download all attachments from an email, or a specific attachment.

node scripts/imap.js download <uid> [--mailbox INBOX] [--dir <path>] [--file <filename>]

Options:

  • --mailbox <name>: Mailbox (default: INBOX)
  • --dir <path>: Output directory (default: current directory)
  • --file <filename>: Download only the specified attachment (default: download all)

search

Search emails with filters.

node scripts/imap.js search [options]

Options:
  --unseen           Only unread messages
  --seen             Only read messages
  --from <email>     From address contains
  --subject <text>   Subject contains
  --recent <time>    From last X time (e.g., 30m, 2h, 7d)
  --since <date>     After date (YYYY-MM-DD)
  --before <date>    Before date (YYYY-MM-DD)
  --limit <n>        Max results (default: 20)
  --mailbox <name>   Mailbox to search (default: INBOX)

mark-read / mark-unread

Mark message(s) as read or unread.

node scripts/imap.js mark-read <uid> [uid2 uid3...]
node scripts/imap.js mark-unread <uid> [uid2 uid3...]

list-mailboxes

List all available mailboxes/folders.

node scripts/imap.js list-mailboxes

SMTP Commands (Sending Email)

send

Send email via SMTP.

node scripts/smtp.js send --to <email> --subject <text> [options]

Required:

  • --to <email>: Recipient (comma-separated for multiple)
  • --subject <text>: Email subject, or --subject-file <file>

Optional:

  • --body <text>: Plain text body
  • --html: Send body as HTML
  • --body-file <file>: Read body from file
  • --html-file <file>: Read HTML from file
  • --cc <email>: CC recipients
  • --bcc <email>: BCC recipients
  • --attach <file>: Attachments (comma-separated)
  • --from <email>: Override default sender

Examples:

# Simple text email
node scripts/smtp.js send --to recipient@example.com --subject "Hello" --body "World"

# HTML email
node scripts/smtp.js send --to recipient@example.com --subject "Newsletter" --html --body "<h1>Welcome</h1>"

# Email with attachment
node scripts/smtp.js send --to recipient@example.com --subject "Report" --body "Please find attached" --attach report.pdf

# Multiple recipients
node scripts/smtp.js send --to "a@example.com,b@example.com" --cc "c@example.com" --subject "Update" --body "Team update"

Development Email Workflow

Important Principles

Template is for structure reference only - always customize content for each recipient.

Wrong (avoid):

  • ❌ Sending template email directly without customization
  • ❌ Using hardcoded customer names, locations, or company info from templates
  • ❌ Sending location-specific content to wrong regions

Correct approach:

  • ✅ Use template structure only (greeting → company intro → attachments → call-to-action → signature)
  • ✅ Customize content based on customer info (company name, country, industry)
  • ✅ Generate dynamic HTML content for each recipient

Pre-send Checklist

1. [ ] **Collect customer information**
   - Company name
   - Country/region
   - Industry/business type
   - Contact person name (if available)
   - Email address

2. [ ] **Generate personalized email content**
   - Customize greeting with customer location/industry
   - Adjust tone and focus for different markets
   - Generate HTML file or prepare `--body` content

3. [ ] **Prepare attachments**
   - Product catalog PDF
   - Custom quotation (if applicable)
   - Verify all file paths are correct

4. [ ] **Send complete email in one message**
   - Include all attachments
   - Personalized content
   - Professional signature

Complete Send Command Example

cd $WORKSPACE/skills/imap-smtp-email

node scripts/smtp.js send \
  --to "customer@example.com" \
  --subject "Product Catalog from Your Company" \
  --html \
  --body-file "/path/to/customized-email.html" \
  --attach "/path/to/catalogue.pdf,/path/to/quotation.pdf"

OKKI CRM Integration (Optional)

This skill supports automatic sync with OKKI CRM for tracking email communications.

Configuration

Set environment variables in .env:

# OKKI CRM Integration
OKKI_CLI_PATH=/path/to/okki.py
VECTOR_SEARCH_PATH=/path/to/search-customers.py
PYTHON_VENV_PATH=python3

Features

  • Automatic customer matching via domain or vector search
  • Email trail creation in OKKI (trail_type=102)
  • Quotation trail creation (trail_type=101)
  • Deduplication via /tmp/okki-sync-processed.json
  • Unmatched email logging to /tmp/okki-unmatched-emails.log

Manual Sync Command

node okki-sync.js quotation '{"dataFile":"/path/to/data.json","quotationNo":"QT-xxx"}'

Discord Review Integration (Optional)

Configure Discord channel for email review workflow.

Configuration

Edit config/discord-config.json:

{
  "channel_id": "<your-discord-channel-id>",
  "guild_id": "",
  "review_channel": "email-review",
  "timeout_minutes": 30
}

Set environment variable:

DISCORD_BOT_TOKEN=your-discord-bot-token

Dependencies

npm install

Security Notes

  • Store credentials in .env (add to .gitignore)
  • Gmail: regular password is rejected — generate an App Password at https://myaccount.google.com/apppasswords
  • For 163.com: use authorization code (授权码), not account password

Troubleshooting

Connection timeout:

  • Verify server is running and accessible
  • Check host/port configuration

Authentication failed:

  • Verify username (usually full email address)
  • Check password is correct
  • For 163.com: use authorization code, not account password
  • For Gmail: regular password won't work — generate an App Password

TLS/SSL errors:

  • Match IMAP_TLS/SMTP_SECURE setting to server requirements
  • For self-signed certs: set IMAP_REJECT_UNAUTHORIZED=false or SMTP_REJECT_UNAUTHORIZED=false

Related Files

  • Main scripts: scripts/imap.js, scripts/smtp.js
  • OKKI sync: okki-sync.js
  • Discord review: discord-review.js
  • Configuration: config/discord-config.json, profiles/user-map.json

适合场景

01

OpenClaw 用户查找和安装 Skill 时

02

用户想查找某类 Agent Skill 时

03

需要根据任务场景推荐可安装能力包时

04

需要对比不同来源的安装命令和来源信息时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

能力 4

补充不同宿主或平台的使用分布数据

能力 5

展示第三方安全扫描或审计结果

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

OpenClaw

92.27%
按下载量换算1,085

安全审计

VirusTotal

可疑

ClawScan

可疑

Static analysis

可疑

权限和风险

敏感数据

该 Skill 可能接触密钥、Token、环境变量或敏感配置,应进入高风险复核队列,默认不自动发布。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。来源安全扫描存在 warning/failed 结果,不能写成本站确认安全。当前只有一个来源,正式发布前建议补源仓库或其他目录站核验。

来源信息

继续浏览同类 Skills