自托管 WebMail 的选择 - RainLoop 和 Cypht
source link: https://azhuge233.com/%e8%87%aa%e6%89%98%e7%ae%a1-webmail-%e7%9a%84%e9%80%89%e6%8b%a9-rainloop-%e5%92%8c-cypht/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
文章目录 显示
再也无法忍受 Windows 自带(拉中之拉的)邮件客户端——更新频率比苹果 Mail 还慢,有幸下载到的邮件还有 95% 的几率无法自动正常显示
于是萌生了使用第三方邮件客户端的想法,但是几经搜索都没有找到满意的,手机 QQ 邮箱还有广告推送
因为平时只有接收验证码/看游戏推广的时候用到邮件,所以需求很简单:
- 能接收邮件并正常显示
- “能接收邮件”具体是指迅速下载邮件,而不是给我一个卡住的进度条/转转转的菊花圈(验证码都失效了还没下载完)
- 支持多个邮箱登录
- 甚至不需要发邮件功能
最好是这样的一个系统:WebMail 有单独的账户系统,登录 WebMail 的自带账户后链接多个邮箱获取邮件(并不是像 QQ 网页邮箱那种直接使用邮箱账号登录)
网上有很多开源自托管的 WebMail 服务,权衡搭建维护复杂度后决定尝试 RainLoop 和 Cypht,最终选择了Cypht,因为 RainLoop 需要直接使用邮箱账号登录,没有自带的账户系统
下文将展示如何在 Debian 10 下无域名搭建 RainLoop 和 Cypht
- Debian 10
以下指令均在 root 用户下执行,其他用户请酌情添加 sudo
RainLoop
下文将安装 RainLoop 标准版,标准版不能用于商业用途,可以个人非盈利使用
RainLoop 基于 PHP,需要安装 PHP(>= 5.4) 环境,执行
apt install php7.3 php7.3-dev php7.3-fpm php7.3-curl nginx unzip
检查 php-fpm 是否开启
获取并解压 RainLoop
wget http://www.rainloop.net/repository/webmail/rainloop-latest.zip mkdir /var/www/rainloop unzip rainloop-latest.zip -d /var/www/rainloop
cd /var/www/rainloop find . -type d -exec chmod 755 {} \; find . -type f -exec chmod 644 {} \; chown -R www-data:www-data .
这里默认 Web 服务器用户为 www-data(Debian 包管理安装的 nginx 均使用此用户),如果 Web 服务器使用了其他用户,则修改为对应用户
配置 Web 服务器
- 在 /etc/nginx/sites-available 下新建配置文件 rainloop,写入以下内容
server {listen 80 default_server;root /var/www/rainloop;index index.php;server_name [服务器 IP];location / {try_files $uri $uri/ =404;location ~ \.php$ {include snippets/fastcgi-php.conf;fastcgi_pass unix:/run/php/php7.0-fpm.sock;location ^~ /data {deny all;
server { listen 80 default_server; root /var/www/rainloop; index index.php; server_name [服务器 IP]; location / { try_files $uri $uri/ =404; } location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/run/php/php7.0-fpm.sock; } location ^~ /data { deny all; } }
- 软连接到 /etc/nginx/sites-enabled
ln -s /etc/nginx/sites-available/rainloop /etc/nginx/sites-enabled/rainloop
ln -s /etc/nginx/sites-available/rainloop /etc/nginx/sites-enabled/rainloop
- 启动 Web 服务器
nginx -tnginx -s reload
nginx -t # 无误后 nginx -s reload
浏览器访问 IP 地址进入 RainLoop
Cypht
由于本地安装 Cypht 的步骤非常繁琐,所以这里选择 docker
安装 docker / docker-compose
# docker curl -sSL https://get.docker.com | sh # docker-compose curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose chmod +x /usr/local/bin/docker-compose ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
编辑 docker-compose.yml
新建 cypht 目录,新建 docker-compose.yml
mkdir cypht cd cypht vim docker-compose.yml
写入以下内容
version: '3' services: db: image: mariadb:10 volumes: - ./db:/var/lib/mysql environment: - MYSQL_ROOT_PASSWORD=[MYSQL 的 root 密码] - MYSQL_DATABASE=cypht - MYSQL_USER=cypht - MYSQL_PASSWORD=[MYSQL 的 cypht 密码] cypht: image: sailfrog/cypht-docker:latest volumes: - ./cypht/users:/var/lib/hm3/users ports: - "80:80" environment: - CYPHT_AUTH_USERNAME=[cypht 登录账户名称] - CYPHT_AUTH_PASSWORD=[cypht 登录账户密码] - CYPHT_DB_CONNECTION_TYPE=host - CYPHT_DB_HOST=db - CYPHT_DB_NAME=cypht - CYPHT_DB_USER=cypht - CYPHT_DB_PASS=[MYSQL 的 cypht 密码] - CYPHT_SESSION_TYPE=DB
启动 Cypht
docker-compose pull # 无误后 docker-compose up -d
浏览器访问 IP 地址进入 Cypht
RainLoop
管理员界面
邮箱界面
Cypht
登陆后界面(可以设置登陆后进入邮箱界面)
主题描述很精准
接收邮件
Cypht 变更设置后需要再进入 Save 标签将设置写入磁盘,这一点不太方便
相关
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK