如何使用Apache / Nginx在Ubuntu 20.04上安装RainLoop Webmail
在先前的文章中,我们讨论了如何从头开始在Ubuntu上设置您自己的邮件服务器。 本教程将向您展示如何在具有Apache或Nginx Web服务器的Ubuntu 20.04上安装RainLoop Webmail。 RainLoop是一个使用PHP编写的简单,现代,快速和开放源代码的基于Web的电子邮件客户端。
RainLoop网络邮件功能
- 现代化的网络界面,可让您上传自定义主题。
- 快速轻巧
- 同时支持SMTP和IMAP。
- 支持多个帐户,这意味着您可以从一个位置访问所有电子邮件地址。
- 支持两因素认证。
- 与Facebook,Twitter,Google和Dropbox集成。
- 直接访问邮件服务器,无需数据库。
- 易于安装和升级(在管理面板中一键式升级)
。 RainLoop有两个版本:
- 社区版 根据AGPL v3许可发布
- 标准版 根据RainLoop软件许可发布。
在本教程中,我们将使用免费的开源社区版本。
步骤1:安装Apache,PHP7或Nginx,PHP7
如果使用Apache和PHP7,请使用以下命令在Ubuntu 20.04上安装它们:
sudo apt update sudo apt install apache2 php7.4 libapache2-mod-php7.4
如果使用Nginx和PHP7,请使用以下命令安装它们:
sudo apt update sudo apt install nginx php7.4 php7.4-fpm
并安装RainLoop所需的以下PHP扩展。
sudo apt install php7.4-curl php7.4-xml
步骤2:在Ubuntu 20.04上下载并安装RainLoop Webmail
首先,在当前工作目录中为Rainloop创建一个目录。
mkdir rainloop
将CD复制到目录中,并使用以下命令下载最新的RainLoop社区版本:
cd rainloop curl -s http://repository.rainloop.net/installer.php | php
完成后,将该目录移动到 /var/www/
。
cd .. sudo mv rainloop /var/www/
现在设置Web服务器用户(www-data
)作为所有者。
sudo chown www-data:www-data /var/www/rainloop/ -R
步骤3:为RainLoop配置虚拟主机
我们可以使用Apache或Nginx Web服务器。
阿帕奇
如果要使用Apache Web服务器,请使用以下命令创建虚拟主机文件:
sudo nano /etc/apache2/sites-available/rainloop.conf
将以下文本放入文件中。 用您的实际信息替换红色文本。
<VirtualHost *:80> ServerName mail.example.com DocumentRoot "/var/www/rainloop/" ErrorLog "/var/log/apache2/rainloop_error_log" TransferLog "/var/log/apache2/rainloop_access_log" <Directory /> Options +Indexes +FollowSymLinks +ExecCGI AllowOverride All Order deny,allow Allow from all Require all granted </Directory> <Directory /var/www/rainloop/data> Require all denied </Directory> </VirtualHost>
保存并关闭文件。 然后启用此虚拟主机。
sudo a2ensite rainloop.conf
并重新加载Apache。
sudo systemctl reload apache2
Nginx的
如果您想使用Nginx Web服务器,请使用以下命令创建虚拟主机文件:
sudo nano /etc/nginx/conf.d/rainloop.conf
将以下文本放入文件中。 用您自己的域名替换mail.example.com。
server { listen 80; listen [::]:80; server_name mail.example.com; root /var/www/rainloop; index index.php index.html; access_log /var/log/nginx/rainloop_access.log; error_log /var/log/nginx/rainloop_error.log; location / { try_files $uri $uri/ /index.php?$query_string; } location ~ ^/(.+.php)$ { try_files $uri =404; fastcgi_pass unix:/run/php/php7.4-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include /etc/nginx/fastcgi_params; } location ^~ /data { deny all; } }
保存并关闭文件。 然后测试Nginx配置。
sudo nginx -t
如果测试成功,请重新加载Nginx配置。
sudo systemctl reload nginx
步骤4:安装TLS / SSL证书
如果要将HTTPS添加到Webmail,则可以从Let’s Encrypt CA获得免费的TLS / SSL证书。 首先,让我们安装 certbot
客户。 以下命令将从官方certbot PPA安装客户端和apache插件。
sudo apt install software-properties-common sudo add-apt-repository ppa:certbot/certbot sudo apt update sudo apt install certbot
如果使用Apache Web服务器,则还需要安装Certbot Apache插件。
sudo apt install python3-certbot-apache
然后发出以下命令以获得免费的TLS / SSL证书。 将红色文本替换为您的实际电子邮件地址和域名。
sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d mail.example.com
如果使用Nginx Web服务器,则需要安装Certbot Nginx插件。
sudo apt install python3-certbot-nginx
然后使用Nginx插件通过运行以下命令来获取并安装证书。 将红色文本替换为您的实际电子邮件地址和域名。
sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d mail.example.com
您将看到以下文本,表明您已成功获得TLS证书。 您的证书和链条已保存在 /etc/letsencrypt/live/mail.example.com/
目录。
现在,如果您访问 http://mail.example.com
,您将被重定向到 https://mail.example.com
。
步骤5:配置RainLoop Webmail
通过以下URL登录到RainLoop管理面板。
mail.example.com/?admin
默认用户名是 admin
默认密码是 12345
。
登录后,建议更改用户名和密码,因为 admin
是一个简单的目标。 点击 security
标签在左窗格中。 首先更新您的密码,然后重新登录并更新您的用户名。
要通过RainLoop访问电子邮件,您需要在 Domains
标签。 默认情况下,添加了4个电子邮件域: gmail.com
, outlook.com
, qq.com
, yahoo.com
。
这些电子邮件域的SMTP服务器设置和IMAP服务器设置由RainLoop配置,但默认情况下仅启用Gmail。 要启用其他3个电子邮件域,只需在复选框中打勾即可。
要访问您自己的电子邮件服务器,请单击 Add Domain
按钮,然后输入您自己的电子邮件服务器的IMAP和SMTP服务器设置。
- IMAP:服务器 mail.example.com, 港口 143,安全 STARTTLS。
- SMTP:服务器 mail.example.com, 港口 587,安全 STARTTLS。 勾选使用身份验证。
如果Rainloop和Postfix / Dovecot在同一服务器上运行,则可以使用以下配置,因此您的服务器不必在DNS中查找域并建立TLS连接。
- IMAP:服务器 127.0.0.1, 港口 143,安全 没有。
- SMTP:服务器 127.0.0.1, 港口 25,安全 没有。 不要在端口25上使用身份验证。
您还需要通过选中右侧的复选框或错误来启用自己的电子邮件域 domain is not allowed
登录您的电子邮件地址时将出现。
完成配置后,在浏览器地址栏中输入RainLoop Webmail域名,不输入 /?admin
后缀。
mail.example.com
并登录到您的电子邮件帐户。
RainLoop网络邮件
如果身份验证失败,则可能需要在IMAP服务器设置页面中启用短登录。
您只需要做这些,即可访问Gmail,Outlook邮件或您自己的电子邮件域中的电子邮件。 如果添加多个电子邮件帐户,则可以从用户下拉菜单轻松地在它们之间切换。 确实很酷! 您还可以配置其他设置并自定义Webmail界面。
从电子邮件标题中删除敏感信息
默认情况下,Rainloop将添加一个 X-Mailer
电子邮件标题,指示您正在使用Rainloop Webmail和版本号。 您可以告诉Postfix忽略它,以便收件人看不到它。 运行以下命令以创建头检查文件。
sudo nano /etc/postfix/smtp_header_checks
将以下行放入文件中。
/^X-Mailer.*RainLoop/ IGNORE
保存并关闭文件。 然后编辑Postfix主配置文件。
sudo nano /etc/postfix/main.cf
在文件末尾添加以下行。
smtp_header_checks = regexp:/etc/postfix/smtp_header_checks
保存并关闭文件。 然后运行以下命令重建哈希表。
sudo postmap /etc/postfix/smtp_header_checks
重新加载Postfix以使更改生效。
sudo systemctl reload postfix
现在Postfix将不包括 X-Mailer: Rainloop
在电子邮件标题中。
增加附件大小限制
如果使用PHP-FPM运行PHP脚本,则上传到Rainloop的图像(如图像),PDF文件等文件不能大于2MB。 要增加上传大小限制,请编辑PHP配置文件。
sudo nano /etc/php/7.4/fpm/php.ini
找到以下行(行846)。
upload_max_filesize = 2M
如下更改值。 请注意,此值不应大于Postfix SMTP服务器设置的附件大小限制。
upload_max_filesize = 50M
然后找到以下行(694行)。
post_max_size = 8M
更改PHP将接受的POST数据的最大大小。
post_max_size = 50M
保存并关闭文件。 或者,您可以运行以下两个命令来更改值,而无需手动打开文件。
sudo sed -i 's/upload_max_filesize = 2M/upload_max_filesize = 50M/g' /etc/php/7.4/fpm/php.ini sudo sed -i 's/post_max_size = 8M/post_max_size = 50M/g' /etc/php/7.4/fpm/php.ini
然后重新启动PHP-FPM。
sudo systemctl restart php7.4-fpm
Nginx还设置了上传文件大小的限制。 Nginx设置的默认最大上传文件大小限制为1MB。 如果您使用Nginx,请编辑Nginx配置文件。
sudo nano /etc/nginx/conf.d/mail.example.com.conf
在SSL虚拟主机中添加以下行。
client_max_body_size 50M;
保存并关闭文件。 然后重新加载Nginx以使更改生效。
sudo systemctl reload nginx
接下来,登录到Rainloop管理面板(https://mail.example.com/?admin
)并更改附件大小限制。
保存更改。 您需要从网络邮件注销并重新登录,以使更改生效。
将图像上传为自定义主题
用户可以通过单击左下角的齿轮图标并选择 themes
左侧栏上的标签。 您也可以上传图像作为自定义主题。
我的自定义主题。
包起来
我希望本教程可以帮助您在Ubuntu 20.04上安装RainLoop Webmail。 与往常一样,如果您发现此帖子有用,请订阅我们的免费新闻简报,以获取更多提示和技巧。 保重🙂