Agent Skillsfreestylefly/wesight › imap-smtp-email

imap-smtp-email

GitHub

通过IMAP/SMTP协议收发邮件的工具,支持Gmail、Outlook及网易邮箱等。功能包括检查新邮件、获取内容、搜索、标记状态及发送带附件邮件。配置已预设,无需用户手动编辑.env文件。

SKILLs/imap-smtp-email/SKILL.md freestylefly/wesight

Trigger Scenarios

检查新邮件或收件箱状态 搜索特定邮件或历史邮件 发送邮件或带附件的邮件 管理邮件状态(如标记已读)

Install

npx skills add freestylefly/wesight --skill imap-smtp-email -g -y
More Options

Non-standard path

npx skills add https://github.com/freestylefly/wesight/tree/main/SKILLs/imap-smtp-email -g -y

Use without installing

npx skills use freestylefly/wesight@imap-smtp-email

指定 Agent (Claude Code)

npx skills add freestylefly/wesight --skill imap-smtp-email -a claude-code -g -y

安装 repo 全部 skill

npx skills add freestylefly/wesight --all -g -y

预览 repo 内 skill

npx skills add freestylefly/wesight --list

SKILL.md

Frontmatter
{
    "name": "imap-smtp-email",
    "version": "1.0.1",
    "official": true,
    "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."
}

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.

Important: Configuration is Pre-configured

The .env configuration file is automatically managed by WeSight Settings (邮箱设置). Do NOT ask the user to create or edit .env — just run the commands directly. If credentials are wrong, the scripts will return a clear error message; only then should you inform the user to check their email settings.

The .env file is located in this skill's directory (same folder as this SKILL.md file). The scripts load it automatically via an absolute path, regardless of the current working directory.

Configuration Reference

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

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 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"

test

Test SMTP connection by sending a test email to yourself.

node scripts/smtp.js test

Dependencies

npm install

Security Notes

  • Store credentials in .env (add to .gitignore)
  • For Gmail: use App Password if 2FA is enabled
  • 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: use App Password if 2FA enabled

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

Version History

  • 36af2b6 Current 2026-07-05 18:24

Same Skill Collection

SKILLs/article-writer/SKILL.md
SKILLs/canvas-design/SKILL.md
SKILLs/content-planner/SKILL.md
SKILLs/create-plan/SKILL.md
SKILLs/daily-trending/SKILL.md
SKILLs/develop-web-game/SKILL.md
SKILLs/docx/SKILL.md
SKILLs/films-search/SKILL.md
SKILLs/frontend-design/SKILL.md
SKILLs/local-tools/SKILL.md
SKILLs/music-search/SKILL.md
SKILLs/pdf/SKILL.md
SKILLs/playwright/SKILL.md
SKILLs/pptx/SKILL.md
SKILLs/remotion/SKILL.md
SKILLs/seedance/SKILL.md
SKILLs/seedream/SKILL.md
SKILLs/skill-creator/SKILL.md
SKILLs/skill-vetter/SKILL.md
SKILLs/stock-analyzer/SKILL.md
SKILLs/stock-announcements/SKILL.md
SKILLs/stock-explorer/SKILL.md
SKILLs/technology-news-search/SKILL.md
SKILLs/weather/SKILL.md
SKILLs/web-search/SKILL.md
SKILLs/xlsx/SKILL.md
SKILLs/youdaonote/SKILL.md

Metadata

Files
0
Version
36af2b6
Hash
458e25c0
Indexed
2026-07-05 18:24

trang chủ - Wiki
Copyright © 2011-2026 iteam. Current version is 2.155.2. UTC+08:00, 2026-07-08 23:10
浙ICP备14020137号-1 $bản đồ khách truy cập$