@TOC最近使用群辉7.2做企业内部的电子邮件服务器,其他都挺好,到了电话本这里,需要安装globaladdressbook,这个插件,而且也需要用到composer去安装。倒是可以装上,可不起用。后来发现是mail station所使用的roundcube,版本太低,已经无法兼容插件。以下是的群辉7.0平台部署前后端电子邮件的过程:
步骤:
- 自然安装好docker,mail server mail station,并且做一些简单测试,如打开smtp iimap pop3,fqnm指定域名。,mailstation 用超级用户登录,默认host,localhost,不用变,然后在ssh中,
sudo docker run -e ROUNDCUBEMAIL_DEFAULT_HOST=mail -e ROUNDCUBEMAIL_SMTP_SERVER=mail -p 8000:80 -d roundcube/roundcubemail
https://hub.docker.com/r/roundcubeorg/roundcubemail
-
这样运行会有一个random erorr报错,卡死,原因是appach服务器不支持naslinux内核。所以带标签建立docker,去除apach。标签使用 -d roundcube/roundcubemail:latest-fpm-alpine
这是我使用的版本,因为只有fpm php的解释器。所以 -
docker exec -it containIDfirechar bash 修复nginx环境,apk add nginx。 在/etc/nginx/config类似目录修改配置,加入php的9000的解析代理,并指定/var/www/html 这个工作目录。php配置代码按端口来应该是9000.也可用sock文件,我不会,基本复制了nas里面nginx配置的信息。vi /etc/hosts加入邮件服务器的解析。邮件服务器ip和域名。需要/endpoint.sh里加入nginx
-
DSM 打开docker面板,停止本容器,打开编辑,高级设置,在环境变量中修改使用的端口,SMTP,25.server和host用/etc/hosts指向上条中hosts的名字。只要这三个参数
-
这时就能打开映射过来的端口,登录一下新版的邮件系统了。用nas的用户也就就mai server所使用的local验证,到此没有差错就能用户间收发邮件了。
-
让mailstation指向新服务 http://ip/mail 里的默认页面写成跳转到新端口,ssh 登录NAS vi /var/@appstore/mailstation/index.php, 改成写成location(http://ip:port) ,原网页备份,无此需要跳过。
-
安装丰富的插件,docker exec -it containIDfirechar bash 然后composer require --no-dev pluginname开心的使用吧。
注意事项:
简单记录我接下来的操作:
… 第一个加入password插件,这是一个自带插件,可以在setting里修改密码,从config.ini.php启用它。然后修改插件的配置文件,指定使用的driver,我用了httpapi。这里指定一个url,一个user,一个password。就能完成修改密码的操作了。的nas的后台,用任何一个web前端加入一个网址,接受这两个参数,然后调用sudo指令 sudo synouser --setpasswd user password、正常返回0, status 200、其他为非正常。 我用的python。感觉php更适合。毕竟mailstation本身就带一个运行环境,稍微修改就行。 在password的README中有使用sudo 不输入密码的说明,大概就的/etc/sudoer 中加入php或自己的web运行者,然后指定nopass 和synouser。
. … 第二个是电话本 composer require,globaladressbook,安装,config.ini.php. $config[‘plgins’]中加入globaladdressbook、可以加一个全局电话本,配置中group=true。可以使用分组。在导入中选择选项有一个selecter,选加入新分组。导入格式csv,列中有name,mail,group。这三个可以自动对应新user。这样一个带分组功能的电话本就有了。
. . 第三 启用ldap遇到困难,电话本的分组是两级的,只能分组用户,不能再分,于是打起了ldap的主意。目前还没成功。 的群辉安装ladp server套件。进行简单的(恶心)配置,可以无缝集成到群辉中,DSM控制面板-域/ldap,设置base-dn:dc=NAME, link-dn:uuid=root,dd=users,dc=name。密码就是主页输入的密码。这就能加入了。我测试发现ldap server里的群组是可以嵌套的,然而,
roundcube 里有个ldap addressbook 功能,并不能取出里面的分组,虽然它说支持,但是很久以前的消息了,缺乏一个现成的办法。 而使用ldap client经过相似的操作可以,取得用户数据。