SquirrelMail 1.4.22 介绍与选型指南

SquirrelMail 1.4.22(2011 年最后稳定版)介绍与选型指南:官网/SourceForge/GitHub 现状实查、PHP 8.1 不兼容与 PHP 7.4 可用的双运行时实测、与 Roundcube 等同类 Webmail 的量化选型对比。

SquirrelMailSquirrelMail邮件服务2026/10/27

SquirrelMail 1.4.22 介绍与选型指南

目标:全面介绍经典开源 Webmail 客户端 SquirrelMail 的定位、架构、功能与运行要求,给出与 Roundcube 等同类 Webmail 的量化选型对比;本篇所有版本号、发布日期、官方渠道状态均来自 2026-10-27 当日联网实查,PHP 兼容性结论来自 Ubuntu 22.04 真实环境实测。

一、环境信息

本篇为认知与选型篇,信息来源与查询环境如下:

  • 信息实查日期:2026-10-27(所有外部链接与版本信息均为当日访问核实)
  • PHP 兼容性实测环境:Ubuntu 22.04(jammy)、x86_64 架构,Apache/2.4.52,两套 PHP 运行时——
    • PHP 8.1.2-1ubuntu2.28(Ubuntu 22.04 官方仓库默认 PHP)
    • PHP 7.4.33(ppa:ondrej/php 仓库,1:7.4.33-31+ubuntu22.04.1+deb.sury.org+1)
  • 实测对象软件:SquirrelMail squirrelmail-webmail-1.4.22(官方 SourceForge 发布包)
  • 官方发布包校验值(实测 sha256sum 输出):
sha256sum squirrelmail-webmail-1.4.22.tar.gz

实测输出:

286453c7aac6cfd0b78509a597be2f15012f0c0c4abd44328ac4c55fb2d0b847  squirrelmail-webmail-1.4.22.tar.gz

💡 说明:本篇正文中凡是「实测」字样的结论,均对应上述环境中真实执行的结果;完整安装与验证过程沉淀在《Ubuntu 22.04 安装 SquirrelMail 1.4.22 指南》篇。

二、软件概述

SquirrelMail(松鼠邮)是一款用 PHP 编写的经典开源 Webmail 客户端:它本身不收发邮件,而是连接到已有的 IMAP 服务器(如 Dovecot、Courier)取信、通过 SMTP 服务器(如 Postfix、Sendmail)发信,让用户通过浏览器完成邮件的阅读、撰写、组织与通讯录管理。项目由 Luke Ehresmann 于 1999 年发起(初期名 VMail,次年更名 SquirrelMail),2000 年代一度成为主流 Webmail 方案,被 cPanel 等虚拟主机面板广泛内置,也出现在大量 Linux 发行版的软件仓库中。

**⚠️ 一票否决级维护状态警示(2026-10-27 实查结论):SquirrelMail 项目实质已停滞多年,选型需极其谨慎。**关键事实如下:

实查项实查结果(2026-10-27)来源
最后稳定版1.4.22,2011-07-12 发布(1.4.22/README 于 2011-07-15 补传)SourceForge RSS 发布列表,最新 100 条发布记录的最新时间戳即 2011-07-15
官网状态https://www.squirrelmail.org/ 返回 HTTP 200,但页面仍是 2011 年代 PHP 站点,响应极慢(实测抓取首页 8 KB 用时超过 20 秒,抓取新闻页 55 秒仅返回 1.3 KB)实测 curl 访问
官方 GitHub 组织https://github.com/orgs/squirrelmail/repositories 返回 404,无官方维护中的 GitHub 仓库实测 HTTP 访问
发布渠道唯一有效渠道为 SourceForge(sourceforge.net/projects/squirrelmail),stable/imap_proxy/locales 三个目录SourceForge 文件列表
许可证GNU General Public License(GPL)SourceForge 项目页
技术栈年代代码面向 PHP 4/5 编写(1.4.22 发布于 2011 年,早于 PHP 7.0)发布包 README 与代码实测

一句话结论:1.4.22 是 SquirrelMail 十五年来的最后稳定版,项目无活跃维护、无官方 Git 仓库、官网近乎不可用;除非维护存量系统,新项目不建议选用。新选型请直接考虑 Roundcube、SnappyMail 等活跃后继者(对比见本章第七节)。

三、核心架构

SquirrelMail 采用无数据库的经典三层直连架构,结构简单到"解压即可运行",这也是它在 2000 年代被海量虚拟主机采用的原因。其架构与请求流程如下:

浏览器(纯 HTML 4.0 / 最小化 JS)
      │ HTTP
      ▼
Apache(mod_php 加载 PHP 页面)
      │ IMAP(默认 TCP 143)                │ SMTP(默认 TCP 25)
      ▼                                    ▼
IMAP 服务器(Dovecot/Courier 等)      SMTP 服务器(Postfix/Sendmail 等)
      │                                    │
      ▼                                    ▼
用户邮箱(mbox/Maildir)              收件方邮件系统

核心组件分工:

  • PHP 页面层:src/ 目录承载全部入口页面(login.php 登录、right_main.php 收件箱、compose.php 撰写等),functions/ 目录是函数库(IMAP/SMTP 协议封装、字符串与页面渲染工具),include/ 提供运行时引导。全部页面按会话状态驱动,无需数据库。
  • 会话与用户数据层:登录后以 PHP 会话保持状态;用户偏好(显示名、主题、排序方式等)与通讯录、个人文件夹配置持久化在 $data_dir 指定目录下的与用户同名的 .pref/.abook 平文本文件中;撰写中的草稿附件缓存于 $attachment_dir。
  • 插件体系:plugins/ 目录按插件名存放独立目录(如 squirrelspell 拼写检查、mail_fetch 远程取信、calendar 日历),在 config/config.php 的 $plugins 数组中登记即启用,这是 SquirrelMail 最主要的扩展机制。
  • 配置系统:单文件 config/config.php 承载全部配置项;官方提供交互式 Perl 向导 config/conf.pl 读写该文件(交互向导形态的实测说明见《SquirrelMail 1.4.22 常用 CLI 命令与工具详解》篇)。

💡 技术拓展:Webmail 的后端对接协议并不只有一种形态。常见形态对比——

形态代表软件特点适用场景
纯 IMAP+SMTP 客户端SquirrelMail、Roundcube、SnappyMail不管理邮件存储,直接代理用户操作既有 IMAP 邮箱已有邮件服务器的组织
全栈邮件套件Mailcow、Mailu、iRedMail集成 MTA+IMAP+Webmail+反垃圾,一键部署从零自建完整邮件域
群件集成SOGo、ZimbraWebmail 与日历/联系人/协作一体企业协作场景

SquirrelMail 属第一类"纯客户端"形态,本平台对同类形态的 Roundcube 已有完整实测文档(见第七节对比)。

四、功能特性

以下特性清单来自官方发布包内 README 与实际页面验证(1.4.22 版):

  • 纯 PHP 实现的 IMAP 与 SMTP 客户端:不依赖任何 PHP IMAP/SMTP 扩展(无需 php-imap),协议栈在 functions/imap_*.php、class/deliver/ 内自实现,兼容 IMAP4rev1 服务器。
  • 纯 HTML 4.0 渲染:官方 README 明确 "renders all pages in pure HTML 4.0 for maximum compatibility across browsers",不依赖任何 JavaScript 框架,古董浏览器也能使用;代价是界面交互停留在 2000 年代水平(框架页布局、全页刷新)。
  • 基本邮件能力:多文件夹/嵌套文件夹管理、搜索、排序、分页阅读、内联 MIME 附件查看、HTML/纯文本双格式撰写(compose_newwin 弹窗撰写)。
  • 地址簿:个人地址簿(data/<user>.abook 平文件)+ 全局地址簿(LDAP/SQL 后端可选)。
  • 拼写检查:内置 squirrelspell 插件。
  • 多语言:locale/ 目录自带数十种语言包,含简繁中文(需下载 locales 扩展包)。
  • 主题与模板:themes/ 目录内置数十套配色主题。
  • 插件生态:SourceForge 官方插件库在 2000 年代积累了两百余个插件(fetchmail 远程取信、日历、笔记、邮件过滤、垃圾报告等),但随项目停滞,多数插件仅适配 PHP 5。

⚠️ 注意:上述能力在 PHP 7.4 及以下运行时下实测可用;在 PHP 8.x 下软件整体不可运行(原因与实测证据见本章第五节),因此"功能特性"的适用前提是旧版 PHP 运行时。

五、运行要求与 PHP 兼容性实测

SquirrelMail 1.4.22 对运行时的要求是选型时必须核实的关键项。官方 README 声明的要求为:PHP 4.1.0 及以上(历史口径)、可用的 Web 服务器(Apache + mod_php 为典型)、一个 IMAP 服务器、一个 SMTP 服务器。2026 年的现实问题是 PHP 版本兼容性,本节给出两套运行时的实测结论。

5.1 PHP 8.1(Ubuntu 22.04 官方源)实测:不可运行

在 Ubuntu 22.04 + Apache 2.4.52 + PHP 8.1.2 环境下,解压 1.4.22 发布包、配置 config/config.php 后访问登录页,实测结果为 HTTP 500、页面空白、软件完全不可运行,Apache 错误日志真实回显:

[php:error] [pid 11710] [client 127.0.0.1:44854] PHP Fatal error:
Array and string offset access syntax with curly braces is no longer supported
in /usr/share/squirrelmail-webmail-1.4.22/functions/strings.php on line 634

这是 PHP 8.0 移除"花括号数组/字符串偏移访问语法"($str{0})导致的致命错误;SquirrelMail 1.4.22 的 functions/strings.php 第 634 行及大量其他文件仍使用该语法,同时其代码还依赖 PHP 8 中已彻底移除的 create_function() 等 API,因此 PHP 8.x 下不存在"改一两个文件就能跑"的可能性,属于结构性不兼容。

5.2 PHP 7.4(ppa:ondrej/php)实测:可运行

同一台 Ubuntu 22.04 服务器上,通过 ppa:ondrej/php 安装 PHP 7.4.33 并将 Apache 模块从 php8.1 切换为 php7.4 后,实测结果:

php7.4 -v | head -1

实测输出:

PHP 7.4.33 (cli) (built: Oct 21 2026 14:22:13) ( NTS )

访问登录页返回 HTTP 200,页面标题与版本信息真实回显(节选):

<title>SquirrelMail - Login</title>
SquirrelMail version 1.4.22

以测试账号完成登录后,收件箱页面返回 HTTP 200,页面标题真实回显:

<title>SquirrelMail 1.4.22</title>

左侧文件夹树正常渲染出 INBOX、Drafts、Sent、Trash 四个标准文件夹,Postfix 投递的测试邮件主题正常出现在收件箱列表中。结论:1.4.22 在 PHP 7.4 下功能完整可用;PHP 7.4 已于 2022-11 结束官方支持,运行环境应放在内网受控范围并配合严格访问控制。

💡 技术拓展:为什么会出现"旧 PHP 依赖"?PHP 各代运行时对旧语法的兼容策略对比——

运行时对 PHP 4/5 时代语法态度典型破坏点
PHP 5.x完全兼容—
PHP 7.x移除 ereg 系函数、扩展弃用告警,多数老应用可跑ereg()、split() 移除
PHP 8.0+移除 create_function()、花括号偏移、默认错误等级提高大量致命错误
PHP 8.2+动态属性弃用更多告警/异常

SquirrelMail 1.4.22 恰好卡在 PHP 8.0 的两个移除点上,本文实测环境实际采用 PHP 7.4(ppa:ondrej/php),理由是其为 Ubuntu 22.04 上仍可通过包管理器安装的最后兼容版本。

六、快速开始(最小可用示例)

以下最小流程可在 Ubuntu 22.04 服务器上约 10 分钟跑通"下载—部署—打开登录页"(前提:服务器可访问 SourceForge;apache2、php7.4(含 ppa:ondrej/php)、libapache2-mod-php7.4、php7.4-mbstring 已安装,完整依赖与排障见《Ubuntu 22.04 安装 SquirrelMail 1.4.22 指南》篇):

# 1. 下载官方发布包(SourceForge 直链,2026-10-27 实测可用)
wget https://downloads.sourceforge.net/project/squirrelmail/stable/1.4.22/squirrelmail-webmail-1.4.22.tar.gz

# 2. 校验完整性(与官方发布文件比对)
sha256sum squirrelmail-webmail-1.4.22.tar.gz

# 3. 解压到 /usr/share(官方推荐的应用目录)
sudo tar -xzf squirrelmail-webmail-1.4.22.tar.gz -C /usr/share/

# 4. 准备官方推荐的会话数据与附件缓存目录
sudo mkdir -p /var/local/squirrelmail/data /var/local/squirrelmail/attach
sudo chown -R www-data:www-data /var/local/squirrelmail

# 5. 生成配置文件(config.php 从默认模板复制而来,默认值即可先跑起来)
cd /usr/share/squirrelmail-webmail-1.4.22
sudo cp config/config_default.php config/config.php

# 6. 发布到 Apache(Alias 方式)
sudo tee /etc/apache2/conf-available/squirrelmail.conf > /dev/null <<'EOF'
Alias /webmail /usr/share/squirrelmail-webmail-1.4.22
<Directory /usr/share/squirrelmail-webmail-1.4.22>
    Options -Indexes
    AllowOverride None
    Require all granted
</Directory>
EOF
sudo a2enconf squirrelmail
sudo systemctl restart apache2

验证:

curl -s -o /dev/null -w "HTTP:%{http_code}\n" http://127.0.0.1/webmail/src/login.php

实测输出(PHP 7.4 环境):

HTTP:200

浏览器访问 http://<服务器地址>/webmail/src/login.php 即见登录页。要完成端到端收信验证,还需一个 IMAP 服务器(如 Dovecot)与 SMTP 服务器(如 Postfix),完整 0→1 过程(含邮件后端搭建、明文认证放开、实测回显与排障实录)见《Ubuntu 22.04 安装 SquirrelMail 1.4.22 指南》篇;逐项配置参数见《SquirrelMail 1.4.22 配置参数详解》篇。

七、适用场景与限制

7.1 适用场景(现实中仅存的合理用法)

  • 存量系统维持:历史上用 SquirrelMail 构建的邮件门户、虚拟主机面板(cPanel 旧版默认 Webmail 即 SquirrelMail)的延续运行,短周期内以最小改动维持服务。
  • 古董/极简环境:对客户端无 JS 依赖、要求纯 HTML 4.0 的极端兼容场景(无障碍终端、嵌入式精简浏览器)。
  • 教学/考古:PHP 4/5 时代 Web 应用架构、IMAP/SMTP 协议客户端实现的教学样本。

7.2 限制与风险(选型否决依据)

  • 无维护:最后稳定版 2011-07,之后 15 年零发布;官方 GitHub 组织 404;官网近乎不可用。安全漏洞不会再有官方修复。
  • PHP 8.x 结构性不兼容:实测 HTTP 500 Fatal error(见本章第五节),无法通过小修补运行。
  • 运行时老旧:只能运行在已停止上游支持的 PHP 7.4 及以下版本上,叠加无维护的 Web 应用,暴露于公网风险高,只能内网受控使用。
  • 界面陈旧:框架页布局、全页刷新交互、无移动端适配,现代浏览器下体验明显落后。

7.3 同类选型对比

对同类 Webmail 的横向对比(活跃度、版本节奏、兼容矩阵均为 2026-10-27 实查/本平台实测口径):

维度SquirrelMail 1.4.22Roundcube 1.7.5SnappyMailSOGo
最后稳定版时间2011-07(停滞 15 年)持续更新中(1.7.x 为当前线)持续更新中持续更新中
维护状态无维护(官网近乎不可用、GitHub 无官方仓)活跃社区维护活跃维护活跃公司/社区维护
PHP 兼容仅 PHP 5/7(实测 PHP 8.1 崩溃、7.4 可用)PHP 7.3–8.xPHP 7.4–8.x非 PHP(GNUstep/ObjC)
界面形态框架页、纯 HTML 4.0、无 JS 框架现代响应式、Ajax现代响应式、轻量快速群件风格 Web 界面
插件生态存量两百余个(PHP 5 适配)活跃的 Composer 化插件体系活跃插件体系群件功能内置
数据库依赖无(平文件)可选 MySQL/PostgreSQL/SQLite可选强依赖数据库
部署复杂度解压即用(最低)低(Composer 安装向导)低(解压+配置)中高(服务组件多)
本平台文档本篇系列已有 4 篇实测文档——

选型建议:新项目一律不选 SquirrelMail;优先 Roundcube(生态与现代化程度最均衡,本平台已有从安装到 CLI 的完整实测文档,见下方参考链接);追求轻量与速度选 SnappyMail;需要日历/联系人/群件一体选 SOGo;要从零建完整邮件域(MTA+IMAP+Webmail 一次到位)则评估 Mailcow/Mailu/iRedMail 等全栈套件。若因存量环境必须继续运行 SquirrelMail,请务必遵循《Ubuntu 22.04 安装 SquirrelMail 1.4.22 指南》中的 PHP 7.4 受控运行路线与访问控制建议。

八、参考链接