先避坑宝塔面板上安装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后请立即回到宝塔面板的文件管理器彻底删除/www/wwwroot/mail.mydomain.com/installer/整个文件夹。原因出于安全考虑Roundcube 在检测到installer文件夹存在时会禁用登录功能防止他人恶意修改你的配置。参考https://www.cnblogs.com/daen/p/16041424.html高级设置Roundcube没有所谓的“管理员后台”也没有“管理员账号”。高级设置需要通过修改服务器上的配置文件来调整全局设置。文件路径/www/wwwroot/mail.mydomain.com/config/config.inc.php一套程序支持多个邮箱域xxxa.com、xxxb.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?topic22707.0https://www.roundcubeforum.net/index.php?topic10040.0
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后请立即回到宝塔面板的文件管理器彻底删除/www/wwwroot/mail.mydomain.com/installer/整个文件夹。原因出于安全考虑Roundcube 在检测到installer文件夹存在时会禁用登录功能防止他人恶意修改你的配置。参考https://www.cnblogs.com/daen/p/16041424.html高级设置Roundcube没有所谓的“管理员后台”也没有“管理员账号”。高级设置需要通过修改服务器上的配置文件来调整全局设置。文件路径/www/wwwroot/mail.mydomain.com/config/config.inc.php一套程序支持多个邮箱域xxxa.com、xxxb.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?topic22707.0https://www.roundcubeforum.net/index.php?topic10040.0