[Dovecot] need help with public namespaces

Pierfrancesco Caci p.caci at seabone.net
Fri Feb 18 13:39:24 EET 2011



Hello,
I need some guidance with setting up a public namespace with 
per-user \Seen flags. 

What I want to do is that a group of users access the public 
namespaces and if user A reads a message, user B should still
see it as new until he reads it himself. 

This is not happening now, and I can't figure out why.

Here's the config:


# 1.2.9: /etc/dovecot/dovecot.conf
# OS: Linux 2.6.32-28-server x86_64 Ubuntu 10.04.2 LTS ext3
log_timestamp: %Y-%m-%d %H:%M:%S 
protocols: imap imaps managesieve
listen(default): *
listen(imap): *
listen(managesieve): localhost:2000
ssl_cert_file: /etc/apache2/ssl/cert.pem
ssl_key_file: /etc/apache2/ssl/key.pem
login_dir: /var/run/dovecot/login
login_executable(default): /usr/lib/dovecot/imap-login
login_executable(imap): /usr/lib/dovecot/imap-login
login_executable(managesieve): /usr/lib/dovecot/managesieve-login
mail_privileged_group: mail
mail_location: maildir:/var/mail/vhosts/%d/%n
mbox_write_locks: fcntl dotlock
mail_executable(default): /usr/lib/dovecot/imap
mail_executable(imap): /usr/lib/dovecot/imap
mail_executable(managesieve): /usr/lib/dovecot/managesieve
mail_plugin_dir(default): /usr/lib/dovecot/modules/imap
mail_plugin_dir(imap): /usr/lib/dovecot/modules/imap
mail_plugin_dir(managesieve): /usr/lib/dovecot/modules/managesieve
namespace:
  type: private
  separator: .
  inbox: yes
  list: yes
  subscriptions: yes
namespace:
  type: public
  separator: .
  prefix: Public.
  location: maildir:/var/mail/vhosts/%d/public:INDEX=~/Maildir/public
  list: yes
lda:
  postmaster_address: root at macchianera.noc.seabone.net
  mail_plugins: sieve
auth default:
  mechanisms: plain LOGIN CRAM-MD5
  passdb:
    driver: passwd-file
    args: username_format=%n /var/mail/vhosts/%d/shadow
  userdb:
    driver: passwd
  userdb:
    driver: passwd-file
    args: username_format=%n /var/mail/vhosts/%d/passwd
  socket:
    type: listen
    client:
      path: /var/spool/postfix/private/auth
      mode: 432
      user: postfix
      group: postfix
    master:
      path: /var/run/dovecot/auth-master
      mode: 384
      user: vmail
      group: vmail
plugin:
  acl: vfile
  sieve: ~/.dovecot.sieve
  sieve_dir: ~/sieve


Here's what's under public:

.
├── .BGPnagger
│   ├── cur
│   │   ├── 1298024872.M553584P13355.macchianera,S=11940,W=12297:2,S
│   │   ├── 1298024874.M298175P13355.macchianera,S=12139,W=12499:2,S
│   │   └── 1298028068.M644262P12557.macchianera,S=9494,W=9767:2,
│   ├── dovecot-uidlist
│   ├── dovecot.index
│   ├── dovecot.index.cache
│   ├── dovecot.index.log
│   ├── dovecot.shared
│   ├── maildirfolder
│   ├── new
│   └── tmp
├── .Drafts
│   ├── cur
│   ├── dovecot-uidlist
│   ├── dovecot.index.log
│   ├── dovecot.shared
│   ├── maildirfolder
│   ├── new
│   └── tmp
├── .INBOX
│   ├── cur
│   │   ├── 1298020672.M608242P31581.macchianera,S=297295,W=301283:2,S
│   │   ├── 1298021330.M553672P7078.macchianera,S=3048,W=3099:2,S
│   │   ├── 1298021331.M217403P7080.macchianera,S=21357,W=21799:2,S
│   │   ├── 1298024942.M601269P13353.macchianera,S=1796,W=1842:2,S
│   │   ├── 1298024944.M986717P13353.macchianera,S=2010,W=2060:2,S
│   │   ├── 1298024946.M545669P13353.macchianera,S=4413,W=4515:2,S
│   │   ├── 1298024947.M661693P13353.macchianera,S=17014,W=17392:2,RS
│   │   ├── 1298024957.M278853P13355.macchianera,S=20307,W=20745:2,RS
│   │   ├── 1298024958.M880860P13353.macchianera,S=15984,W=16381:2,RS
│   │   ├── 1298024959.M863311P13353.macchianera,S=21086,W=21669:2,RS
│   │   ├── 1298024960.M810244P13353.macchianera,S=18418,W=18679:2,S

[big snip]

│   │   └── 1298025182.M75551P15902.macchianera,S=15150,W=15524:2,S
│   ├── dovecot-keywords
│   ├── dovecot-uidlist
│   ├── dovecot.index
│   ├── dovecot.index.cache
│   ├── dovecot.index.log
│   ├── dovecot.index.log.2
│   ├── dovecot.shared
│   ├── maildirfolder
│   ├── new
│   └── tmp
├── .IPv6
│   ├── cur
│   │   ├── 1298024950.M898272P13348.macchianera,S=13861,W=14055:2,S
│   │   ├── 1298024951.M667551P13348.macchianera,S=4032,W=4131:2,S
│   │   └── 1298024952.M391892P13348.macchianera,S=5806,W=5953:2,S
│   ├── dovecot-uidlist
│   ├── dovecot.index.cache
│   ├── dovecot.index.log
│   ├── dovecot.shared
│   ├── maildirfolder
│   ├── new
│   └── tmp
├── .Sent
│   ├── cur
│   │   ├── 1298024950.M12138P13355.macchianera,S=759,W=782:2,S
│   │   ├── 1298026758.M334491P28929.macchianera,S=744,W=766:2,S
│   │   └── 1298026946.M406107P28929.macchianera,S=744,W=765:2,S
│   ├── dovecot-uidlist
│   ├── dovecot.index.cache
│   ├── dovecot.index.log
│   ├── dovecot.shared
│   ├── maildirfolder
│   ├── new
│   └── tmp
├── .Templates
│   ├── cur
│   ├── dovecot-uidlist
│   ├── dovecot.index.log
│   ├── dovecot.shared
│   ├── maildirfolder
│   ├── new
│   └── tmp
├── .abuse
│   ├── cur
│   │   ├── 1298024954.M370551P13355.macchianera,S=16426,W=16772:2,S
│   │   ├── 1298024955.M521166P13353.macchianera,S=7563,W=7675:2,
│   │   └── 1298024956.M364817P13353.macchianera,S=7408,W=7524:2,S
│   ├── dovecot-uidlist
│   ├── dovecot.index
│   ├── dovecot.index.cache
│   ├── dovecot.index.log
│   ├── dovecot.shared
│   ├── maildirfolder
│   ├── new
│   └── tmp

[some more folders snipped]
├── .root.prefixlists
│   ├── cur
│   │   ├── 1297754520.M277941P8395.macchianera,W=5249,S=5145:2,S
│   │   ├── 1297842546.M981234P15941.macchianera,W=5228,S=5125:2,S
│   │   ├── 1297917433.M507497P14667.macchianera,S=5266,W=5372:2,S
│   │   ├── 1298003847.M913458P26002.macchianera,S=5170,W=5274:2,S
│   │   ├── 1298021338.M700495P7100.macchianera,S=6693,W=6821:2,S
│   │   ├── 1298021480.M734859P9130.macchianera,S=6834,W=6965:2,S
│   │   ├── 1298021651.M730627P11234.macchianera,S=6751,W=6878:2,S
│   │   ├── 1298021773.M830137P13160.macchianera,S=6798,W=6926:2,S
│   │   ├── 1298021857.M941464P14513.macchianera,S=6751,W=6878:2,S
│   │   ├── 1298022191.M677553P17741.macchianera,S=6693,W=6821:2,S
│   │   └── 1298022197.M717042P17782.macchianera,S=6693,W=6821:2,S
│   ├── dovecot-uidlist
│   ├── dovecot.index.cache
│   ├── dovecot.index.log
│   ├── dovecot.shared
│   ├── maildirfolder
│   ├── new
│   └── tmp
├── cur
├── dovecot-uidlist
├── dovecot-uidvalidity
├── dovecot-uidvalidity.4d4a700c
├── dovecot.index.cache
├── dovecot.index.log
├── dovecot.shared
├── maildirfolder
├── new
└── tmp

55 directories, 727 files


And here's a sample user directory structure:

.
├── .INBOX.Drafts
│   ├── cur
│   ├── dovecot-uidlist
│   ├── dovecot.index.log
│   ├── maildirfolder
│   ├── new
│   └── tmp
├── .INBOX.Sent
│   ├── cur
│   │   ├── 1297171129.M796460P17798.macchianera,S=344,W=360:2,S
│   │   ├── 1297178125.M270185P23200.macchianera,S=533,W=554:2,S
│   │   └── 1297178163.M715673P23855.macchianera,S=759,W=785:2,S
│   ├── dovecot-uidlist
│   ├── dovecot.index.cache
│   ├── dovecot.index.log
│   ├── maildirfolder
│   ├── new
│   └── tmp
├── .INBOX.Trash
│   ├── cur
│   ├── dovecot-uidlist
│   ├── dovecot.index.log
│   ├── maildirfolder
│   ├── new
│   └── tmp
├── .Trash
│   ├── cur
│   ├── dovecot-keywords
│   ├── dovecot-uidlist
│   ├── dovecot.index
│   ├── dovecot.index.cache
│   ├── dovecot.index.log
│   ├── maildirfolder
│   ├── new
│   └── tmp
├── .dovecot.sieve -> sieve/phpscript.sieve
├── .dovecot.svbin
├── .test
│   ├── cur
│   │   ├── 1296833774.M22745P22378.macchianera,S=874,W=892:2,S
│   │   └── 1297068943.M253574P19054.macchianera,S=899,W=919:2,S
│   ├── dovecot-uidlist
│   ├── dovecot.index.cache
│   ├── dovecot.index.log
│   ├── maildirfolder
│   ├── new
│   └── tmp
├── Maildir
│   └── public
│       ├── .BGPnagger
│       │   └── dovecot.index.log
│       ├── .Drafts
│       │   └── dovecot.index.log
│       ├── .INBOX
│       │   └── dovecot.index.log
│       ├── .IPv6
│       │   └── dovecot.index.log
│       ├── .Sent
│       │   └── dovecot.index.log
│       ├── .Templates
│       │   └── dovecot.index.log
│       ├── .abuse
│       │   └── dovecot.index.log
│       ├── .amsix
│       │   └── dovecot.index.log
│       ├── .decix
│       │   └── dovecot.index.log
│       ├── .equinix
│       │   └── dovecot.index.log
│       ├── .linx
│       │   └── dovecot.index.log
│       ├── .root
│       │   └── dovecot.index.log
│       ├── .root.prefixlists
│       │   └── dovecot.index.log
│       └── dovecot.index.log
├── cur
│   ├── 1296833143.M751824P17068.macchianera,S=915,W=937:2,S
│   └── 1296833618.M159703P20791.macchianera,S=876,W=895:2,S
├── dovecot-keywords
├── dovecot-uidlist
├── dovecot-uidvalidity
├── dovecot-uidvalidity.4d495476
├── dovecot.index.cache
├── dovecot.index.log
├── new
├── sieve
│   ├── phpscript.sieve
│   └── tmp
├── subscriptions
└── tmp


The Public namespace gets populated by reading a mailbox on a different imap server
with fetchmail, with a special username. A sieve rules moves all messages that 
would go into this user's INBOX to Public.INBOX (and some more filters for the other 
subfolders).

What am I doing wrong here ?

Thanks

Pf


-- 


-------------------------------------------------------------------------------
 Pierfrancesco Caci - Telecom Italia Sparkle - AS6762 Seabone IP Backbone
 2nd level support group: tech at seabone.net - +39 06 5274 4944 (fax: 4610)
 direct: p.caci at seabone.net - +39 055 5082 441
 View other contact info at http://www.seabone.net/contacts/


More information about the dovecot mailing list