1 最后由 yaoming (2012-12-14 09:02:26) 编辑

主题: 请问张工,iredmail能实现这个功能吗?

==== 必填信息。没有填写将不予回复 ====
- iRedMail 版本: 0.7.4
- 使用的 Linux/BSD 发行版名称及版本号: centos 6.2
- 与您的问题相关的日志信息:
====
张工,我现在想实现这样的功能:一个部门的邮箱与一个个人的邮箱绑定在一起,登陆个人邮箱也可以看到别人发送到部门邮箱的邮件。请问,iRedmail有这样的功能吗?

回复: 请问张工,iredmail能实现这个功能吗?

yaoming 写道:

张工,我现在想实现这样的功能:一个部门的邮箱与一个个人的邮箱绑定在一起,登陆个人邮箱也可以看到别人发送到部门邮箱的邮件。请问,iRedmail有这样的功能吗?

可以,这个功能在 iRedMail (Dovecot) 里称为 IMAP share folder。请在 http://www.iredmail.org/wiki/ 里搜索 "imap share folder"。

3 最后由 yaoming (2012-12-24 16:08:31) 编辑

回复: 请问张工,iredmail能实现这个功能吗?

张工,按照你的回复,我查了一下,找到了“Share IMAP Folder" 的文档(http://www.iredmail.org/wiki/index.php?title=IRedMail/FAQ/Share.IMAP.Folder),并按照文章的内容设置dovecot.conf文件
protocol lda {
    mail_plugins = ... acl
}

protocol imap {
    mail_plugins = ... acl imap_acl
}
但是在用测试时,出现错误,显视如下:
* OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE IDLE START
TLS AUTH=PLAIN AUTH=LOGIN] Dovecot ready.
. login zy.kjk@domain.org 888
. OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE IDLE SORT
SORT=DISPLAY THREAD=REFERENCES THREAD=REFS MULTIAPPEND UNSELECT CHILDREN NAMESPA
CE UIDPLUS LIST-EXTENDED I18NLEVEL=1 CONDSTORE QRESYNC ESEARCH ESORT SEARCHRES W
ITHIN CONTEXT=SEARCH LIST-STATUS QUOTA ACL RIGHTS=texk] Logged in
. setacl Sent zy.yaoming@domain.org rli
. BAD Error in IMAP command SETACL: ACLs disabled.
显视ACLs disabled,并且我发现这样设置后,发送的邮件在“已发送列表”中不显视。
文档显视的是在dovecot 1.2下,而我用的是dovecot 2.0.8,是不是版本的问题。我也查看了
Mailbox sharing between users(http://wiki2.dovecot.org/SharedMailboxes/Shared),但是它与Share IMAP Folder存在很大的区别,请问在dovecot 2.0.8下怎样Share IMAP Folder.

回复: 请问张工,iredmail能实现这个功能吗?

在 protocol imap {} 里你同时使用了 acl 和 imap_acl,应该只要 imap_acl 就可以的。试试看

5 最后由 yaoming (2013-01-05 09:36:16) 编辑

回复: 请问张工,iredmail能实现这个功能吗?

张工,还是不行。好像dovecot 2.0.8 不支持这样设置。然后我接照官方的文档,做了如下设置。
更改dovecot.conf,如下:

plugin {
...
    acl = vfile
    acl_shared_dict = proxy::acl
}

dict {
   ....
    acl = pgsql:/etc/dovecot/dovecot-dict-sql.conf.ext
}

protocol imap {
       .....
        mail_plugins = ... acl imap_acl
}

namespace {
    type = private
    separator = /
    prefix =
    inbox = yes
    # location defaults to mail_location.
}

namespace {
    type = shared
    separator = /
    prefix = Shared/%%u/
    location = maildir:/%%Lh/Maildir/:INDEX=/%%Lh/Maildir/Shared/%%u
    # this namespace should handle its own subscriptions or not.
    subscriptions = no
    list = children
}

新建dovecot-dict-sql.conf.ext
connect = host=127.0.0.1 dbname=vmail user=vmailadmin password=BG4synv3KJLV0OMq9lgjMkHEx0UW9R
map {
  pattern = shared/shared-boxes/user/$to/$from
  table = share_folder
  value_field = dummy

  fields {
    from_user = $from
    to_user = $to
  }
}

在用命令setacl Sent to@damin.org rli 时,它显视成功,但是在vmail 的share_folder
表中,没有记录。查看dovecot.log,有如下错误。
Jan 04 11:25:16 dict: Error: pgsql(127.0.0.1): Connect failed to database vmail: could not connect to server: Connection refused
Jan 04 11:25:16 dict: Error:     Is the server running on host "127.0.0.1" and accepting
Jan 04 11:25:16 dict: Error:     TCP/IP connections on port 5432?
Jan 04 11:25:17 dict: Error: pgsql(127.0.0.1): Connect failed to database vmail: could not connect to server: Connection refused
Jan 04 11:25:17 dict: Error:     Is the server running on host "127.0.0.1" and accepting
Jan 04 11:25:17 dict: Error:     TCP/IP connections on port 5432?
Jan 04 11:25:17 dict: Error: pgsql(127.0.0.1): Connect failed to database vmail: could not connect to server: Connection refused
Jan 04 11:25:17 dict: Error:     Is the server running on host "127.0.0.1" and accepting
Jan 04 11:25:17 dict: Error:     TCP/IP connections on port 5432?
Jan 04 11:25:17 dict: Error: pgsql(127.0.0.1): Connect failed to database vmail: could not connect to server: Connection refused
Jan 04 11:25:17 dict: Error:     Is the server running on host "127.0.0.1" and accepting
Jan 04 11:25:17 dict: Error:     TCP/IP connections on port 5432?
Jan 04 11:25:22 dict: Error: pgsql(127.0.0.1): Connect failed to database vmail: could not connect to server: Connection refused
Jan 04 11:25:22 dict: Error:     Is the server running on host "127.0.0.1" and accepting
Jan 04 11:25:22 dict: Error:     TCP/IP connections on port 5432?
Jan 04 11:25:22 dict: Error: pgsql(127.0.0.1): Connect failed to database vmail: could not connect to server: Connection refused
Jan 04 11:25:22 dict: Error:     Is the server running on host "127.0.0.1" and accepting
Jan 04 11:25:22 dict: Error:     TCP/IP connections on port 5432?
Jan 04 11:25:22 dict: Error: pgsql(127.0.0.1): Connect failed to database vmail: could not connect to server: Connection refused
Jan 04 11:25:22 dict: Error:     Is the server running on host "127.0.0.1" and accepting
Jan 04 11:25:22 dict: Error:     TCP/IP connections on port 5432?

请问是什么原因,是我那里设置不对吗?我是完全按官网上的文档来的啊,张老大帮帮忙,给看看。

回复: 请问张工,iredmail能实现这个功能吗?

张工,各位大侠帮帮忙嘛。