返回博客

在 Ubuntu 20.04 上使用 Roundcube 安装 Webmail 客户端:教程

在 Ubuntu 20.04 上使用 Roundcube 安装 Webmail 客户端:教程

Roundcube 是一款开源的基于浏览器的 IMAP 邮件客户端。它因支持 ACL 和使用 AJAX(异步 JavaScript 和 XML)技术而广受欢迎。它具有出色的功能和端到端特性,例如电子邮件管理、MIME 支持和文件夹操作等。此外,Roundcube 还无缝提供邮件搜索、拼写检查、日历和联系人管理。最重要的是,与其他流行的基于浏览器的客户端相比,它拥有强大的插件库和更多的自定义选项。

Roundcube 是一个 MUA。与 MTA 不同,您需要一个管理电子邮件的服务,最好是使用您的邮件服务器。查看我们的 邮件服务器配置教程 来添加您选择的邮件服务器。

当您发送电子邮件时,MUA 会使用 SMTP 将其传输到其 MTA 服务器。经过几次跳转后,接收端的 MTA 收到电子邮件并使用 IMAP 将其传输到其 MDA。最后,接收者使用 MUA 查看电子邮件。

让我们来了解一下这些术语:

  • MUA:邮件用户代理是一个允许用户交互以查看和发送电子邮件的界面。
  • MTA:邮件传输代理将电子邮件从发送者传输到接收者。
  • SMTP:简单邮件传输协议是 MUA 用于向 MTA 发送电子邮件的协议。
  • MDA:从 MTA 发送的所有电子邮件都会在邮件投递代理处接收并存储。
  • IMAP:因特网信息访问协议是 MDA 用于将邮件投递给 MUA 的协议。

在本教程中,我们将 引导您完成在 Ubuntu 20.04 上使用 Roundcube 安装 Webmail 客户端的步骤.

让我们开始吧!

前提条件

要学习本教程,您需要满足以下条件:

步骤 1:安装扩展和依赖项

在开始之前,让我们更新软件源以避免软件冲突:

接下来,我们将安装 Roundcube 依赖项并配置 PHP。使用以下命令安装 PHP 扩展 and 库:

默认情况下,有几个 PHP 库是禁用的。我们需要通过导航到服务器的 php.ini 文件(位于 /etc/php/7.0/apache2/php.ini)来启用这些库。使用 nano 文本编辑器打开 php.ini 文件:

与大多数通常以井号( #)开始的常用注释选项不同,我们使用分号( ;)来注释和取消注释行。在行首添加分号以注释该行。同样,删除分号以取消注释该行。

让我们看看包含以 extension= 开始的注释行的部分。删除分号以取消注释 php_mbstring.dllphp_xmlrpc.dll 扩展:

此外,追加 extension=dom.so 到扩展块的底部:

  • 修改文件:
    • 更改 date.timezone:

转到设置选项,导航至 date.timezone,并取消其注释。接下来,使用引号添加您的时区。查看 PHP 的时区页面 以查看格式化后的时区在 php.ini 文件中的样式。例如,如果您来自欧洲,您的文件将如下所示:

    • 修改 upload_max_filesize 文件:

然后,导航到 upload_max_filesize 设置。默认情况下,您会看到最大限制设置为 2MB。根据您的需要,您可以将最大文件大小增加到任意大小。但是,大多数邮件服务器会将总附件大小限制在 10MB 以内。在本指南中,我们将最大大小保持为 13MB,以便多个用户可以同时添加附件:

    • 修改 post_max_size 文件:

现在,导航并搜索 post_max_size。与适用于附件的 upload_max_filesize 设置不同, post_max_size 适用于整封电子邮件的大小(包括附件)。让我们将 post_max_size 设置为更高的值以防止死锁:

    • 设置 func_overload 值:

最后,寻找 mbstring.func_overload = 0 并取消其注释。此外,确保其值设置为 null,以便它支持多字节字符串函数:

保存所有修改,然后关闭文件。我们的服务器已配置好 LAMP 架构、Roundcube 的依赖项以及所需的 PHP 配置。在下一步中,我们将下载 Roundcube 软件,进行安装和配置。

步骤 2:下载 Roundcube

转到 Roundcube 的 下载页面,选择 稳定版本 部分并浏览 完整包。然后,右键单击 下载 按钮并选择 复制链接地址。在服务器上使用该地址配合 wget, 下载 Roundcube 压缩包

之后,您需要解压 Roundcube 归档文件:

使用的参数可能听起来令人困惑,特别是如果您完全是新手。以下是每个标志含义的解释:

  • x:代表提取(extract)。
  • v:代表详细模式(verbose)。
    • 通知 tar 打印提取文件的路径 and 名称。
  • z:通知 tar 移除 tar 包装并使用 gzip 解压归档文件。
    • 压缩后的 gzip 文件扩展名末尾将带有 .gz 。
  • f:代表文件(file)。

省略末尾的 / 目录,因为我们要移动并重命名整个目录,而不仅仅是其中的内容。现在,让我们将解压后的目录移动到 /var/www 并将其重命名为 roundcube:

设置 Apache 的权限以创建和编辑配置文件和日志文件。然后,将所有者和组更改为 www-data。此外,请确保允许所有者和组的读写权限:

虽然我们已经下载了 Roundcube 的代码并设置了必要的权限,但我们的安装仍未完成。通过 Roundcube 的 GUI 将 Roundcube 连接 to 我们的数据库尚未完成。在进一步操作之前,我们需要更新 Apache 及其配置,以告知 Roundcube 的基本位置。

步骤 3:Apache 安装与配置

在此步骤中,我们将编辑虚拟主机文件来配置 Apache。使用 Apache 虚拟主机,我们将在单个服务器上托管多个站点。即使 Apache 只托管一个站点,与编辑 Apache 配置相比,使用虚拟主机配置文件也更整洁、更简单。为了增加一层安全性,请考虑 使用 Let’s Encrypt 保护 Apache.

每个 .conf 文件,位于 /etc/apache2/sites-available/ 代表一个不同的站点。让我们在这里为 Roundcube 创建一个虚拟主机文件,并通知 Apache 使其对浏览器可用。

首先,复制默认配置文件,将其作为新文件的起点:

使用 nano 文本编辑器打开文件:

有几处更改需要我们进行修改。让我们逐一介绍,然后提供整个文件供复制和粘贴。

首先,更改现有 VirtualBlock 主机中的以下指令:

  • ServerName:通知 Apache 选择域名。
    • 如果您使用的是一台服务器,那么此 ServerName 将是您的服务器 IP 地址或域名。
  • DocumentRoot:当流量进入时,它会路由发送到哪里。
    • 在我们的教程中,我们将把流量发送到位于 /var/www/roundcube.
  • ServerAdmin:如果 Apache 出现问题,ServerAdmin 指定联系电子邮件地址。
  • ErrorLog CustomLog:定义保存此站点的成功连接日志和错误日志的位置。
    • 使用特定名称来定义错误日志,以便在出现特定于该站点的任何问题时,能够轻松检测到。

然后,您将添加一个新的 Directory 块,通知 Apache 如何处理 Roundcube 目录。该 Directory 由两个单词组成,其中每行的第一个单词是配置名称,后跟实际的配置选项。

  • Options -Indexes:通知 Apache 如果发现缺少 index.htmlindex.php 文件,则显示警告。默认情况下,它会显示目录的内容。
  • AllowOverride All:通知 Apache 如果检测到本地 .htaccess 文件,它必须覆盖全局设置。
  • Order allow,deny:指示 Apache 匹配客户端对站点的访问,并拒绝未匹配的访问。
  • allow from all:定义允许的客户端类型。

做出这些更改后,您将看到类似以下的文件:

保存所有更改并关闭文件。现在,让我们请求 Apache 停止托管默认网站:

之后,我们将指示 Apache 开始托管 Roundcube 网站。启用该网站时,请不要包含 .conf  因为 a2ensite 需要不带扩展名的文件名:

接下来,开启 ON the mod_rewrite Apache 模块:

最后,重启 Apache 以启用 Roundcube 安装访问权限:

在最后一步中,我们需要配置数据库,以便 Roundcube 可以存储和管理其特定于应用程序的数据。

步骤 4:MySQL 安装和配置

尝试使用 IP 地址或域名访问您的服务器。您会看到页面上出现配置错误。在这里,Roundcube 会检查配置设置期间生成的文件,但我们的配置设置尚未完成。在进行配置设置之前,让我们先准备好数据库。

  1. 连接到 MySQL:让我们使用用户名和密码连接到 MySQL 交互式 shell:
    输入上述命令后,系统会要求您使用在安装 MySQL 时创建的 root 密码进行身份验证。
  2. 创建数据库和用户:现在您已成功登录,让我们创建一个数据库和一个数据库用户。之后,我们将允许用户权限在我们的新数据库上执行命令。
  3. 创建数据库:使用以下命令创建一个名为 roundcubemail 的数据库。接下来,提供数据库选项,例如要使用的字符集 utf8:
    MySQL 提供了强大的安全性和先进的安全性。它通过名称和连接源来定义用户。上述命令创建了一个名为 roundcube 的用户,并定义该用户从 localhost.
  4. 重命名数据库:让我们重命名用户并修改我们的密码:
  5. 设置权限:允许 roundcube 用户在 roundcubemail 数据库和表上拥有所有权限:
    保存您的更改并退出 MySQL 交互式 shell:

我们的下一步是设置有助于 Roundcube 保存所有信息的数据库结构。Roundcube 附带一个自动设置数据的数据库文件,如果手动配置将需要付出艰苦的努力。

使用以下命令,MySQL 将使用我们新创建的用户读取文件 /var/www/roundcube/SQL/mysql.initial.sql。此外,它还会将配置应用到数据库 roundcubemail:

现在,您将被要求输入 roundcube 用户的密码。我们的数据库设置准备好了 Roundcube 的使用,并允许我们验证正确的权限。如果所有步骤都成功完成,将不会有任何反馈,然后您将返回到命令提示符。在下一步中,我们将告诉 Roundcube 我们的电子邮件设置并完成安装。

步骤 5:Roundcube 安装和配置

如果您现在尝试访问您的 Roundcube 安装,您将得到一个错误页面。访问 http://your_server_ip_or_domain/installer 以完成安装。

如果设置正确,您将看到绿色的 OK位于每个行项目的右侧。但是,您可能在 MySQL 的可选 LDAP 设置中看不到绿色的 OK。如果您看到消息 不可用 位于任何其他行旁,您必须安装这些不可用的依赖项。如果您错过了下载任何依赖项,可以访问该 URL 并立即下载。

设置完成后,向下滚动并单击 下一步 按钮。让我们逐步生成 Roundcube 配置文件。查看我们需要修改的表单部分。

  • 常规配置

在“常规配置”部分,我们将修改一些自定义设置和常规设置:

  • ip_check:这是一个安全配置选项,用于在会话授权中验证客户端的 IP。
  • product_name:根据您的喜好重命名产品名称。该名称在文本中映射“Roundcube”,并会被此名称替换。
  • support_url:Roundcube 安装中的支持。如果您没有专门的帮助台网站,建议使用类似 walker:paul@demo.com 的电子邮件地址。
  • skin_logo:将 Roundcube 徽标替换为 skin_logo。要启用 HTTPS,请选择 HTTPS URL 图片(178 像素乘 47 像素)。

保留其他设置的默认值。

  1. 日志 & 调试:让我们使用默认选项。
  2. 设置数据库:Roundcube 不是直接使用您的邮件,而是使用 MySQL 来存储运行 Web 客户端的信息。在这里,我们需要通知 Roundcube 访问我们在步骤 4中设置的数据库。使用我们之前创建的数据库凭据:
    • 数据库: MySQL
    • 服务器: localhost
    • 数据库名称: roundcubemail
    • 用户: roundcube
    • 密码: demo12345@
    • 中定义的密码。Db_prefix:这是可选的,除非您与其他应用程序共享数据库。
  3. 修改 IMAP:让我们为您的电子邮件服务器设置 IMAP 和 SMTP 设置。由于本教程以使用 Gmail 为例,我们将在 IMAP 设置中使用 Gmail 设置。但是,如果您选择使用 Yahoo 或 Outlook 等其他服务提供商,则需要使用它们各自的设置。许多电子邮件提供商支持加密或不加密的连接。规范使用 SSL IMAP/SMTP URL 和端口,以避免使用非安全连接。
    • default_host: ssl://imap.gmail.com
    • default_port: 993
    • auto_create_user:
      • 如果未勾选此项,Roundcube 将不会在其自己的数据库中创建用户,并会阻止您登录。
    • *_mbox 字段:保留默认值。
      • 您稍后可以在 Roundcube UI 中更新此设置。
  4. 修改 SMTPSMTP 服务器 是用于发送电子邮件的电子邮件不可或缺的一部分。与 IMAP 服务器部分类似,我们将使用 SSL URL 和端口。如果您在使用 SMTP 服务器方面缺乏经验,请遵循 SMTP 最佳实践 以了解有关此类服务器的更多信息。在这里,我们以 Gmail 为例:
    • smtp_server 字段: ssl://smtp.gmail.com
    • smtp_port 字段: 465
    • SMTP 和 IMAP 是两种不同的服务,因此它们都需要用户名和密码。但是,Roundcube 允许我们使用 IMAP 凭据,因此无需重新创建它们。将以下字段留空: smtp_user/smtp_pass 并勾选“使用当前 IMAP 用户名和密码进行 SMTP 身份验证”旁边的框。
    • smtp_log:
  5. 修改显示设置 & 用户偏好:让我们使用默认的显示设置和用户偏好。如果您选择自定义 Roundcube 安装,请单击配置页面上的 RFC1766 链接,并手动更新 language 字段。
  6. 插件:Roundcube 提供插件支持,可增加额外的安全性。插件是可选的,但是,您可以利用它们来简化您的工作。让我们来看看最常用的插件列表:
    • archive:此插件提供了一个 归档 按钮,其工作原理与 Gmail 类似。
    • emoticons:这允许在电子邮件中使用表情符号。
    • enigma:它使使用 GPG 电子邮件加密变得容易。
    • filesystem_attachments: 它允许在保存草稿邮件时临时将附件保存到 Roundcube 服务器。
    • hide_blockquote: 此插件隐藏已回复邮件的引用部分,以保持界面整洁。
    • identity_select: 它允许用户在撰写邮件时选择多个电子邮件地址。
    • markasjunk: 此插件允许将电子邮件标记为垃圾邮件并将其移动到垃圾邮件文件夹。
    • newmail_notifier: 使用浏览器通知系统提醒您有新邮件。

点击 UPDATE CONFIG 按钮以保存您的设置。在最后一步中,我们将测试 Roundcube 配置以确保一切正常运行。

步骤 6:测试 Roundcube 设置

更新配置后,页面将刷新,页面顶部将出现一个黄色信息框,提示 配置文件已成功保存到 RCMAIL_CONFIG_DIR 目录(位于您的 Roundcube 安装中)。

然后,点击 CONTINUE 按钮以测试您的配置。与依赖项检查页面类似,您将看到绿色的 OK 标记(如果没有错误的话)。如果您看到任何错误,请返回并仔细检查您的输入。

分别在 Test SMTP configTest IMAP config 区域中输入您的 IMAP 和 SMTP 用户名及密码,以测试其余配置。同样,点击 Send test emailCheck login。如果您正确执行了所有步骤,页面将刷新,您将在测试区域下方看到绿色的 OK

注意: 如果您使用的是启用了两步验证的 Gmail,请考虑生成一个应用专用密码,因为 Roundcube 无法提示输入您的两步验证令牌。在使用 Yahoo 或 Outlook 等其他替代邮件服务器时,请遵循相同的密码生成步骤。

验证 SMTP 和 IMAP 连接均正常运行后,下一步是使用 SSH 删除安装程序目录。删除安装程序目录是防止他人生成新配置并覆盖正确设置的安全方法:

最后,您可以使用服务器的 IP 访问 Roundcube 实例并验证您的电子邮件。

结论

在本教程中,我们学习了如何在 Ubuntu 20.04 上使用 Roundcube 安装 Webmail 客户端。除了上述步骤外,您还必须考虑添加其他安全选项,例如 HTTPS 支持和 GPG 加密。请务必承担起保护服务器的责任,采用 强有力的安全措施.

。此外,您还可以从我们的 博客:

祝您使用愉快!

author

Pranay Kapgate

作者 · CloudSigma

Preslav Dobrev 是 CloudSigma 的创意设计师,专注于通过传统和创新营销渠道打造一致的企业形象。他擅长将艺术愿景与战略营销相融合,创造具有影响力的品牌叙事。

评论

暂无评论。发表第一条评论吧。