Chúng ta sẽ cài đặt Roundcube, một webmail mạnh và đang được tiếp tục phát triển.
Cài đặt (nhấn Enter khi được hỏi)
Chúng ta cần giá trị hostname=$(hostname -f) và $adm_pwd mật khẩu của mailadmin có ở file ~/readme.txt
Script
#!/bin/bash
# Tên script: 09.webmail.sh
# Webmail roundcube
# © 2020 LNT <lnt@ly-le.info>
# version 20200801
#
echo 'Cài đặt Webmail roundcube...'
HOSTNAME=$(hostname)
DOMAIN=${HOSTNAME#*.}
ADM_PWD=$(sed -n '/mailadmin/{n;s/\s*password: \(.*\)/\1/;p;q}' ~/${DOMAIN}.txt)
apt update
apt install -y --fix-missing roundcube roundcube-plugins roundcube-plugins-extra roundcube-mysql
## Cấu hình website Roundcube ##
grep -q 'Alias /webmail' /etc/apache2/sites-available/mailserver-https.conf || sed "/<\/VirtualHost>/i \ Alias /webmail /var/lib/roundcube\n Include /etc/roundcube/apache.conf" -i /etc/apache2/sites-available/mailserver-http.conf
systemctl restart apache2
## Cấu hình Roundcube ##
sed -r "s/($config\['default_host'\]).*/\1 = 'tls:\/\/${HOSTNAME}';/
s/($config\['smtp_port'\]).*/\1 = 587;/" -i /etc/roundcube/config.inc.php
## password: cho phép user đổi mật khẩu ##
## managesieve: cho phép user quản lý mail rule ##
sed -r "/$config\['plugins'\] = array/ a \ \'managesieve\',\n \'password\'," -i /etc/roundcube/config.inc.php
## Cấu hình password plugin ##
cat > /etc/roundcube/plugins/password/config.inc.php << EOF
<?php
// Empty configuration for password
// See /usr/share/roundcube/plugins/password/config.inc.php.dist for instructions
// Check the access right of the file if you put sensitive information in it.
\$config=array();
\$config['password_driver'] = 'sql';
\$config['password_minimum_length'] = 12;
\$config['password_force_save'] = true;
\$config['password_algorithm'] = 'dovecot';
\$config['password_dovecotpw'] = '/usr/bin/doveadm pw -s BLF-CRYPT';
\$config['password_dovecotpw_method'] = '';
\$config['password_dovecotpw_with_method'] = true;
\$config['password_db_dsn'] = 'mysql://mailadmin:${ADM_PWD}@localhost/mailserve$
\$config['password_query'] = "UPDATE virtual_users SET password=%D WHERE email=$
?>
EOF
## Cấu hình sieve plugin ##
cat > /etc/roundcube/plugins/managesieve/config.inc.php << EOF
<?php
// Empty configuration for password
// See /usr/share/roundcube/plugins/managesieve/config.inc.php.dist for instruc$
// Check the access right of the file if you put sensitive information in it.
\$config=array();
\$config['managesieve_host'] = 'localhost';
?>
EOF
echo '' | mutt -s "From EloQ" -i ~/${DOMAIN}.txt postmaster@${DOMAIN}