如何部署Roundcube imapsync插件?

WebMail

1 基础知识

1.1 Roundcube imapsync

1.1.1 基本概念

– Roundcube imapsync是基于Roundcube开发的插件

1.1.2 插件的作用

– 插件允许用户在自动同步所有IMAP文件夹的同时,也允许从外部邮箱同步邮件
– 插件由于包含完全重写的imapsync.pl(fetchmail.pl),所以更加安全

1.1.3 插件的特点

– 快速可靠
– 自动同步所有IMAP文件夹
– 包含一个完全重写和更加安全的imapsync.pl(Perl脚本)

1.1.4 安装的条件

– 已经安装Roundcube Web客户端
– 已经安装IMAP服务
– 已经安装imapsync同步工具
– 已经安装MySQL数据库

1.2 IMAPSync同步工具

1.2.1 IMAPSync的简介

IMAPSync是属于命令行工具,用于不同主机之间通过IMAP同步邮箱

1.2.2 IMAPSync的适用系统

– Windows
– Linux
– Mac OS X

1.2.3 IMAPSync的特点

– 增量传输,只同步传输差异主机之间的差异数据
– 递归同步,可同步整个目录树的数据
– 命令工具,运行于命令行

1.2.4 IMAPSync的缺点

– 无法同步联系人与日历
– 不适用于两端主机同时更新的双向同步环境(建议使用offlineimapmbsync

2 最佳实践

2.1 系统环境配置

2.1.1 环境信息

hostname = roundcube.cmdschool.org
ip address = 10.168.0.100

2.1.2 安装常用的工具包

yum install -y wget

2.2 软件环境配置

2.2.1 Roudcube环境

请按如下教程部署Roudcube环境,
https://www.cmdschool.org/archives/3039
注:以上搭建的Roudcube端连接的IMAP服务必须允许在本机,否则下面的配置就没有意义(无法使用)

2.3 安装IMAPSync

2.3.1 配置yum源

yum install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm

2.3.2 安装软件包

yum install -y imapsync

2.4 部署插件

2.4.1 下载源代码

cd ~
wget https://github.com/server-gurus/RCimapSync/archive/1.1.2.tar.gz -O RCimapSync-1.1.2.tar.gz

2.4.2 解压源代码

tar -xf RCimapSync-1.1.2.tar.gz

2.4.3 部署源代码

mv RCimapSync-1.1.2/ /var/www/mail.cmdschool.org/plugins/imapsync
chown apache:nginx -R /var/www/mail.cmdschool.org/plugins/imapsync/
chmod 775 -R /var/www/mail.cmdschool.org/plugins/imapsync/

2.4.4 配置数据库权限

mysql -uroot -p
create user 'imapsync'@'localhost' identified by 'imapsyncpwd';
grant all privileges on roundcubemail.imapsync to 'imapsync'@'localhost';
flush privileges;
exit

另外,建议使用如下方法,

mysql -uimapsync -pimapsyncpwd -h localhost

2.4.5 配置数据库连接

cp /var/www/mail.cmdschool.org/plugins/imapsync/bin/config.sample /var/www/mail.cmdschool.org/plugins/imapsync/bin/config.conf
vim /var/www/mail.cmdschool.org/plugins/imapsync/bin/config.conf

修改如下配置:

$db_conf{'host'}        = "localhost";
$db_conf{'db'}          = "roundcubemail";
$db_conf{'username'}    = "imapsync";
$db_conf{'password'}    = "imapsyncpwd";

2.4.6 导入数据库结构

mysql -uimapsync -pimapsyncpwd roundcubemail < /var/www/mail.cmdschool.org/plugins/imapsync/SQL/mysql.initial.sql

2.4.7 测试运行

cd /var/www/mail.cmdschool.org/plugins/imapsync/bin
./imapsync.pl

你可能需要根据错误的提示解决依赖关系,

yum install -y perl-DBI perl-DBD-MySQL perl-Sys-Syslog perl-Unix-Syslog perl-LockFile-Simple

你也可需要根据提示为脚本创建lock文件的存储文件夹,

mkdir /var/run/imapsync

2.5 启用插件与定义配置

2.5.1 设置常规检查

vim /var/www/roundcubemail_kolab/config/config.inc.php

修改如下配置:

$config['plugins'] = array('plugin1','plugin2',[...],'imapsync');

2.5.2 设置常规检查

crontab -u mail -e

加入如下配置:

*/5 * * * * cd /var/www/mail.cmdschool.org/plugins/imapsync/bin/;perl imapsync.pl >/dev/null 2>&1

2.5.3 修改可选配置

cp /var/www/mail.cmdschool.org/plugins/imapsync/config.inc.php.dist /var/www/mail.cmdschool.org/plugins/imapsync/config.inc.php
vim /var/www/mail.cmdschool.org/plugins/imapsync/config.inc.php

可修改如下参数:

// max external accounts to fetch per mailbox
$rcmail_config ['imapsync_limit'] = 10;

// allow remote folder setting
$rcmail_config ['imapsync_folder'] = false;

注:以上配置将覆盖“bin/config.conf”的默认值

参阅文档:
==============

Roundcube imapsync插件简介:
—————————
https://plugins.roundcube.net/search/?tags=imapsync

Roundcube imapsync插件源代码(github)
————————————–
https://github.com/server-gurus/RCimapSync

IMAPSync的官方网站:
——————
http://imapsync.lamiral.info/

IMAPSync的源代码(github):
—————————-
https://github.com/imapsync/imapsync

IMAPSync的安装方法:
————————-
http://imapsync.lamiral.info/#install

没有评论

发表评论

WebMail
如何安装Roundcube的全局通讯录?

1 简介 地址簿,提供丰富的界面来管理你的联系人信息(保存或访问你个人或共享的地址簿) 2 最佳实践 …

WebMail
如何部署WebMail Roundcube官方移动版?

1 基础知识 1.1 前言 Roundcube Webmail 1.4-beta是具有里程碑性质的一 …

WebMail
如何熟悉WebMail Roundcube的配置?

1 基础知识 1.1 搭建环境 阅读本章的参数,你需要先搭建WebMail Roundcube的环境 …