在网页上收、寄信 ( Web Mail ) 已成为必要的工作,使用者不需要在自己电脑上安装收信软件,直接打开网页后,连上公司的网站即能收寄信件。CentOS 并未附带内建的 Web Mail 套件,目前较多人使用且持续有在更新的软件有 Roundcube、RainLoop 与 SquirelMail 等。

☛ 安装设定

使用浏览器至 RoundCube 的官方网站即可下载,网址为:http://www.roundcube.net。如下:

 

在下载页面中选择 Stable 稳定版中的 Complete 完整版的连结,进行下载。然后解压缩 tar.gz 档,得到目录 roundcubemail-1.4.9,如下所示:

[root@localhost ~ ]# tar xvfz roundcubemail-1.4.9-complete.tar.gz 
[root@localhosk ~ ]# ls -ld roundcubemail-1.4.9 
drwxr-xr-x. 13 501 80 4096 9 月 30 13:00 roundcubemail-1.4.9

将此目录更换为较短的名称,并搬移至 /var/www/html/ 目录之下:

[root@localhost ~ ]# mv roundcubemail-1.4.9 /var/www/html/webmail

未来 Roundcube 会由 Apache 网页伺服器执行,应将此目录下的所有档案拥有者设定为 apache 使用者,使用 chown 并配合 -R 选项,如下:

[root@localhost ~ ]# cd /var/www/html
[root@localhost html ]# chown apache.apache webamil -R

如果在 SELinux 安全机制为启动的状况下,Apache 仍然无法写入目录,为确保未来安装顺利,请在设定 SELinux 及重新启动 httpd 服务:

[root@localhost html]# setsebool -P httpd_unified 1
[root@localhost html]# setsebool -P httpd_can_network_connect 1
[root@localhost html]# systemctl restart httpd

接下来在 MariaDB 中建立数据库 webmail,如下所示:

[root@localhost html]# mysql -uroot -p
Enter password:
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 187
Server version: 5.5.37-MariaDB MariaDB Server
Copyright (c) 2000, 2017, Orcale, Monty Program Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]> create database webmail;
Query OK, 1 row affected (0.00 sec)
MariaDB [(none)]>

使用浏览器开启网址,IP 位址请使用主机环境所取得的 IP address,如 http://192.168.7.100/webmail/installer/。并确认 PHP 相关环境检查结果,其中 PCER、DOM、Session、XML、JSON、PDO 是必要功能,都必需 OK。如下图:

接着按下 NEXT 进入下一个设定。

资料库设定是最重要的设定,请在各个栏位输入先前所建立的资料库名称、使用者帐号与密码,如下图所示:

上述中的 Database name 输入 webmail,Database user name 及 Database password 如果没有特别建立时,可使用 root 的帐号及密码。然后按下 CREATE CONFIG 按钮,产生 RoundCube 的设定档并进入下一个页面,如下所示:

在按下 CONTINUE 继续之前,还需下载正确格式的 mime.type。RoundCube 需 mime.types 档以辨别未来信件中的附加档案的副档名,虽然 Linux 已有 /etc/mime.types 档,但格式与 RoundCube 能辨别的档案格式不同,因此必须到 Appache 官方网站下载正确的 mime.types 档案,并将其放在 /var/www/html/webmail/ 目录下,使用 wget 下载的指令如下:

[root@localhost ~ ]# cd /var/www/html/webmail
[root@localhost webmail]# wget http://svn.apache.org/repos/asf/httpd/httpd/trunk/docs/conf/mime.types

下载完成后,使用 gedit 文字编辑器开启 /var/www/html/webmail/config/defaults.inc.php 档,修改如下:

$config['mime_types']='/var/www/html/webmail/mime.types';

完成后储存档案,回到浏览器的安装页面,按下 CONTINUE 按钮进入下一个页面,按下 Initialize database,检测结果如下图所示:

接着将安装目录删除,以免敏感或重要资料暴露在外:

[root@localhost webmail] rm -rf /var/www/html/webmail/installer/

最后,再将 index.html 改成 index.html.bk。

打开浏览器输入 http://192.168.7.100/webmail/ 看到登入的页面便安装设定完成。

☛ 进阶设定

由于垃圾邮件的泛滥,各大 ISP 业者对于电子邮件采取了一些管控手段,例如 Google Mail 等,为了避免寄去  Gmail 的信件收不到或被退信的情况发生,可采取由 ISP 业者所提供的 SMTP Server 来转发信件。使用 gedit 修改 /var/www/html/webmail/config/defaults.inc.php 里的 SMTP 相关设定,如下所示:

// ----------------------------------
// SMTP
// ----------------------------------

// SMTP server host (for sending mails).
// Enter hostname with prefix ssl:// to use Implicit TLS, or use
// prefix tls:// to use STARTTLS.
// Supported replacement variables:
// %h - user's IMAP hostname
// %n - hostname ($_SERVER['SERVER_NAME'])
// %t - hostname without the first part
// %d - domain (http hostname $_SERVER['HTTP_HOST'] without the first part)
// %z - IMAP domain (IMAP hostname without the first part)
// For example %n = mail.domain.tld, %t = domain.tld
$config['smtp_server'] = 'msa.hinet.net';

// SMTP port. Use 25 for cleartext, 465 for Implicit TLS, or 587 for STARTTLS (default)
$config['smtp_port'] = 587;

// SMTP username (if required) if you use %u as the username Roundcube
// will use the current username for login
$config['smtp_user'] = '';

// SMTP password (if required) if you use %p as the password Roundcube
// will use the current user's password for login
$config['smtp_pass'] = '';

由于 Hinet 的 SMTP Server 会对所属的网段转信,所以在 smtp_user 及 smtp_pass 中修改为 ” 即可,并将  smtp_server 改成 msa.hinet.net,存档后即可。

当开放至 Internet 时,我们不希望浏览器上输入目录位置时,可采 Virtual Host 的方式,对 httpd.conf 进行修改设定,然后重启 httpd 服务即可。httpd.conf 的修改如下:

# 'Main' server configuration
#
# The directives in this section set up the values used by the 'main'
# server, which responds to any requests that aren't handled by a
# <VirtualHost> definition.  These values also provide defaults for
# any <VirtualHost> containers you may define later in the file.
#
# All of these directives may appear inside <VirtualHost> containers,
# in which case these default settings will be overridden for the
# virtual host being defined.
#

<VirtualHost *:80>
    ServerAdmin  tom@ms.x-family.idv.tw
    DocumentRoot /var/www/html/webmail
    ServerName   webmail.x-family.idv.tw
</VirtualHost>

在 Web Mail 中,电子邮件的附加档案大小限制在 8M 以内,若要将档案大小放宽至 30M,则需要修改 /etc/php.ini 的 upload_max_filesize 设定值,如下所示:

; Maximum allowed size for uploaded files.
; http://php.net/upload-max-filesize
upload_max_filesize = 30M

重启 httpd 服务后,浏览器只需输入 http://webmail.x-family.idv.tw 即可进入网页邮箱的登入页面。

[root@localhost html]# systemctl restart httpd