如何部署Roundcube imapsync插件?
- By : Will
- Category : WebMail
- Tags: imapsync, imapsync.pl, plugins, RCimapSync, Roundcube, 插件

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的缺点
– 无法同步联系人与日历
– 不适用于两端主机同时更新的双向同步环境(建议使用offlineimap或mbsync)
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
没有评论