网站搜索

如何在 Postfix 中安装和配置具有虚拟用户的 RoundCube Webmail 客户端 - 第 4 部分


在本 Postfix 系列的第 1 部分第 3 部分中,我们逐步解释了如何使用虚拟用户设置和配置电子邮件服务器。我们还向您展示了如何使用 Thunderbird 作为电子邮件客户端来访问这些帐户之一。

  1. 使用 MariaDB 设置 Postfix 邮件服务器和 Dovecot – 第 1 部分
  2. 配置 Postfix 和 Dovecot 虚拟域用户 – 第 2 部分
  3. 安装 ClamAV 和 SpamAssassin 并将其集成到 Postfix 邮件服务器 - 第 3 部分

在这个互联时代,您可能需要从任何地方(而不仅仅是从您的家庭计算机)访问您的收件箱,称为网络邮件客户端的服务器端软件使您可以通过网络界面阅读和发送电子邮件。

Roundcube 就是此类程序之一,鉴于其众多功能(您可以在该项目的网站中阅读更多信息),我们选择在本教程中使用它。

安装用于 Postfix 的 Roundcube Webmail

CentOS 7 和基础发行版(例如 RHELFedora)中,安装 Roundcube 非常简单:

yum update && yum install roundcubemail

注意:请记住,Roundcube 包含在 EPEL 存储库中,我们必须按照部分中的概述启用它1。

Debian 8 及其衍生版本(例如 UbuntuMint)中,您需要首先启用 Jessie 向后移植(Web):

echo "deb http://http.debian.net/debian jessie-backports main" >> /etc/apt/sources.list

然后安装Roundcube如下:

aptitude update && aptitude install roundcube

无论我们使用哪种发行版,我们现在都需要创建一个数据库来存储 Roundcube 的内部结构。

Debian 8 中,安装过程将处理此问题:

当提示您是否要使用 dbconfig-common 配置 Roundcube 数据库时,选择

选择 mysql 作为数据库类型:

提供 MariaDB root 用户的密码:

并选择roundcube注册数据库服务器的密码,然后单击“确定”:

确认您在上一步中输入的密码:

不久之后,您将拥有一个名为 roundcube 的数据库及其自动为您创建的相应表:

MariaDB [(none)]> USE roundcube;
MariaDB [(none)]> SHOW TABLES;

CentOS 7中,您需要通过登录phpMyAdmin或通过命令行手动创建数据库。为了简洁起见,我们将在这里使用第二种建议的方法:

mysql -u root -p
MariaDB [(none)]> CREATE DATABASE RoundCube_db;

然后退出 MariaDB 提示符并运行以下 SQL 脚本:

mysql -u root -p RoundCube_db < /usr/share/roundcubemail/SQL/mysql.initial.sql

请注意,在 Debian 中您也可以手动执行这些步骤。因此,如果您愿意,您可以重命名数据库,而不是像以前那样将其自动命名为“roundcube”。

为 Postfix 配置 Roundcube

首先,您应该注意,从 RoundCube v1.0 及更高版本开始,配置设置仅包含在一个文件中,而不是以前的版本,它们分为两个文件。

首先,找到以下文件并在同一目录中创建一个名为 config.inc.php 的副本。使用 -p 选项保留模式、所有权和原始时间戳:

cp -p /etc/roundcubemail/defaults.inc.php /etc/roundcubemail/config.inc.php

接下来,确保 Roundcube 可以访问我们之前创建的数据库。在db_dsnw中,将用户和密码替换为具有访问RoundCube_db权限的用户名和密码。

例如,您可以使用在第 1 部分中登录 phpMyAdmin 时使用的同一管理帐户,或者如果需要,也可以只使用 root。

$config['db_dsnw'] = 'mysql://user:password@localhost/RoundCube_db';

以下设置涉及主机名、端口、身份验证类型等(它们是不言自明的,但您可以通过阅读配置文件中的注释找到更多详细信息):

$config['default_host'] = 'ssl://mail.linuxnewz.com';
$config['default_port'] = 143;
$config['smtp_server'] = 'tls://mail.linuxnewz.com';
$config['smtp_port'] = 587;
$config['smtp_user'] = '%u';
$config['smtp_pass'] = '%p';
$config['smtp_auth_type'] = 'LOGIN';

最后两个设置(product_nameuseragent)指的是 Web 界面中的标头以及随消息发送的电子邮件标头。

$config['product_name'] = 'Linuxnewz Webmail - Powered by Roundcube';
$config['useragent'] = 'Linuxnewz Webmail';

为了让 Roundcube 使用虚拟用户身份验证发送邮件,我们需要激活 virtuser_query 插件(可以在 /usr/share/roundcubemail/plugins 中找到):

$config['plugins'] = array('virtuser_query');
$config['virtuser_query'] = "SELECT Email FROM EmailServer_db.Users_tbl WHERE Email = '%u'";

请注意上面的 SQL 查询如何指向我们最初在第 1 部分中设置的 EmailServer_db 数据库,该数据库存储有关虚拟用户的信息。

最后,与我们在第 1 部分中所做的类似,为了能够使用 Web 浏览器访问 phpMyAdmin 的 Web 界面,让我们深入了解 Roundcube/Apache 配置文件:

vi /etc/httpd/conf.d/roundcubemail.conf # CentOS 7
nano /etc/roundcube/apache.conf # Debian 8

并将以下行放入指定的标签内:

Debian 8:

<IfVersion >= 2.3> 
    Require ip AAA.BBB.CCC.DDD 
    Require all granted 
</IfVersion>

CentOS 7:

<IfModule mod_authz_core.c> 
    # Apache 2.4 
    Require ip AAA.BBB.CCC.DDD 
    Require all granted 
</IfModule>

虽然不是严格要求,但最好更改 Roundcube 目录的别名,以保护自己免受以 /roundcube 作为闯入系统的众所周知的门的机器人的侵害。请随意选择适合您需要的别名(我们将在此处使用网络邮件):

Alias /webmail /usr/share/roundcubemail # CentOS 7
Alias /webmail /var/lib/roundcube # Debian 8

保存更改,退出配置文件并重新启动 Apache:

systemctl restart httpd # CentOS 7
systemctl restart apache2 # Debian 8

现在您可以打开网络浏览器并将其指向 https://mail.yourdomain.com/webmail,您应该会看到类似以下内容的内容:

现在,您可以使用我们在之前的文章中配置的帐户之一登录,并开始使用 Roundcube 从任何地方发送和接收电子邮件!

自定义 Roundcube Webmail

幸运的是,Roundcube 的界面相当直观且易于配置。此时,您可以花费15-30 分钟来配置环境并熟悉它。前往设置了解更多详情:

请注意,上图显示了我们在此帐户中收到的电子邮件([电子邮件受保护])。

您可以点击撰写并开始向外部电子邮件地址写入电子邮件:

然后点击发送并检查目的地以查看其是否正确到达:

恭喜!您已成功设置 Roundcube 来发送和接收电子邮件!

概括

在本文中,我们解释了如何将 Roundcube 设置和配置为 Web 客户端。当您探索 Roundcube 的界面时,您会发现它是多么容易使用,如 Webmail 帮助中所述。

但是,如果您有任何问题或疑虑,请随时告诉我们 – 只需使用下面的评论表给我们留言即可。我们期待您的回音!