如何获得通过IMAP(而不是POP)连接的dovecot电子邮件服务器的用户列表?
我们的服务器设置为通过LDAP / PAM进行身份validation。 有没有简单的方法来获得通过IMAP而不是POP访问邮件的用户列表? 我正准备将我们的服务器迁移到Google Apps,并且只想将我的IMAP用户的所有邮件迁移(几百个用户中有几百个)。 POP邮件显然将从客户端单独迁移。
我宁愿只迁移IMAP用户,而不是整个域,其中包括将已经在客户端的电子邮件程序中读取/sorting/删除的服务器上的一堆POP邮件迁移。 迁移所有额外无用的POP邮件可能会浪费数周的迁移时间。
我想parsing一些日志,看看谁已经连接到一个IMAP端口(995或993)会给我一个清单将工作,如果有人可以帮助我这样做。 我知道我有原始的dovecot日志,但我希望有一个更清洁的解决scheme。
要获取login名单:
cat /var/log/mail.log | grep imap-login
现在我们需要把它切割成更有用的东西 – 过滤出用户名,并消除重复:
cat /var/log/mail.log | grep imap-login:\ Login | sed -e 's/.*Login: user=<\(.*\)>, method=.*/\1/g' | sort | uniq
这将获得完成(提供一个名称)的imaplogin,使用sed与正则expression式剪切名称,sorting它,然后采取唯一的名称。