返回顶部
i

imap-smtp-emailIMAP邮件收发

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. Supports multiple accounts. 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.

作者: admin | 来源: ClawHub
源自
ClawHub
版本
V 0.0.10
安全检测
已通过
37,579
下载量
免费
免费
88
收藏
概述
安装方式
版本历史

imap-smtp-email

IMAP/SMTP 电子邮件工具

通过IMAP协议读取、搜索和管理电子邮件。通过SMTP发送电子邮件。支持Gmail、Outlook、163.com、vip.163.com、126.com、vip.126.com、188.com、vip.188.com以及任何标准IMAP/SMTP服务器。

配置

运行设置脚本以配置您的电子邮件账户:

bash
bash setup.sh

配置存储在 ~/.config/imap-smtp-email/.env(技能更新后仍保留)。如果未找到配置,技能将回退到技能目录中的 .env 文件(用于向后兼容)。

配置文件格式

bash

默认账户(无前缀)


IMAP_HOST=imap.gmail.com
IMAP_PORT=993
IMAP_USER=your@email.com
IMAPPASS=yourpassword
IMAP_TLS=true
IMAPREJECTUNAUTHORIZED=true
IMAP_MAILBOX=INBOX

SMTP_HOST=smtp.gmail.com
SMTP_PORT=587
SMTP_SECURE=false
SMTP_USER=your@email.com
SMTPPASS=yourpassword
SMTP_FROM=your@email.com
SMTPREJECTUNAUTHORIZED=true

文件访问白名单(安全)

ALLOWEDREADDIRS=~/Downloads,~/Documents ALLOWEDWRITEDIRS=~/Downloads

多账户

您可以在同一配置文件中配置其他电子邮件账户。每个账户在所有变量上使用名称前缀(大写)。

添加账户

运行设置脚本并选择添加新账户:

bash
bash setup.sh

或手动将带前缀的变量添加到 ~/.config/imap-smtp-email/.env:

bash

工作账户(WORK_ 前缀)


WORKIMAPHOST=imap.company.com
WORKIMAPPORT=993
WORKIMAPUSER=me@company.com
WORKIMAPPASS=password
WORKIMAPTLS=true
WORKIMAPREJECT_UNAUTHORIZED=true
WORKIMAPMAILBOX=INBOX
WORKSMTPHOST=smtp.company.com
WORKSMTPPORT=587
WORKSMTPSECURE=false
WORKSMTPUSER=me@company.com
WORKSMTPPASS=password
WORKSMTPFROM=me@company.com
WORKSMTPREJECT_UNAUTHORIZED=true

使用命名账户

在命令前添加 --account <名称>:

bash
node scripts/imap.js --account work check
node scripts/smtp.js --account work send --to foo@bar.com --subject Hi --body Hello

不使用 --account 时,将使用默认(无前缀)账户。

账户名称规则

  • - 仅限字母和数字(例如 work、163、personal2)
  • 不区分大小写:work 和 WORK 指向同一账户
  • .env 中的前缀始终大写(例如 WORKIMAPHOST)
  • ALLOWEDREADDIRS 和 ALLOWEDWRITEDIRS 在所有账户间共享(始终无前缀)

常见电子邮件服务器

提供商IMAP 主机IMAP 端口SMTP 主机SMTP 端口
163.comimap.163.com993smtp.163.com465
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 邮箱 | imap.qq.com | 993 | smtp.qq.com | 587 |

Gmail 重要提示:

  • - Gmail 不接受您的常规账户密码
  • 您必须生成一个应用密码:https://myaccount.google.com/apppasswords
  • 使用生成的16位应用密码作为 IMAPPASS / SMTPPASS
  • 需要已启用两步验证的Google账户

163.com 重要提示:

  • - 使用授权码,而非账户密码
  • 先在网页设置中启用IMAP/SMTP

IMAP 命令(接收电子邮件)

check

检查新邮件/未读邮件。

bash
node scripts/imap.js [--account <名称>] check [--limit 10] [--mailbox INBOX] [--recent 2h]

选项:

  • - --limit :最大结果数(默认:10)
  • --mailbox <名称>:要检查的邮箱(默认:INBOX)
  • --recent <时间>:仅显示最近X时间内的邮件(例如 30m、2h、7d)

fetch

通过UID获取完整邮件内容。

bash
node scripts/imap.js [--account <名称>] fetch [--mailbox INBOX]

download

下载邮件的所有附件或特定附件。

bash
node scripts/imap.js [--account <名称>] download [--mailbox INBOX] [--dir <路径>] [--file <文件名>]

选项:

  • - --mailbox <名称>:邮箱(默认:INBOX)
  • --dir <路径>:输出目录(默认:当前目录)
  • --file <文件名>:仅下载指定附件(默认:下载全部)

search

使用筛选条件搜索邮件。

bash
node scripts/imap.js [--account <名称>] search [选项]

选项:
--unseen 仅未读邮件
--seen 仅已读邮件
--from <邮箱> 发件人地址包含
--subject <文本> 主题包含
--recent <时间> 最近X时间内(例如 30m、2h、7d)
--since <日期> 指定日期之后(YYYY-MM-DD)
--before <日期> 指定日期之前(YYYY-MM-DD)
--limit 最大结果数(默认:20)
--mailbox <名称> 要搜索的邮箱(默认:INBOX)

mark-read / mark-unread

将邮件标记为已读或未读。

bash
node scripts/imap.js [--account <名称>] mark-read [uid2 uid3...]
node scripts/imap.js [--account <名称>] mark-unread [uid2 uid3...]

list-mailboxes

列出所有可用的邮箱/文件夹。

bash
node scripts/imap.js [--account <名称>] list-mailboxes

list-accounts

列出所有已配置的电子邮件账户。

bash
node scripts/imap.js list-accounts
node scripts/smtp.js list-accounts

显示账户名称、电子邮件地址、服务器地址和配置状态。

SMTP 命令(发送电子邮件)

send

通过SMTP发送电子邮件。

bash
node scripts/smtp.js [--account <名称>] send --to <邮箱> --subject <文本> [选项]

必需:

  • - --to <邮箱>:收件人(多个收件人用逗号分隔)
  • --subject <文本>:邮件主题,或 --subject-file <文件>

可选:

  • - --body <文本>:纯文本正文
  • --html:将正文作为HTML发送
  • --body-file <文件>:从文件读取正文
  • --html-file <文件>:从文件读取HTML
  • --cc <邮箱>:抄送收件人
  • --bcc <邮箱>:密送收件人
  • --attach <文件>:附件(多个用逗号分隔)
  • --from <邮箱>:覆盖默认发件人

示例:
bash

简单文本邮件


node scripts/smtp.js send --to recipient@example.com --subject Hello --body World

HTML邮件

node scripts/smtp.js send --to recipient@example.com --subject Newsletter --html --body

Welcome

带附件的邮件

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

多个收件人

标签

skill ai

通过对话安装

该技能支持在以下平台通过对话安装:

OpenClaw WorkBuddy QClaw Kimi Claude

方式一:安装 SkillHub 和技能

帮我安装 SkillHub 和 imap-smtp-email-1776086531 技能

方式二:设置 SkillHub 为优先技能安装源

设置 SkillHub 为我的优先技能安装源,然后帮我安装 imap-smtp-email-1776086531 技能

通过命令行安装

skillhub install imap-smtp-email-1776086531

下载

⬇ 下载 imap-smtp-email v0.0.10(免费)

文件大小: 16.15 KB | 发布时间: 2026-4-15 13:04

v0.0.10 最新 2026-4-15 13:04
Multi-account support and config improvements:

- Added support for multiple email accounts via prefixing in config (e.g., WORK_IMAP_HOST).
- Introduced a shared config file at `~/.config/imap-smtp-email/.env` that persists across updates.
- New setup process: configure and manage accounts using `setup.sh`.
- All commands can now use `--account ` to specify which account to use.
- New commands to list all configured accounts.
- Added file access whitelisting for security (ALLOWED_READ_DIRS/ALLOWED_WRITE_DIRS).

Archiver·手机版·闲社网·闲社论坛·羊毛社区· 多链控股集团有限公司 · 苏ICP备2025199260号-1

Powered by Discuz! X5.0   © 2024-2025 闲社网·线报更新论坛·羊毛分享社区·http://xianshe.com

p2p_official_large
返回顶部