Linux 终端邮件客户端 Himalaya 配置指南

Linux 终端邮件客户端 Himalaya 配置指南

本文介绍如何在 Linux 上安装和配置 Himalaya,一款功能强大的命令行邮件客户端,支持 Gmail、163、QQ、126 等主流邮箱。

什么是 Himalaya

Himalaya 是一款用 Rust 编写的命令行邮件客户端,具有以下特点:

  • 无状态设计 - 不锁定终端,适合脚本集成
  • 多账号支持 - 同时管理多个邮箱
  • PGP 加密 - 支持邮件加密
  • 多种后端 - 支持 IMAP、SMTP、Maildir、Notmuch

安装

方式一:官方安装脚本(推荐)

1
2
3
4
5
# 需要 sudo 权限,系统级安装
curl -sSL https://raw.githubusercontent.com/pimalaya/himalaya/master/install.sh | sudo sh

# 或者用户级安装(不需要 sudo)
curl -sSL https://raw.githubusercontent.com/pimalaya/himalaya/master/install.sh | sh -s -- --prefix ~/.local

方式二:手动下载安装

  1. 访问 Himalaya Releases 页面
  2. 下载对应系统的压缩包(如 himalaya.x86_64-linux.tgz
  3. 解压并将 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/

# 添加到 PATH
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc

方式三:包管理器

1
2
3
4
5
6
7
8
9
10
11
12
# WakeMeOps (Ubuntu/Debian)
curl -sSL https://raw.githubusercontent.com/upciti/wakemeops/main/assets/install_repository | sudo bash
sudo apt install himalaya

# Arch Linux
sudo pacman -S himalaya

# macOS
brew install himalaya

# Rust
cargo install himalaya

验证安装

1
himalaya --version

配置

方式一:交互式向导(推荐)

交互式向导需要 TTY 环境运行。在终端中直接执行:

1
2
3
4
5
# 如果没有配置文件,向导会提示创建
himalaya

# 或者为指定账号配置
himalaya account configure <账号名>

向导会依次询问:

  1. 邮箱地址 - 如 yourname@163.com
  2. IMAP 主机 - 如 imap.163.com
  3. IMAP 端口 - 默认 993
  4. IMAP 用户名 - 通常与邮箱地址相同
  5. IMAP 密码 - 使用授权码而非登录密码
  6. SMTP 配置 - 类似 IMAP 的设置
  7. 默认账号 - 是否设为默认账号

方式二:手动配置

  1. 创建配置目录:
1
mkdir -p ~/.config/himalaya
  1. 使用 secret-tool 存储密码(需要安装 libsecret-1-0-bin):
1
2
3
4
5
6
7
8
9
10
# 安装 secret-tool
sudo apt install libsecret-1-0-bin

# 存储 IMAP 密码
secret-tool store --label="Himalaya IMAP" account <账号名> service himalaya-imap
# 输入你的授权码

# 存储 SMTP 密码
secret-tool store --label="Himalaya SMTP" account <账号名> service himalaya-smtp
# 输入你的授权码
  1. 创建配置文件 ~/.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" # 或 imap.gmail.com, imap.qq.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" # 或 smtp.gmail.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"
  1. 参考完整示例:~/.config/himalaya/config.sample.toml

Gmail 配置

获取应用密码

  1. 登录 Google 账号:https://myaccount.google.com
  2. 进入 安全 → 开启 两步验证
  3. 应用密码 → 选择”邮件” → 生成 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 邮箱配置

获取授权码

  1. 登录 mail.163.com → 设置
  2. POP3/SMTP/IMAP → 开启 IMAP/SMTP 服务
  3. 客户端授权密码 → 获取授权码

配置示例

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 邮箱配置

获取授权码

  1. 登录 mail.qq.com → 设置账户
  2. POP3/IMAP/SMTP 服务 → 开启
  3. 生成授权码(需短信验证)

配置示例

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 邮箱配置

获取授权码

  1. 登录 mail.126.com → 设置POP3/SMTP/IMAP
  2. 开启 IMAP/SMTP 服务
  3. 客户端授权密码 → 获取授权码

配置示例

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"
# ... Gmail 配置

[accounts.qq]
display_name = "QQ Mail"
email = "xxx@qq.com"
# ... QQ 配置

[accounts.163]
display_name = "163 Mail"
email = "xxx@163.com"
# ... 163 配置

基本使用

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

发送邮件

方式一:交互式编辑

1
himalaya compose

方式二:使用模板

创建邮件模板 ~/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"

支持的颜色

支持的颜色值:blackredgreenyellowbluemagentacyanwhite

日期格式

使用 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 配置账户

1
mailnag-config

打开 GUI 后在 Accounts 界面添加账户,设置密码即可。

常见问题

Q1: 连接失败?

检查:

  • 授权码是否正确
  • IMAP/SMTP 服务是否开启
  • 网络连接是否正常

Q2: Gmail 登录被阻止?

需要使用应用密码而非账户密码,并确保开启两步验证。

Q3: 如何查看详细日志?

1
himalaya --verbose list

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 官网

Linux 终端邮件客户端 Himalaya 配置指南

https://gh503.github.io/2026/03/19/066abdf0ab54/

Author

gh503

Posted on

2026-03-20

Updated on

2026-03-21

Licensed under