前段时间水了几篇关于邮件服务器搭建的文章,后来有人问我关于Roundcube这个Webmail的具体配置。。
我其实更喜欢用RainLoop,因为无论是安装/更新/日常使用都是RainLoop更舒服。这两个Webmail用久了你就可以体会的到。。
当时我用Roundcube只是想体验一下新出的那个UI界面。。好吧,这篇文章详细说一下RainLoop的相关安装配置。
首先你需要按照这篇文章配置好Postfix/Dovecot:
注:
1.如果你选择使用RainLoop,后续和Rspamd的集成配置会有一些出入,不要照搬这篇基于Roundcube的配置:
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 rainloop@127.0.0.1 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 xxxxx@qq.com
打开你的域名访问到后台管理界面:
mail.233.fi/?admin
默认的管理员账号:admin,密码:12345
登录进去之后可以选择使用中文,以及修改上传附件大小:
然后你需要立即修改管理员的密码:
在之前我们配置了MySQL数据库,所以可以启用联系人功能,并选择使用MySQL存储数据(如果你只是个人使用,这里更推荐SQLite:)
现在就可以来添加我们的SMTP/IMAP服务器了,点击域名-添加域名:
按照下图来配置(一定要勾选使用短用户名登录,否则无法登录成功:)
现在访问你的RainLoop前台登录邮箱,邮箱是你的用户名@domain,例如下图所示的格式:
有人可能会疑惑,刚才不是在RainLoop后台配置了“使用短用户名登录”登录的时候应该不需要@domain了呀。
注意在RainLoop后台配置的“使用短用户名登录”是指RainLoop向Dovecot请求的时候使用短用户名而不是我们向RainLoop的请求使用短用户名。
如果要在RainLoop登录的时候不加@domain就能登录成功,那么还需要在RainLoop的后台进行如下配置:
最后测试一下收发:
收也没问题:
看完文章 我湿了
“如果你选择使用RainLoop,后续和Rspamd的集成配置会有一些出入”,大佬能说说哪里不一样吗
文件夹名称不同,RainLoop登录后会自动创建文件夹,但是创建的文件夹名称和之前文章里面配置的名称不一样。
不好意思,请问配置哪里要改吗
要改的地方有点多,这里一下也说不清楚,大概dovecot的15-mailboxes.conf和几个sieve脚本文件的配置要改。
我过段时间重新写一篇详细的配置文章吧。
多谢大佬
抱歉,我刚才看了一下rainloop的设置,发现不用改dovecot的配置,可以原样照搬我之前那篇文章。。。
只要保证/var/www/rainloop/data/_data_/_default_/configs/application.ini文件内有这一行配置就可以:
use_imap_list_subscribe = On
参考:https://github.com/RainLoop/rainloop-webmail/issues/1303
能出一期Mail-in-a-box邮局搭建的教程吗?据说一键包把把大部分都配置好了,
可以啊,不过既然都用一键包了,为啥不用Poste.io,这个比Mail-in-a-box更方便,Docker一把梭:https://lala.im/4213.html