本文介绍如何在 Linux 上安装和配置 Himalaya,一款功能强大的命令行邮件客户端,支持 Gmail、163、QQ、126 等主流邮箱。
什么是 Himalaya
Himalaya 是一款用 Rust 编写的命令行邮件客户端,具有以下特点:
- 无状态设计 - 不锁定终端,适合脚本集成
- 多账号支持 - 同时管理多个邮箱
- PGP 加密 - 支持邮件加密
- 多种后端 - 支持 IMAP、SMTP、Maildir、Notmuch
安装
方式一:官方安装脚本(推荐)
1 2 3 4 5
| curl -sSL https://raw.githubusercontent.com/pimalaya/himalaya/master/install.sh | sudo sh
curl -sSL https://raw.githubusercontent.com/pimalaya/himalaya/master/install.sh | sh -s -- --prefix ~/.local
|
方式二:手动下载安装
- 访问 Himalaya Releases 页面
- 下载对应系统的压缩包(如
himalaya.x86_64-linux.tgz)
- 解压并将
himalaya 二进制文件移动到 PATH 中的目录:
1 2 3 4 5 6 7 8 9 10
| tar -xzf himalaya.x86_64-linux.tgz
mkdir -p ~/.local/bin mv himalaya ~/.local/bin/
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc source ~/.bashrc
|
方式三:包管理器
1 2 3 4 5 6 7 8 9 10 11 12
| curl -sSL https://raw.githubusercontent.com/upciti/wakemeops/main/assets/install_repository | sudo bash sudo apt install himalaya
sudo pacman -S himalaya
brew install himalaya
cargo install himalaya
|
验证安装
配置
方式一:交互式向导(推荐)
交互式向导需要 TTY 环境运行。在终端中直接执行:
1 2 3 4 5
| himalaya
himalaya account configure <账号名>
|
向导会依次询问:
- 邮箱地址 - 如
yourname@163.com
- IMAP 主机 - 如
imap.163.com
- IMAP 端口 - 默认
993
- IMAP 用户名 - 通常与邮箱地址相同
- IMAP 密码 - 使用授权码而非登录密码
- SMTP 配置 - 类似 IMAP 的设置
- 默认账号 - 是否设为默认账号
方式二:手动配置
- 创建配置目录:
1
| mkdir -p ~/.config/himalaya
|
- 使用
secret-tool 存储密码(需要安装 libsecret-1-0-bin):
1 2 3 4 5 6 7 8 9 10
| sudo apt install libsecret-1-0-bin
secret-tool store --label="Himalaya IMAP" account <账号名> service himalaya-imap
secret-tool store --label="Himalaya SMTP" account <账号名> service himalaya-smtp
|
- 创建配置文件
~/.config/himalaya/config.toml:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| [accounts.<账号名>] default = true email = "your@email.com" display-name = "Your Name" downloads-dir = "~/Emails/Inbox"
backend.type = "imap" backend.host = "imap.163.com" backend.port = 993 backend.login = "your@email.com" backend.encryption.type = "tls" backend.auth.type = "password" backend.auth.cmd = "secret-tool lookup account <账号名> service himalaya-imap"
message.send.backend.type = "smtp" message.send.backend.host = "smtp.163.com" message.send.backend.port = 465 message.send.backend.login = "your@email.com" message.send.backend.encryption.type = "tls" message.send.backend.auth.type = "password" message.send.backend.auth.cmd = "secret-tool lookup account <账号名> service himalaya-smtp"
|
- 参考完整示例:
~/.config/himalaya/config.sample.toml
Gmail 配置
获取应用密码
- 登录 Google 账号:https://myaccount.google.com
- 进入 安全 → 开启 两步验证
- 应用密码 → 选择”邮件” → 生成 16 位密码
配置示例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| [accounts.gmail] email = "your.email@gmail.com"
backend.type = "imap" backend.host = "imap.gmail.com" backend.port = 993 backend.login = "your.email@gmail.com" backend.auth.type = "password" backend.auth.raw = "xxxx xxxx xxxx xxxx"
message.send.backend.type = "smtp" message.send.backend.host = "smtp.gmail.com" message.send.backend.port = 465 message.send.backend.login = "your.email@gmail.com" message.send.backend.auth.type = "password" message.send.backend.auth.cmd = "xxxx xxxx xxxx xxxx"
|
163 邮箱配置
获取授权码
- 登录 mail.163.com → 设置
- POP3/SMTP/IMAP → 开启 IMAP/SMTP 服务
- 客户端授权密码 → 获取授权码
配置示例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| [accounts.163] email = "yourname@163.com"
backend.type = "imap" backend.host = "imap.163.com" backend.port = 993 backend.login = "yourname@163.com" backend.auth.type = "password" backend.auth.raw = "XXXXXXXXXXXX"
message.send.backend.type = "smtp" message.send.backend.host = "smtp.163.com" message.send.backend.port = 465 message.send.backend.login = "yourname@163.com" message.send.backend.auth.type = "password" message.send.backend.auth.raw = "XXXXXXXXXXXX"
|
QQ 邮箱配置
获取授权码
- 登录 mail.qq.com → 设置 → 账户
- POP3/IMAP/SMTP 服务 → 开启
- 生成授权码(需短信验证)
配置示例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| [accounts.qq] email = "123456789@qq.com"
backend.type = "imap" backend.host = "imap.qq.com" backend.port = 993 backend.login = "123456789@qq.com" backend.auth.type = "password" backend.auth.raw = "XXXXXXXXXXXX"
message.send.backend.type = "smtp" message.send.backend.host = "smtp.qq.com" message.send.backend.port = 465 message.send.backend.login = "123456789@qq.com" message.send.backend.auth.type = "password" message.send.backend.auth.raw = "XXXXXXXXXXXX"
|
126 邮箱配置
获取授权码
- 登录 mail.126.com → 设置 → POP3/SMTP/IMAP
- 开启 IMAP/SMTP 服务
- 客户端授权密码 → 获取授权码
配置示例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| [accounts.126] email = "yourname@126.com"
backend.type = "imap" backend.host = "imap.126.com" backend.port = 993 backend.login = "yourname@126.com" backend.auth.type = "password" backend.auth.raw = "XXXXXXXXXXXX"
message.send.backend.type = "smtp" message.send.backend.host = "smtp.126.com" message.send.backend.port = 465 message.send.backend.login = "yourname@126.com" message.send.backend.auth.type = "password" message.send.backend.auth.raw = "XXXXXXXXXXXX"
|
多账号配置
可以同时配置多个邮箱账号:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| default = "qq"
[accounts.gmail] display_name = "Gmail" email = "xxx@gmail.com"
[accounts.qq] display_name = "QQ Mail" email = "xxx@qq.com"
[accounts.163] display_name = "163 Mail" email = "xxx@163.com"
|
基本使用
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| himalaya --help
himalaya account list
himalaya account set default
himalaya list
himalaya read <邮件ID>
himalaya search "subject:报告"
himalaya folder list
|
发送邮件
方式一:交互式编辑
方式二:使用模板
创建邮件模板 ~/emails/report.mime:
1 2 3 4 5 6
| To: recipient@example.com Subject: 周报 From: your.email@163.com Content-Type: text/plain; charset=utf-8
这是一封测试邮件。
|
发送:
1
| himalaya send ~/emails/report.mime
|
指定账号发送
1
| himalaya send ~/emails/report.mime --account gmail
|
显示优化配置
可以通过配置文件自定义邮件列表的显示效果。
基础配置示例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| [accounts.你的账号] email = "your@email.com"
envelope.list.page-size = 15 envelope.list.datetime-fmt = "%m-%d %H:%M" envelope.list.datetime-local-tz = true
envelope.list.table.unseen-char = "○" envelope.list.table.replied-char = "↩" envelope.list.table.flagged-char = "★" envelope.list.table.attachment-char = "📎"
envelope.list.table.subject-color = "cyan" envelope.list.table.sender-color = "green" envelope.list.table.date-color = "yellow"
|
配置项说明
| 配置项 |
说明 |
示例值 |
envelope.list.page-size |
每页显示邮件数量 |
15 |
envelope.list.datetime-fmt |
日期格式 |
"%m-%d %H:%M" |
envelope.list.datetime-local-tz |
使用本地时区 |
true |
envelope.list.table.unseen-char |
未读标志 |
"○" |
envelope.list.table.replied-char |
已回复标志 |
"↩" |
envelope.list.table.flagged-char |
星标标志 |
"★" |
envelope.list.table.attachment-char |
附件标志 |
"📎" |
envelope.list.table.subject-color |
主题列颜色 |
"cyan" |
envelope.list.table.sender-color |
发件人列颜色 |
"green" |
envelope.list.table.date-color |
日期列颜色 |
"yellow" |
支持的颜色
支持的颜色值:black、red、green、yellow、blue、magenta、cyan、white
日期格式
使用 chrono 格式字符串,常用格式:
| 格式 |
示例 |
说明 |
%Y-%m-%d |
2026-03-20 |
年-月-日 |
%m-%d |
03-20 |
月-日 |
%m-%d %H:%M |
03-20 14:30 |
月-日 时:分 |
%Y-%m-%d %H:%M |
2026-03-20 14:30 |
完整日期时间 |
%H:%M |
14:30 |
时:分 |
邮件通知配置
使用 Mailnag 实现多账户邮件通知。
安装 Mailnag
1
| sudo apt install mailnag dunst
|
配置文件
创建 ~/.config/mailnag/mailnag.cfg:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
| [core] poll_interval = 30 imap_idle_timeout = 60 enabled_plugins = libnotifyplugin
[libnotifyplugin] notification_mode = 3 max_visible_mails = 10
[account1] enabled = 1 type = imap name = 163邮箱 user = your@163.com password = server = imap.163.com port = 993 ssl = 1
[account2] enabled = 1 type = imap name = Gmail user = your@gmail.com password = server = imap.gmail.com port = 993 ssl = 1
|
启动服务
1 2 3 4 5
| mailnag &
cp /usr/share/applications/mailnag.desktop ~/.config/autostart/
|
使用 Mailnag GUI 配置账户
打开 GUI 后在 Accounts 界面添加账户,设置密码即可。
常见问题
Q1: 连接失败?
检查:
- 授权码是否正确
- IMAP/SMTP 服务是否开启
- 网络连接是否正常
Q2: Gmail 登录被阻止?
需要使用应用密码而非账户密码,并确保开启两步验证。
Q3: 如何查看详细日志?
Q4: 163/126 邮箱提示 “Unsafe Login”?
这是 163/126 邮箱的安全限制,需要客户端发送 IMAP ID 命令。
问题已修复!
官方已接受修复方案,新版本会自动发送 IMAP ID 命令:
更新到最新版本后即可正常使用 163/126 邮箱。
临时解决方法: 访问安全设置页面验证白名单:
1
| http://config.mail.163.com/settings/imap/index.jsp?uid=你的邮箱
|
总结
Himalaya 是一款轻量且强大的终端邮件客户端:
- ✅ 支持 Gmail、163、QQ、126 等主流邮箱
- ✅ 多账号管理
- ✅ 适合脚本集成
- ✅ 跨平台支持 Linux/macOS/Windows
参考文章: Himalaya 官网