lala.im:比Roundcube更好用的Webmail:RainLoop

運維技術·lala.im · 2020-04-30 · 121 人浏览

原文地址:https://lala.im/6902.html,請支持原作者!該處僅作轉載。

前段时间水了几篇关于邮件服务器搭建的文章,后来有人问我关于Roundcube这个Webmail的具体配置。。
我其实更喜欢用RainLoop,因为无论是安装/更新/日常使用都是RainLoop更舒服。这两个Webmail用久了你就可以体会的到。。
当时我用Roundcube只是想体验一下新出的那个UI界面。。好吧,这篇文章详细说一下RainLoop的相关安装配置。
首先你需要按照这篇文章配置好Postfix/Dovecot:
Debian10使用Postfix+Dovecot+Roundcube搭建邮件服务器

注:
1.如果你选择使用RainLoop,后续和Rspamd的集成配置会有一些出入,不要照搬这篇基于Roundcube的配置:
Rspamd与Postfix以及Dovecot的集成配置

2.RainLoop如果不需要用到“联系人”这个功能,可以不安装数据库。下面还是安装了Mariadb以及SQLite,这篇文章还是使用Mariadb,如果想使用SQLite可以跳过数据库这块的配置。
首先安装Nginx/Certbot/Mariadb/PHP:

apt -y update
apt -y install wget curl
apt -y install nginx python-certbot-nginx mariadb-server
apt -y install php7.3-common php7.3-fpm php7.3-imap php7.3-mysql php7.3-sqlite php7.3-mbstring php7.3-xml php7.3-intl php7.3-zip php7.3-gd php7.3-ldap php7.3-curl

修改PHP-FPM的上传限制:

sed -i "s/post_max_size = 8M/post_max_size = 10240M/g" /etc/php/7.3/fpm/php.ini
sed -i "s/upload_max_filesize = 2M/upload_max_filesize = 10240M/g" /etc/php/7.3/fpm/php.ini

重载PHP-FPM/设置Nginx/Mariadb/PHP-FPM开机自启:

systemctl reload php7.3-fpm
systemctl enable nginx mariadb php7.3-fpm

初始化数据库/登录到数据库内:

mysql_secure_installation
mysql -u root -p

创建数据库/创建用户/授权:

CREATE DATABASE rainloop CHARACTER SET utf8 COLLATE utf8_general_ci;
GRANT ALL PRIVILEGES ON rainloop.* TO [email protected] IDENTIFIED BY '设置你的数据库用户密码';
FLUSH PRIVILEGES;
quit

下载解压RainLoop的安装包,RainLoop分为社区版和普通版,这里选择安装普通版,因为普通版可以在后台一键更新,更易于维护:

mkdir -p /var/www/rainloop && cd /var/www/rainloop
wget http://www.rainloop.net/repository/webmail/rainloop-latest.zip
unzip rainloop-latest.zip
rm -rf rainloop-latest.zip

给予正确的权限:

chmod -R 755 /var/www/rainloop
chown -R www-data:www-data /var/www/rainloop

新建一个Nginx站点配置文件:

nano /etc/nginx/conf.d/rainloop.conf

写入如下配置:

server {
    listen       80;
    server_name  mail.233.fi; # 换成你的域名
    index        index.html index.php;
    root         /var/www/rainloop;
    client_max_body_size 128G;

    error_log /var/log/nginx/rainloop.error.log;
    access_log /var/log/nginx/rainloop.access.log;

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    location ^~ /data {
        deny all;
    }

    location ~ \.php$ {
        fastcgi_pass   unix:/run/php/php7.3-fpm.sock;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }
}

测试Nginx配置:

nginx -t

没问题的话使用certbot签发SSL证书:

certbot --nginx --agree-tos --no-eff-email --email [email protected]

打开你的域名访问到后台管理界面:
mail.233.fi/?admin
默认的管理员账号:admin,密码:12345
登录进去之后可以选择使用中文,以及修改上传附件大小:

範例
然后你需要立即修改管理员的密码:

範例
在之前我们配置了MySQL数据库,所以可以启用联系人功能,并选择使用MySQL存储数据(如果你只是个人使用,这里更推荐SQLite:)

範例
现在就可以来添加我们的SMTP/IMAP服务器了,点击域名-添加域名:

範例
按照下图来配置(一定要勾选使用短用户名登录,否则无法登录成功:)

範例
现在访问你的RainLoop前台登录邮箱,邮箱是你的用户名@domain,例如下图所示的格式:

範例
有人可能会疑惑,刚才不是在RainLoop后台配置了“使用短用户名登录”登录的时候应该不需要@domain了呀。
注意在RainLoop后台配置的“使用短用户名登录”是指RainLoop向Dovecot请求的时候使用短用户名而不是我们向RainLoop的请求使用短用户名。
如果要在RainLoop登录的时候不加@domain就能登录成功,那么还需要在RainLoop的后台进行如下配置:

範例
最后测试一下收发:

範例
收也没问题:

範例

運維技術 Email lala.im
Theme Jasmine by Kent Liao