当前位置: 首页 > news >正文

Roundcube Webmail + sqlite

先避坑:

宝塔面板上安装Roundcube不要选择docker安装,无论是在Docker应用市场还是宝塔软件商店的插件方式,都不建议。因为坑多,调试很费时间。

而且还不能选择数据库类型,Docker应用市场上的仅支持MySQL,且MySQL必须是另外单独Docker安装。软件市场的Roundcube插件则写死用PostgreSQL。

直接传统方式更简单,在宝塔面板上安装php8.1和nginx,并创建roundcubemail的网站项目,绑定mail.mydomain.com ,把roundcubemail的源码解压到对应目录,直接 http://mail.mydomain.com/installer/ 就可以了。

先是环境检测:

  • FileInfo:强烈建议安装。如果没有它,Roundcube 无法准确识别邮件附件的类型(比如是 PDF 还是图片),可能会导致附件无法正常预览或显示图标。

  • Exif:建议安装。它负责处理照片的元数据(比如拍摄日期、旋转角度)。如果没有它,你在邮件里发送或查看手机拍摄的照片时,照片可能会“横着”显示。

  • 提示:LDAP 和 Imagick 可以忽略,前者是企业级账号同步用的,后者太占内存,低配机不建议装。

补安装完PHP插件后,重启PHP,然后刷新http://mail.mydomain.com/installer/,看看是否OK

然后 点击 Next。进入 Create config 页面。

在Create config页面中,请盯着这几个关键点填,不要用默认值:

  • Database type: 务必选SQLite

  • Database DSND (SQLite): 填入路径sqlite:////www/wwwroot/mail.mydomain.com/db/sqlite.db

    • 提醒:填完后,记得去宝塔文件管理器确认下db文件夹存在,且权限是777

    • identities_level: 建议选one identity with only one email address,这能防止你的邮件系统被用来发垃圾邮件。

    • language: 找到zh_CN填进去,界面就是中文的了。

    • 2. IMAP Settings (收信)
    • imap_host: 填ssl://mail.mydomain.com:993(如果邮局在同一台服务器ssl://127.0.0.1:993, ssl://localhost:993) 或你的邮局域名。 注:端口决定了前缀的写法,993/465 必须使用ssl://开头,578端口使用tls://开头

    • 3. SMTP Settings (发信)
    • smtp_host: 填ssl://mail.mydomain.com:465()。

    • Use current IMAP username/password for SMTP auth:勾选(这样发信就不用重新输密码了)。

  • 【不要】勾选插件,你用不到,还很卡

最后一项必做安全操作(不操作进不了登录页)

当你完成以上测试并确认全部OK后,请立即回到宝塔面板的文件管理器

  1. 彻底删除/www/wwwroot/mail.mydomain.com/installer/整个文件夹。

  2. 原因:出于安全考虑,Roundcube 在检测到installer文件夹存在时,会禁用登录功能,防止他人恶意修改你的配置。

参考:https://www.cnblogs.com/daen/p/16041424.html

高级设置:

Roundcube没有所谓的“管理员后台”,也没有“管理员账号”。高级设置需要通过修改服务器上的配置文件来调整全局设置。

  • 文件路径/www/wwwroot/mail.mydomain.com/config/config.inc.php

一套程序支持多个邮箱域(xxx@a.comxxx@b.com) https://github.com/roundcube/roundcubemail/wiki/Configuration%3A-Multi-Domain-Setup

以下内容未验证,实际需要的时候再查找资料吧,貌似还有专门的插件用于这个需求场景 有些似乎是旧的,例如default_host 现在是 imap_host 和 smtp_server https://github.com/roundcube/roundcubemail/wiki/Configuration%3A-Multi-Domain-Setup // 设为空后,登录页面会出现“Server”输入框 $config['default_host'] = ''; // 登录界面出现下拉选项: $config['default_host'] = [ 'ssl://mail.aaa.com:993' => 'AAA 域名邮箱', 'ssl://mail.bbb.com:993' => 'BBB 域名邮箱', ]; // 登录界面不会出现服务器填写框、下来框 (前提:全部域的邮局都是部署在本机) $config['default_host'] = 'ssl://127.0.0.1:993'; $config['smtp_server'] = 'ssl://127.0.0.1:465'; // 登录界面不会出现服务器填写框、下来框 (前提:全部域的邮局服务器子域名都是mail.xxxx) // %n = 用户名部分 (abc) // %d = 域名部分 (aaa.com) $config['default_host'] = 'ssl://mail.%d:993'; //=================== //如果你的后端服务器地址完全没有规律,你需要写一小段简单的 PHP 判断逻辑(直接写在 config.inc.php 里即可): // 获取用户尝试登录的用户名 $user_email = $_POST['_user'] ?? ''; // 提取后缀 $domain = substr(strrchr($user_email, "@"), 1); // 根据后缀手动指定后端 if ($domain == 'aaa.com') { $config['default_host'] = 'ssl://server-01.com:993'; } elseif ($domain == 'bbb.com') { $config['default_host'] = 'ssl://private-imap.net:993'; } else { $config['default_host'] = 'ssl://127.0.0.1:993'; // 默认回退到本地 }

自动识别登录域---为了确保发信时身份正确,请确保以下设置:

// 允许登录时使用完整的邮件地址(必选) $config['username_domain'] = ''; // 自动根据登录的邮件地址创建发件人身份 $config['mail_domain'] = '';
  • 常见修改项

    • 修改皮肤:找到$config['skin'] = 'elastic';

    • 限制上传附件大小:找到$config['max_pagesize']或在宝塔 PHP 设置里修改upload_max_filesize

    • 强制显示中文$config['language'] = 'zh_CN';

    • 增加插件:在$config['plugins'] = [...]数组里添加插件名称。

=============

关于

https://www.roundcubeforum.net/index.php?topic=22707.0

https://www.roundcubeforum.net/index.php?topic=10040.0

http://www.jsqmd.com/news/523792/

相关文章:

  • 小说离线阅读难题?FictionDown让你告别网络依赖
  • 【硬核解析】千问请喝奶茶口令中奇怪但能看懂的字是怎么打出来的
  • 一文读懂:Git、Github、GitLab、SVN(附:快速上手 Git,用 VSCode 操作 Git )
  • CLIP
  • 【Day30】卡码网:46. 携带研究材料,LeetCode:416. 分割等和子集
  • 力扣刷题——104.二叉树的最大深度
  • VIT
  • 这里藏着电力系统的核心评判指标
  • Gemini 3场景化应用指南:原生多模态与超长上下文能解决哪些实际问题?
  • 倒数第四天
  • InnoDB底层原理之MySQL的日志机制
  • Visual Place Recognition
  • 密码学学习记录
  • Go语言基础之数组
  • 世毫九实验室九大衍生理论课题与技术攻关方向(初审意见)
  • ai---openClaw 配置企业微信
  • CloudFlare域名接入与Nginx真实IP获取实战指南
  • LeetCode 234. 回文链表
  • 永磁同步电机FOC最小损耗算法
  • ESP32开发板国内镜像加速安装指南(附2023最新可用JSON地址)
  • 48个适合人力资源工作和运营的AI提示词
  • 基于MATLAB Simulink的PEM电解槽制氢仿真模型研究
  • 【认知雷达(Cognitive Radar)与深度学习融合架构】第5章 LSTM时序预测与多目标轨迹关联
  • 探索异构混合阶多智能体系统的一致性:UGV 与 UAV 的协同之旅
  • 51单片机初相识
  • 基于多因子定价模型解析:美元强势与利率预期重构驱动的金价8连跌机制
  • Cube MX实战:如何用STM32F系列和ADS1255构建高精度电流源(附完整代码)
  • 分布式驱动电动汽车:最优横摆力矩控制与规则扭矩分配控制的对比研究——基于LQR计算与最小附着利...
  • 聚焦镀锌管/角钢/方管/螺旋管,精选本土标杆企业,助力工程采购决策 - 深度智识库
  • Timer-S1 正式发布:首个十亿级时序基础模型,预测性能达到 SOTA