香港服务器搭建Roundcube Webmail:企业邮件Web客户端完整部署与插件配置

香港服务器搭建Roundcube Webmail:企业邮件Web客户端完整部署与插件配置

自建邮件服务器(参考第七阶段 Postfix+Dovecot 文章)部署完成后,员工需要一个 Web 界面来收发邮件。Roundcube 是最成熟的开源 Webmail 客户端,类似 Gmail 的操作体验,支持多账号、通讯录、日历(插件)、邮件筛选规则,部署在香港服务器后国内员工可以低延迟访问企业邮箱。即使没有自建邮件服务器,Roundcube 也可以连接企业现有的 IMAP 服务(Gmail Workspace、腾讯企业邮等)。


一、安装 Roundcube

<code"># 安装依赖
apt update && apt install -y \
  php8.2-fpm php8.2-mysql php8.2-curl php8.2-xml \
  php8.2-mbstring php8.2-gd php8.2-intl php8.2-zip \
  mysql-server nginx

# 下载 Roundcube(最新稳定版)
ROUNDCUBE_VERSION="1.6.7"
wget "https://github.com/roundcube/roundcubemail/releases/download/${ROUNDCUBE_VERSION}/roundcubemail-${ROUNDCUBE_VERSION}-complete.tar.gz"
tar -xzf roundcubemail-${ROUNDCUBE_VERSION}-complete.tar.gz
mv roundcubemail-${ROUNDCUBE_VERSION} /var/www/roundcube
chown -R www-data:www-data /var/www/roundcube
<code"># 创建数据库
mysql -uroot -p << 'EOF'
CREATE DATABASE roundcube CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'roundcube'@'localhost' IDENTIFIED BY 'RoundcubeDBPass2026';
GRANT ALL PRIVILEGES ON roundcube.* TO 'roundcube'@'localhost';
FLUSH PRIVILEGES;
EOF

# 导入数据库结构
mysql -u roundcube -p roundcube < /var/www/roundcube/SQL/mysql.initial.sql

二、Roundcube 配置(config/config.php)

<code"># 复制配置模板
cp /var/www/roundcube/config/config.inc.php.sample /var/www/roundcube/config/config.php

# 编辑配置
nano /var/www/roundcube/config/config.php
<code">// config/config.php 关键配置

// 数据库连接
$config['db_dsnw'] = 'mysql://roundcube:RoundcubeDBPass2026@localhost/roundcube';

// ── IMAP 服务器配置(连接自建 Dovecot)──
$config['imap_host'] = 'ssl://mail.yourdomain.com:993';
// 或连接腾讯企业邮:
// $config['imap_host'] = 'ssl://imap.exmail.qq.com:993';

// SMTP 服务器配置
$config['smtp_host'] = 'tls://mail.yourdomain.com:587';
$config['smtp_user'] = '%u';    // 使用 IMAP 登录名
$config['smtp_pass'] = '%p';    // 使用 IMAP 密码

// 域名自动补全(用户只需输入用户名,不用输入完整邮件地址)
$config['username_domain'] = 'yourdomain.com';

// 加密存储的 Key(随机生成)
$config['des_key'] = 'your_24char_random_key_here!!';

// 语言和时区
$config['language']   = 'zh_CN';
$config['timezone']   = 'Asia/Shanghai';

// 界面设置
$config['skin'] = 'elastic';              // 现代响应式主题
$config['layout'] = 'widescreen';         // 宽屏布局(三栏)
$config['list_cols'] = ['subject', 'status', 'fromto', 'date', 'size', 'flag', 'attachment'];

// 安全设置
$config['session_lifetime']    = 480;     // 8小时会话超时
$config['session_domain']      = '.yourdomain.com';
$config['login_autocomplete']  = 0;       // 禁止浏览器记住密码
$config['password_charset']    = 'UTF-8';

// 附件大小限制
$config['max_message_size'] = '25M';
$config['upload_max_filesize'] = '25M';

// 启用插件列表
$config['plugins'] = [
    'archive',           // 邮件归档
    'zipdownload',       // 批量下载附件
    'managesieve',       // 服务端邮件过滤规则
    'carddav',           // CardDAV 联系人同步
    'contextmenu',       // 右键菜单
    'thunderbird_labels',// 类似 Thunderbird 的标签
];

三、Nginx 配置

<code"># /etc/nginx/sites-available/mail.yourdomain.com
server {
    listen 443 ssl http2;
    server_name webmail.yourdomain.com;

    ssl_certificate /etc/letsencrypt/live/webmail.yourdomain.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/webmail.yourdomain.com/privkey.pem;

    root /var/www/roundcube;
    index index.php;

    # 安全:禁止访问配置文件和日志
    location ~ ^/(config|temp|logs)/ { deny all; }
    location ~ /\. { deny all; }
    location ~* \.(md|txt|sql)$ { deny all; }

    # 静态资源缓存
    location ~* \.(jpg|jpeg|png|gif|ico|css|js|woff2)$ {
        expires 30d;
        add_header Cache-Control "public";
    }

    location / {
        try_files $uri $uri/ /index.php?$args;
    }

    location ~ \.php$ {
        fastcgi_pass unix:/run/php/php8.2-fpm.sock;
        fastcgi_index index.php;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }
}

nginx -t && systemctl reload nginx

四、常用插件配置

managesieve(邮件过滤规则)

<code"># /var/www/roundcube/plugins/managesieve/config.inc.php
$config['managesieve_host'] = 'ssl://mail.yourdomain.com';
$config['managesieve_port'] = 4190;
$config['managesieve_usetls'] = true;

# Dovecot 需要启用 managesieve 服务:
# /etc/dovecot/conf.d/20-managesieve.conf
service managesieve-login {
  inet_listener sieve { port = 4190; }
}

carddav(CardDAV 联系人同步)

<code"># /var/www/roundcube/plugins/carddav/config.inc.php
$prefs['_GLOBAL']['hide_preferences'] = false;
$prefs['nextcloud'] = [
    'name'         => '联系人',
    'url'          => 'https://your-nextcloud.com/remote.php/dav/addressbooks/users/{username}/contacts/',
    'active'       => true,
    'readonly'     => false,
    'require_always_email' => false,
];

五、多账号配置(让用户自选服务器)

<code">
// 允许用户自定义 IMAP 服务器(适合多邮箱托管场景)
$config['imap_host'] = [
    'ssl://mail.yourdomain.com:993'  => '公司邮箱 (yourdomain.com)',
    'ssl://imap.gmail.com:993'       => 'Gmail',
    'ssl://imap.exmail.qq.com:993'   => '腾讯企业邮',
];

// 用户可在登录页面下拉选择服务器

六、外观定制(企业 Logo)

<code"># Elastic 主题自定义
# /var/www/roundcube/skins/elastic/custom.css

.roundcube-logo img { display: none; }  /* 隐藏默认 Logo */

/* 添加企业 Logo */
#rcmlogolink::before {
    content: '';
    display: block;
    background: url('/skins/elastic/custom-logo.png') no-repeat center;
    background-size: contain;
    width: 160px;
    height: 50px;
}

/* 修改主色调 */
:root {
    --color-main: #0f3460;    /* 品牌主色 */
}

七、总结

Roundcube 为自建邮件服务器(或企业 IMAP 服务)提供了现代化的 Web 访问入口,无需安装 Outlook 或 Thunderbird 等桌面客户端。部署在香港服务器后,国内员工访问延迟约 30ms,操作体验流畅。配合 managesieve 插件,员工可以直接在 Web 界面设置服务端邮件过滤规则,自动将邮件分类整理,大幅提升邮件管理效率。

Telegram