如何在 Postfix 中安装和配置带有虚拟用户的 RoundCube Webmail 客户端 - 第 4 部分
在本 Postfix 系列的第 1至第 3部分中,我们逐步解释了如何设置和配置具有虚拟用户的电子邮件服务器。我们还向您展示了如何使用 Thunderbird 作为电子邮件客户端访问其中一个帐户。
- 使用 MariaDB 设置 Postfix 邮件服务器和 Dovecot - 第 1 部分
- 配置 Postfix 和 Dovecot 虚拟域用户 - 第 2 部分
- 安装并集成 ClamAV 和 SpamAssassin 到 Postfix 邮件服务器 - 第 3 部分
在这个互联时代,您可能需要从任何地方(而不仅仅是从家用电脑)访问您的收件箱,称为网络邮件客户端的服务器端软件使您可以通过网络界面阅读和发送电子邮件。
Roundcube就是这样一个程序,考虑到它的众多功能(您可以在该项目的网站上阅读更多相关信息),我们选择在本教程中使用它。
为 Postfix 安装 Roundcube Webmail
在CentOS 7和基于RHEL和Fedora等发行版中,安装Roundcube非常简单:
# yum update && yum install roundcubemail
注意:请记住Roundcube包含在EPEL 存储库中,我们必须已经按照第 1 部分中概述的那样启用它。
在Debian 8及其衍生产品(如Ubuntu和Mint)中,您需要先启用 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 根用户的密码:
并选择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_name和useragent)指的是 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 查询如何指向EmailServer_db
我们在第 1 部分中最初设置的数据库,该数据库存储了有关虚拟用户的信息。
最后,与我们在第 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
以众所周知的门为目标的机器人入侵您的系统。请随意选择适合您需要的别名(我们将在这里使用 webmail):
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
现在您可以打开 Web 浏览器并将其指向https://mail.yourdomain.com/webmail
,您应该会看到类似以下内容:
您现在可以使用我们在前面的文章中配置的帐户之一登录,并开始从任何地方使用 Roundcube 发送和接收电子邮件!
自定义 Roundcube Webmail
幸运的是,Roundcube 的界面相当直观且易于配置。此时,您可以花大约15-30分钟来配置环境并熟悉它。转到“设置”了解更多详细信息:
请注意,上图显示了我们在此帐户( example@linuxnewz.com )中收到的电子邮件。
您可以单击“撰写”并开始向外部电子邮件地址写电子邮件:
然后点击发送并检查目的地是否正确到达:
恭喜!您已成功设置 Roundcube 来发送和接收电子邮件!
概括
在本文中,我们解释了如何设置和配置 Roundcube 作为 Web 客户端。当您探索 Roundcube 的界面时,您将看到它是多么易于使用,如Webmail 帮助中所述。
但是,如果您有任何问题或疑虑,请随时告诉我们 - 只需使用下面的评论表给我们留言即可。我们期待您的回复!