在 Distrobox 容器中安装 Mailspring——Linux 上最佳免费邮件应用!

发布: (2025年12月29日 GMT+8 11:48)
7 min read
原文: Dev.to

Source: Dev.to

Mailspring – Linux 上一款出色的免费开源邮件客户端

根据我的使用经验,它实际上是 Linux 上最好的免费、开源且被低估的邮件应用。查看其 GitHub 仓库

  • 界面锐利且现代。
  • 内置了优秀的邮件语言翻译器。
  • 能够遵循系统的浅色/深色主题(通过插件系统实现)。
  • 多个邮件提供商开箱即用,并支持单点登录。
  • 可以使用 --background 选项在后台运行。
  • 提供 Pro 订阅以获取更多功能——详见 此处

但如果你只用一个邮箱,邮件客户端可能并不重要 😂

为什么不选 Geary?

Geary 是许多人的首选邮件客户端。配合 adw‑gtk3 主题和 Legacy (GTK3) Theme Scheme Auto Switcher GNOME 扩展,它能很好地融入 GNOME 以及其他 Adwaita 应用,并且还能与 GNOME 在线账户集成。

不幸的是,它的 Flatpak 版本存在一个 不可调试 的崩溃问题(Geary issue #1679),导致我无法使用。由于我使用的是 Fedora Silverblue,我不想在容器中额外叠加类似邮件客户端的东西,也无法让它在容器内遵循系统的浅色/深色主题。因此,我卸载了 Geary,从此不再回头。

为什么不选 Evolution?

我不想使用界面仍停留在 1990 年代的邮件客户端。

为什么不选 Thunderbird?

我希望我的邮件客户端只专注于邮件本身,而不是同时兼具日历等其他功能。

目录

  1. 安装 Distrobox 和 Podman
  2. 配置 Distrobox 使用 Podman
  3. 创建容器
  4. 启用 x86‑64‑v3 包
  5. 安装所需软件包
  6. 可选:在主机上为字体和 Fontconfig 目录创建符号链接
  7. 安装 Mailspring
  8. 将 Mailspring 导出到主机
  9. 让 Mailspring 跟随系统的浅色/深色主题
  10. 让 Mailspring 在启动时及关闭后在后台运行
  11. 自动更新容器——零维护!

安装 Distrobox 和 Podman

命令会根据你的包管理器而有所不同。以下是基于 Arch 的发行版的示例:

sudo pacman -S distrobox podman

在 Fedora Silverblue 上,Podman 默认已安装;你只需为 Distrobox 添加层:

sudo rpm-ostree install distrobox

注意: 安装完层叠包后请重启。

配置 Distrobox 使用 Podman

echo 'container_manager="podman"' > ~/.config/distrobox/distrobox.conf

创建容器

我使用 openSUSE 容器镜像,因为:

  • 它提供 x86‑64‑v3 软件包。
  • 它采用滚动发布模式,这样我就不必手动升级容器。
distrobox-create \
  -i registry.opensuse.org/opensuse/distrobox:latest \
  -n email-dbx \
  -H ~/distrobox/email-dbx \
  --volume /run/dbus/system_bus_socket:/run/dbus/system_bus_socket

如果你有 NVIDIA GPU,请添加 --nvidia。更多信息请参见 此处

启用 x86‑64‑v3 包

进入容器并首先更新所有软件包:

sudo zypper dup

然后启用 x86‑64‑v3 包:

sudo zypper install patterns-glibc-hwcaps-x86_64_v3

安装所需软件包

sudo zypper install \
  zenity \
  mozilla-nspr \
  mozilla-nss \
  libcanberra-gtk3-module \
  libwebkitgtk-6_0-4

可选:在主机上为字体和 Fontconfig 目录创建符号链接

这对需要为特定语言更改字体的多语言用户非常有用。

在容器内部创建所需目录

mkdir -p ~/.local/share
mkdir -p ~/.config/fontconfig

与主机建立符号链接

ln -s /var/home/archerallstars/.local/share/fonts ~/.local/share/
ln -s /var/home/archerallstars/.config/fontconfig/conf.d ~/.config/fontconfig/

/var/home/archerallstars 替换为您实际的主目录路径。

安装 Mailspring

  1. 前往 官方下载页面 并下载 .rpm 包。
  2. 在容器中,安装下载的文件:
sudo zypper install ./mailspring-1.16.0-0.1.x86_64.rpm

当提示软件包签名时,直接忽略(按 i)。

导出 Mailspring 到宿主机

distrobox-export -a mailspring

现在您应该能在宿主机的应用抽屉中看到 Mailspring 的图标。使用 exit 退出容器。

让 Mailspring 跟随系统的浅色/深色主题

感谢 Andrew Minion 以及他的 Mailspring Automatic Light‑Dark Mode 脚本。

安装插件

  1. 克隆仓库(或下载 zip)。

    git clone https://github.com/andrewminion/mailspring-automatic-light-dark-mode.git
  2. 将整个目录复制到容器的 Mailspring 插件文件夹中:

    cp -r mailspring-automatic-light-dark-mode ~/distrobox/email-dbx/.config/Mailspring/packages/
  3. 在 Mailspring 中,打开 Developer → Install a Plugin… 并选择已复制的目录。

插件安装后立即生效——无需重启。当你切换系统的浅色/深色模式时,它会自动切换 Mailspring 的主题。

隐藏古老的菜单栏(可选)

安装插件后,你可以隐藏旧的菜单栏。使用 Alt 键切换菜单栏的显示。

隐藏古老的菜单栏

让 Mailspring 在启动时后台运行并在关闭时保持运行

方法 1 – 桌面条目(简单)

创建一个桌面条目,以 --background 标志启动 Mailspring,并将其放置在 ~/.config/autostart/ 中:

[Desktop Entry]
Name=Mailspring (Background)
Exec=mailspring --background
Type=Application
X-GNOME-Autostart-enabled=true

方法 2 – systemd 用户服务(稳健)

  1. 创建服务文件

    nano ~/.config/systemd/user/mailspring.service
    [Unit]
    Description=Mailspring
    RequiresMountsFor=/run/user/1000/containers
    
    [Service]
    Type=exec
    ExecStart=/usr/bin/distrobox-enter -n email-dbx -- mailspring --background
    Restart=always
    RestartSec=15
    TimeoutStopSec=30
  2. 创建计时器以在登录后启动服务

    nano ~/.config/systemd/user/mailspring.timer
    [Unit]
    Description=Start Mailspring service with some delay.
    
    [Timer]
    OnStartupSec=40
    RandomizedDelaySec=10
    Persistent=true
    
    [Install]
    WantedBy=timers.target
  3. 启用计时器

    systemctl --user daemon-reload && systemctl --user enable mailspring.timer

自动更新容器 – 零维护!

简单单行命令(快速解决方案)

distrobox-enter -n email-dbx -- sudo zypper dup -y

您可以在主机上使用 systemd 定时器或 cron 任务来调度上述命令。

完整的 systemd 服务与定时器(为所有容器自动升级)

  1. 服务文件

    nano ~/.config/systemd/user/dbx-upgrade.service
    [Unit]
    Description=Upgrade all Distrobox containers
    RequiresMountsFor=/run/user/1000/containers
    StartLimitBurst=3
    StartLimitIntervalSec=600
    
    [Service]
    Type=exec
    ExecStart=sh -c "distrobox-upgrade --all"
    Restart=on-failure
    RestartSec=60
  2. 定时器文件

    nano ~/.config/systemd/user/dbx-upgrade.timer
    [Unit]
    Description=Start Distrobox containers upgrade service with some delay.
    
    [Timer]
    OnStartupSec=45
    RandomizedDelaySec=15
    Persistent=true
    
    [Install]
    WantedBy=timers.target
  3. 启用定时器

    systemctl --user daemon-reload && systemctl --user enable dbx-upgrade.timer

此设置将在系统上自动升级 所有 无根 Distrobox 容器,无需人工干预。


致谢

封面照片Utsav SresthaUnsplash 上提供。

Back to Blog

相关文章

阅读更多 »

LearnixOS

请提供您希望翻译的具体摘录或摘要文本,我才能为您进行翻译。