一键导入
himalaya
通过 IMAP/SMTP 管理邮件的命令行工具。使用 `himalaya` 可以在终端中列出、阅读、撰写、回复、转发、搜索和整理邮件。支持多账户和使用 MML(MIME Meta Language)撰写邮件。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
通过 IMAP/SMTP 管理邮件的命令行工具。使用 `himalaya` 可以在终端中列出、阅读、撰写、回复、转发、搜索和整理邮件。支持多账户和使用 MML(MIME Meta Language)撰写邮件。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Use this skill only for scheduled or recurring tasks. Manage jobs with qwenpaw cron list/create/get/state/update/pause/resume/delete/run, and always pass --agent-id explicitly.
仅在需要未来定时执行或周期执行任务时,使用本 skill。使用 qwenpaw cron list/create/get/state/update/pause/resume/delete/run 管理任务,并始终显式传入 --agent-id。
Use this skill when sedimenting a session into a reusable workspace skill. Triggers when the user wants to turn the current conversation, workflow, or troubleshooting path into a SKILL.md. Phrases like 'turn this into a skill', 'remember how I did X', 'save this workflow', 'make a skill from this', and any /make-skill <focus> invocation should fire this skill.
用于把当前会话沉淀为可复用的 workspace skill。当用户希望把当前对话、工作流或排错路径写成 SKILL.md 时触发。触发表达包括「把这个变成 skill」「记住我是怎么做 X 的」「保存这个工作流」「make a skill from this」以及任何 /make-skill <focus> 调用。
Answer user questions about QwenPaw installation and configuration: first locate and read local documentation, then distill the answer; if local information is insufficient, fall back to the official website documentation.
回答用户关于 QwenPaw 安装与配置的问题:优先定位并阅读本地文档,再提炼答案;若本地信息不足,兜底访问官网文档。
| name | himalaya |
| description | 通过 IMAP/SMTP 管理邮件的命令行工具。使用 `himalaya` 可以在终端中列出、阅读、撰写、回复、转发、搜索和整理邮件。支持多账户和使用 MML(MIME Meta Language)撰写邮件。 |
| homepage | https://github.com/pimalaya/himalaya |
| metadata | {"builtin_skill_version":"1.3","qwenpaw":{"emoji":"📧","requires":{"bins":["himalaya"]},"install":[{"id":"brew","kind":"brew","formula":"himalaya","bins":["himalaya"],"label":"Install Himalaya (brew)"}]}} |
Himalaya 是一个命令行邮件客户端,可以通过 IMAP、SMTP、Notmuch 或 Sendmail 后端在终端中管理邮件。
references/configuration.md(配置文件设置 + IMAP/SMTP 认证)himalaya 二进制文件必须已在 PATH 中。通过 himalaya --version 检查。
~/.config/himalaya/config.toml运行交互式向导来设置账户(将 default 替换为你想要的名称,例如 gmail、work):
himalaya account configure default
或手动创建 ~/.config/himalaya/config.toml:
[accounts.personal]
email = "you@example.com"
display-name = "Your Name"
default = true
backend.type = "imap"
backend.host = "imap.example.com"
backend.port = 993
backend.encryption.type = "tls"
backend.login = "you@example.com"
backend.auth.type = "password"
backend.auth.cmd = "pass show email/imap" # 或使用 keyring
message.send.backend.type = "smtp"
message.send.backend.host = "smtp.example.com"
message.send.backend.port = 587
message.send.backend.encryption.type = "start-tls"
message.send.backend.login = "you@example.com"
message.send.backend.auth.type = "password"
message.send.backend.auth.cmd = "pass show email/smtp"
如果你使用的是 163 邮箱账户,请在配置文件中添加 backend.extensions.id.send-after-auth = true 以确保正常运作。
himalaya folder list
列出收件箱(默认)中的邮件:
himalaya envelope list
列出指定文件夹中的邮件:
himalaya envelope list --folder "Sent"
分页列出:
himalaya envelope list --page 1 --page-size 20
如果遇到错误,请尝试:
himalaya envelope list -f INBOX -s 1
himalaya envelope list from john@example.com subject meeting
通过 ID 阅读邮件(显示纯文本):
himalaya message read 42
导出原始 MIME:
himalaya message export 42 --full
推荐方式: 使用 template write | template send 管道来发送简单邮件。
发送一封简单邮件:
export EDITOR=cat
himalaya template write \
-H "To: recipient@example.com" \
-H "Subject: Email Subject" \
"Email body content" | himalaya template send
发送带多个头字段的邮件:
export EDITOR=cat
himalaya template write \
-H "To: recipient@example.com" \
-H "Cc: cc@example.com" \
-H "Subject: Email Subject" \
"Email body content" | himalaya template send
发送带附件的邮件(使用 Python):
对于带附件的邮件,请使用 Python 的 smtplib 和 email.mime 模块:
import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.mime.base import MIMEBase
from email import encoders
msg = MIMEMultipart()
msg['From'] = 'sender@163.com'
msg['To'] = 'recipient@example.com'
msg['Subject'] = 'Email with attachment'
msg.attach(MIMEText('Email body', 'plain'))
# 添加附件
with open('/path/to/file.pdf', 'rb') as f:
part = MIMEBase('application', 'octet-stream')
part.set_payload(f.read())
encoders.encode_base64(part)
part.add_header('Content-Disposition', 'attachment; filename="file.pdf"')
msg.attach(part)
server = smtplib.SMTP_SSL('smtp.163.com', 465)
server.login('sender@163.com', 'password')
server.send_message(msg)
server.quit()
注意:MML 附件限制: 使用 MML 格式的 template send 命令在处理 multipart/附件时可能会失败,报错 "cannot parse MML message: empty body"。这是 himalaya v1.1.0 的已知问题。发送附件请使用 Python 方式。
注意:避免在自动化中使用 message write: himalaya message write 命令需要交互式 TUI 选择(Edit/Discard/Quit),在非交互式环境中会挂起。
注意:message send 的限制: 直接使用 himalaya message send <raw_email> 可能会因头字段解析问题而失败,报错 "cannot send message without a recipient"。请改用 template send。
配置要求: 确保在 config.toml 中设置了 message.send.save-to-folder,以避免 "Folder not exist" 错误:
[accounts.163]
# ... 其他配置 ...
message.send.save-to-folder = "Sent"
对于 163 邮箱账户,如果已发送文件夹不存在,请先创建:
himalaya folder create Sent
移动到文件夹:
himalaya message move 42 "Archive"
复制到文件夹:
himalaya message copy 42 "Important"
himalaya message delete 42
添加标记:
himalaya flag add 42 --flag seen
移除标记:
himalaya flag remove 42 --flag seen
列出账户:
himalaya account list
使用指定账户:
himalaya --account work envelope list
保存邮件中的附件:
himalaya attachment download 42
保存到指定目录:
himalaya attachment download 42 --dir ~/Downloads
大多数命令支持 --output 来获取结构化输出:
himalaya envelope list --output json
himalaya envelope list --output plain
启用调试日志:
RUST_LOG=debug himalaya envelope list
完整跟踪和回溯:
RUST_LOG=trace RUST_BACKTRACE=1 himalaya envelope list
himalaya --help 或 himalaya <command> --help 查看详细用法。references/message-composition.md)。pass、系统 keyring 或输出密码的命令来安全存储密码。template write | template send 管道,并设置 export EDITOR=cat。backend.extensions.id.send-after-auth = true 和 message.send.save-to-folder = "Sent"。