搭建自己的网页邮箱聚合系统—cypht

以前一直使用的网易邮箱大师,确实很好用,但是免费版上限是10个邮箱,最近我的邮箱超过10个了,所以就想着换到了thunderbird,不过内存占用比网易大200M,而且不知道是不是我配置的问题,每天开机自启动后都会提示邮箱登录失败,会弹出好几个重试的弹框。

所以我就想着能不能在自己的服务器搭一个直接用网页访问邮件客户端,于是就找到了Cypht

环境准备

  1. 首先要有一台云服务器,可以选择雨云服务器,这是我目前用着还不错的,对新用户很友好,另外雨云还有云应用,可以直接部署Roundcube(也是一个邮件客户端,功能和cypht一样)

  2. 安装docker和docker compose

    手动安装:Debian / Ubuntu 安装 Docker 以及 Docker Compose 教程 - 烧饼博客

    或者去轩辕镜像,里面有一键安装的教程

  3. 安装mysql

开始安装

  1. 创建所需目录

    mkdir -p /home/cypht/data/log/{nginx,supervisord,php}
    mkdir /home/cypht/data/fonts
    mkdir /home/cypht/data/user_settings
    mkdir /home/cypht/data/user_attachments
    
  2. 进入目录

    cd /home/cypht
    
  3. 用vim编写配置文件,没有vim就apt install vim -y安装一下,一般都有

    vim docker-compose.yml
    

    i进入编辑模式,shift+insert将以下内容粘贴到里面

    version: '3'
    
    services:
      cypht:
        image: cypht/cypht:latest   # 现在最新版是2.7.0
        container_name: cypht
        restart: unless-stopped
        ports:
          - "8088:80"
        env_file:
          - ./cypht-prod.env
        volumes:
          - ./data/log/nginx:/var/log/nginx
          - ./data/log/php:/var/log/php
          - ./data/log/supervisord:/var/log/supervisord
          - ./data/fonts:/usr/local/share/cypht/site/fonts
          # 应用数据持久化目录
          - ./data/user_settings:/var/lib/hm3/users          # 用户配置和设置
          - ./data/user_attachments:/var/lib/hm3/attachments # 邮件附件
    

    然后esc退出编辑模型,输入:进入末行模式,然后输入wq回车即可完成保存并退出的操作

  4. 编写环境变量文件

    vim cypht-prod.env
    

    复制以下内容到cypht-prod.env

    AUTH_USERNAME=admin    # 登录用户名
    AUTH_PASSWORD=admin    # 登录密码
    DB_CONNECTION_TYPE=host
    DB_DRIVER=mysql         
    DB_HOST=your.mysql.com  # 数据库地址
    DB_PORT=3306            # 数据库端口
    DB_NAME=cypht           # 数据库名称
    DB_USER=root           # 数据库用户名
    DB_PASS='123456'  # 数据库密码
    
    ENABLE_REDIS=false
    
    SESSION_TYPE=DB
    USER_CONFIG_TYPE=DB
    

    也是保存退出即可

    目前用这些环境变量就够了,其他环境变量可参考https://github.com/cypht-org/cypht/blob/master/.env.example

    要了解每个变量的含义,参见这里的描述:cypht/config/app.php at master · cypht-org/cypht · GitHub

  5. 启动容器

    docker compose up -d
    

    如果镜像拉取不下来的话,去轩辕镜像搞个加速链接

    或者用毫秒镜像的加速连接(不过显示是307天前更新,也不知道还好不好使):docker pull docker.1ms.run/cypht/cypht:latest

    不管是用哪个加速链接拉取的镜像,到最后都要打个标签,不然配置文件不认

    docker tag  docker.1ms.run/cypht/cypht:latest  cypht/cypht:latest
    
  6. 去navicat看看数据库有没有表生成,出现这4张表就说明启动基本没问题,有问题的话用命令docker compose logs -f看看容器的日志,然后丢给AI(:))

  7. 去云服务器厂商的后台放行8088端口

  8. 然后用ip:8088就能访问cypht了

开始使用

  1. 输入cypht-prod.env中配置的用户名和密码即可登录

  2. 登录之后是英文的,先去setting​:right_arrow:site​:right_arrow:general​:right_arrow:language,选择Chinese Simplified,然后划到最下面点击保存,就变成中文了

  3. 之后添加邮箱,选择服务器:right_arrow:IMAP-JMAP-SMTP Servers​:right_arrow:Add a new server(我这里已经加了很多邮箱了)

  4. 比如先加个qq邮箱,这里需要授权码,授权码要去qq邮箱里获取

  5. 得到授权码之后,回到cypht填写邮箱信息,这里需要的密码就是授权码,填写完成后点击下一步

  6. 如果只是当做收件服务器的话就不用勾选Sender account,勾选的话可以在cypht里进行发件操作。

    端口都是用的加密端口,所要选择使用TLS

  7. 点击finish后,左侧列表就会出现电子邮件这个菜单,点击去就能看到你添加的邮箱了

  8. 添加其他邮箱也是一样的操作,163、189、139等等,他们的imap和smtp服务器百度查一下就知道了,记得用加密的端口,选择使用TLS

    谷歌邮箱的话还需要给服务器配置代理,否则服务器连不上外网,无法登录谷歌邮箱。当然,如果你是香港服务器那最好了,国内访问快,又能连外网

    配置代理用这个项目nelvko/clash-for-linux-install: :cat_with_wry_smile: 优雅地使用基于 clash/mihomo 的代理环境,之后我再抽个时间写它的教程吧

  9. last but not least,一定要保存!!!

    当你添加完邮箱之后,有没有发现左上角多了个小标志?点一下就会跳转到保存界面,输入你的登录密码,然后保存

    或者直接到设置:right_arrow:保存,然后进行保存

    就是因为这个保存太隐蔽了,导致我每次添加完邮箱后发现换个浏览器登录数据就没了,搞了一天,搜教程,问AI,都没有提到这个保存,最后想到这个左上角的小东西,点进去我就茅厕顿开了 :)

最后,欢迎来我的博客——火柴人儿的小站 - 仰望星空的打工人,欢迎留言~