netandreus / imap-sync

IMAP ➝ SQL 同步引擎

v0.0.1 2020-03-24 07:40 UTC

README

此应用程序将 IMAP 账户同步到本地 MySQL 数据库。您可以将此作为定期下载电子邮件的独立方法。脚本旨在永久运行,几乎无需维护 :D

Web 客户端管理员界面

Sync Web Screenshot

命令行界面

Sync Screenshot

内容

依赖项

简而言之,此应用程序需要以下内容

  • PHP 7.0 或更高版本
  • MySQL / MariaDB 10.0 或更高版本
  • ext-pdoext-iconvext-mbstring

建议安装 ext-mysqlndphp7.0-common 应已安装在您的系统上。

版本 7.1 和 7.2 已验证正常工作,且代码库正在 7.2 版本上积极开发。有关 PHP 5.6 的信息见下文。

1. 支持 PHP 5.6

此应用程序的 1.0.0 版本支持 PHP 5.6,并与当时快照中所有 composer 依赖项兼容。

如果您想使用它,请运行以下命令

$> git checkout 1.0.0

所有当前和未来的更新将仅支持 PHP 7.0 及更高版本!

安装

1. 创建数据库

要开始,请确保您已运行 MariaDB 或 MySQL 并发出以下命令

MariaDB [(none)]> CREATE DATABASE `libremail`;

数据库名称是配置选项,因此如果您想将其更改为不是 libremail 的其他名称,请确保您已更新配置设置

1.1 max_allowed_packet(MariaDB/MySQL)

由于可能写入 SQL 的数据量(长电子邮件消息文本),需要启用 MySQL 数据库的配置设置,以允许在查询中发送更大的数据包大小。为此,将以下行添加到您的 SQL 配置文件中

[mysqld]
max_allowed_packet = 512M

您不必使用 512MB 作为数据包大小,但建议使用 16MB 或更大的数据包。

2. 配置应用程序

配置选项保存在 config/default.ini 中。不要修改此文件或其中的任何内容。所有更改都应进入 config/local.ini,并且应采用与默认文件相同的 INI 文件格式 如果您想更改 config/local.ini 但不想提交更改,请运行以下命令

$> git update-index --assume-unchanged config/local.ini

查看所有可能的配置选项:配置选项

3. 安装 Composer 依赖项

通过 Composer 下载供应商包

$> composer install

这将创建一个包含项目所有 PHP 依赖项的 vendor 目录。

4. 运行诊断测试

您可以通过运行测试来检查应用程序是否已正确安装,以及是否满足所有依赖项和先决条件。要这样做,请运行

$> ./sync --diagnostics

您还可以使用-d作为简短标志。这将检查数据库连接,确认所有路径可写,以及进行一些其他测试,以查看同步脚本是否可以正确运行。这些测试在同步发生之前在后台运行,但在出现故障时,您可以以此方式访问它们以获取更详细的信息。

5. 运行SQL迁移脚本

在您开始同步之前,请运行SQL数据库脚本

$> ./sync --updatedb

您还可以使用-u作为简短标志。这将创建所有SQL表并运行其他数据库操作。

运行同步

如果您想查看您有哪些选项,可以运行./sync --help以查看选项列表。查看所有可能的配置选项及其详细信息:配置选项

要使用CLI工具(调试模式),请运行

$> ./sync

并按照屏幕上的说明操作。

要使用Web工具,请运行

$> ./libremail

此工具将静默运行并将日志写入/logs。打开您的浏览器,访问localhost:9898以查看Web客户端。

使用初始化脚本或管理器

如果您希望始终在后台运行此同步脚本,则建议您使用某种形式的监督器或看门狗程序来监控脚本是否因任何原因失败。以下是一些Linux和MacOS的指南

提交错误

所有错误和请求都跟踪在这个存储库的Github Issues中。查看问题页面以查看已打开和关闭的票据。在报告任何问题之前,请搜索已关闭的问题,看看是否已解决 :)

这是一个在业余时间工作的开源项目,因此不能保证您报告的任何内容都会被查看或修复!不过,我将尽个人努力及时解决问题,而且我可能会很快检查它,因为我在用这个项目管理我自己的电子邮件。