SquirrelMail 1.4.22 介绍与选型指南
SquirrelMail 1.4.22(2011 年最后稳定版)介绍与选型指南:官网/SourceForge/GitHub 现状实查、PHP 8.1 不兼容与 PHP 7.4 可用的双运行时实测、与 Roundcube 等同类 Webmail 的量化选型对比。
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、Zimbra Webmail 与日历/联系人/协作一体 企业协作场景 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.22 | Roundcube 1.7.5 | SnappyMail | SOGo |
|---|---|---|---|---|
| 最后稳定版时间 | 2011-07(停滞 15 年) | 持续更新中(1.7.x 为当前线) | 持续更新中 | 持续更新中 |
| 维护状态 | 无维护(官网近乎不可用、GitHub 无官方仓) | 活跃社区维护 | 活跃维护 | 活跃公司/社区维护 |
| PHP 兼容 | 仅 PHP 5/7(实测 PHP 8.1 崩溃、7.4 可用) | PHP 7.3–8.x | PHP 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 受控运行路线与访问控制建议。
八、参考链接
- 官方站点(2026-10-27 实查:在线但响应极慢):https://www.squirrelmail.org/
- SourceForge 项目主页(当前唯一有效发布渠道):https://sourceforge.net/projects/squirrelmail/
- 1.4.22 发布文件列表:https://sourceforge.net/projects/squirrelmail/files/stable/1.4.22/
- SourceForge 发布 RSS(版本节奏取证依据):https://sourceforge.net/projects/squirrelmail/rss?path=/
- 本平台同类实测文档:《Roundcube 1.7.5 介绍与选型指南》、《Ubuntu 22.04 安装 Roundcube 1.7.5 指南》