[Dovecot] Quota Problems with LMTP in HG 62a930eb22b5

2013-02-18 Thread Thomas Leuxner
Since updating to the latest HG these errors occur. Nothing else changed in the 
config:

$ dovecot --version
2.2.beta1 (62a930eb22b5)

== /var/log/dovecot/dovecot.log ==
Feb 18 09:47:32 spectre dovecot: lmtp(14340): Connect from local
Feb 18 09:47:32 spectre dovecot: lmtp(14340, t...@leuxner.net): Error: 
mkdir_parents(/var/vmail/domains/leuxner.net/tlx/mdbox) failed: File exists
Feb 18 09:47:32 spectre dovecot: lmtp(14340, t...@leuxner.net): Error: 
mkdir_parents(/var/vmail/domains/leuxner.net/tlx/mdbox) failed: File exists
Feb 18 09:47:32 spectre dovecot: lmtp(14340, t...@leuxner.net): Error: dict 
quota: Quota update failed, it's now desynced

$ doveconf -n
# 2.2.beta1 (62a930eb22b5): /etc/dovecot/dovecot.conf
# OS: Linux 3.2.0-0.bpo.4-amd64 x86_64 Debian 6.0.6
auth_cache_size = 16 k
auth_verbose = yes
mail_location = mdbox:~/mdbox
mail_plugins = acl quota stats
mailbox_list_index = yes
namespace {
  list = yes
  location = mdbox:/var/vmail/public:INDEXPVT=~/mdbox/public
  prefix = Public/
  separator = /
  subscriptions = no
  type = public
}
namespace inbox {
  hidden = no
  inbox = yes
  location =
  mailbox Drafts {
special_use = \Drafts
  }
  mailbox Junk {
special_use = \Junk
  }
  mailbox Sent {
special_use = \Sent
  }
  mailbox Sent Messages {
special_use = \Sent
  }
  mailbox Trash {
special_use = \Trash
  }
  prefix =
  separator = /
  type = private
}
passdb {
  args = username_format=%u /var/vmail/auth.d/%d/passwd
  driver = passwd-file
}
plugin {
  acl = vfile:/var/vmail/conf.d/%d/acls:cache_secs=300
  mail_log_events = expunge mailbox_delete
  quota = dict:user::file:%h/mdbox/dovecot-quota
  quota_rule = *:storage=1GB
  quota_rule2 = Trash:storage=+10%%
  sieve = ~/.dovecot.sieve
  sieve_dir = ~/sieve
  sieve_global_dir = /var/vmail/conf.d/%d/sieve
  stats_refresh = 30s
  stats_track_cmds = yes
}
protocols =  imap lmtp
quota_full_tempfail = yes
service auth-worker {
  unix_listener auth-worker {
user = doveauth
  }
  user = doveauth
}
service auth {
  unix_listener /var/spool/postfix/private/auth {
group = postfix
mode = 0660
user = postfix
  }
  user = doveauth
}
service imap-login {
  inet_listener imap {
address = 1.2.3.4
port = 143
  }
  inet_listener imaps {
port = 0
  }
}
service lmtp {
  unix_listener /var/spool/postfix/private/dovecot-lmtp {
group = postfix
mode = 0660
user = postfix
  }
}
service stats {
  fifo_listener stats-mail {
mode = 0600
user = vmail
  }
}
ssl_ca = /etc/ssl/certs/SSL123_CA_Bundle.pem
ssl_cert = /etc/ssl/certs/host_domain_tld.crt
ssl_key = /etc/ssl/private/host_domain_tld.key
syslog_facility = local1
userdb {
  args = username_format=%u /var/vmail/auth.d/%d/passwd
  driver = passwd-file
}
verbose_proctitle = yes
protocol lmtp {
  mail_plugins = acl quota stats sieve
}
protocol imap {
  mail_max_userip_connections = 20
  mail_plugins = acl quota stats mail_log notify imap_acl imap_quota imap_stats
}



signature.asc
Description: Digital signature


Re: [Dovecot] Defer emails until the user is ready to deal with them (snooze button / bring-forward file / bring-up file for emails)

2013-02-18 Thread Steffen Kaiser

-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

On Sat, 16 Feb 2013, Chris Laif wrote:



Thanks Timo, at least one person understands me ;-) Unfortunately,
both solutions require programming skills far better than I have. So I
start enjoying my weekend doing other things ... thank you for your
great work on dovecot!


I like Daniel's idea:

+ Have Thunderbird move unwanted messages to Delayed/time
+ Have a cron job on the server that moves the messages back to INBOX.

- -- 
Steffen Kaiser

-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.11 (GNU/Linux)

iQEVAwUBUSHua13r2wJMiz2NAQK7NAf+MEujHadBqNN7+7EWphjQj31vuEq/jFW7
xNY+jE9s/IBd0hmUY1cQLS6/X4n4EOOy4lAhzJIkE4/x8pqlQhlaA7L5kR8zkcK0
pNOzJHqOoWq0NL83WUf8kq/2BP6HUqL0nWX0Dgz5sWYvvXlGmKHND3eNZ5WX9IME
Yj8QEbCDTqnMAh/jGjJVW8tzHtoGVBpGQ8EJbjUh8/QIciWtEVvz8ofmgz/5vpL3
r5XKiNHMyZs9dhaLvMsos7Qhln89XvANir8GAE0CFEFm+8mJDzzQU3RkAkj/ohT2
9MSYCQGDCiS3hcazZTRiCNvIup+t4vXGICVCtHjZHr8zUwsNqp5PCw==
=070+
-END PGP SIGNATURE-


Re: [Dovecot] Dovecot-2.1.14 - pop3 processes always hangs forever - another follow-up

2013-02-18 Thread Axel Luttgens
Le 18 févr. 2013 à 06:21, Timo Sirainen t...@iki.fi a écrit :

 On Sun, 2013-02-17 at 12:24 +0100, Axel Luttgens wrote:
 Le 17 févr. 2013 à 05:47, Timo Sirainen a écrit :
 
 [...]
 The gethostbyname() call is used to figure out the current system's domain. 
 Why it would be hanging there, I don't really know. That call anyway isn't 
 fully required, you could just replace it with hent = NULL;
 
 Yes, looks like those gethostbyname() require some investigations here...
 I'll have a look and provide my findings here.

Very modest findings; anyway, here they are, should they be of some help for 
nailing the causes down.

First, having the db query returning only a virtual uid (eg, 12), thus 
making use of a system group set with mail_gid (e.g., 999), those hangs do not 
occur anymore.

On the other hand, this quick one:

#include syslog.h
#include netdb.h

#define NULL ((void *)0)

int   main( int argc, const char * argv[]) 
{
struct hostent *hent;

hent = gethostbyname(ALMba.local);
if ( hent != NULL )
{
syslog(LOG_NOTICE|LOG_MAIL, name returned by 
gethostbyname(): %s\n, hent-h_name);
}   
return(0);
}

compiled as ghbn and with perms set to:

-rwsr-sr-x 1 12 12 8816 18 fév 09:08 ghbn

doesn't hang and yields:

[ASLMessageID 385162] [Time 1361175967] [TimeNanoSec 451292000] [Level 
5] [PID 5616] [UID 12] [GID 12] [ReadGID 80] [Host ALMba.local] [Sender 
ghbn] [Facility mail] [Message name returned by gethostbyname(): almba.local]

It could thus be inferred that the problems encountered here are related to 
virtual gids only when setting up child processes from within Dovecot.
Don't know whether this impacts those calls to gethostbyname() only, or if 
other side-effects may be expected as well.

Now, would all this be a Mac OS X thing only?
Or are such problems liable to occur on other platforms as well?


 In the meantime, I don't really like the idea of messing with a general 
 purpose function, my_hostdomain(), just to avoid a local problem...
 Wouldn't you have a better idea? ;-)
 
 Solution for v2.2: http://hg.dovecot.org/dovecot-2.2/rev/a6b40687c0a4

Wow, that's a good idea. :-)
This should indeed circumvent those hangs, but also avoid many rather costly 
system calls.

It seems it could be easily back ported to 2.1.x.
I'll try and report back here.

Many thanks,
Axel



Re: [Dovecot] Defer emails until the user is ready to deal with them (snooze button / bring-forward file / bring-up file for emails)

2013-02-18 Thread Robert Schetterer
Am 18.02.2013 10:03, schrieb Steffen Kaiser:
 Have a cron job on the server that moves the messages back to INBOX.

Hi Steffen,
please describe how such cron should be invoked , created, edited, deleted
with some user friendly interface i.e in some sieve webmail client or
thunderbird, using tons of different guis for different jobs is not very
nice, ideally such functions should be able to handle  from a
thunderbird plugin then etc

this is not a general critic at this idea, but it must match real world
sceanrios like isp setup etc at last


Best Regards
MfG Robert Schetterer

-- 
[*] sys4 AG

http://sys4.de, +49 (89) 30 90 46 64
Franziskanerstraße 15, 81669 München

Sitz der Gesellschaft: München, Amtsgericht München: HRB 199263
Vorstand: Patrick Ben Koetter, Axel von der Ohe, Marc Schiffbauer
Aufsichtsratsvorsitzender: Joerg Heidrich


Re: [Dovecot] Quota Problems with LMTP in HG 62a930eb22b5

2013-02-18 Thread Thomas Leuxner
* Thomas Leuxner t...@leuxner.net 2013.02.18 09:58:

 Since updating to the latest HG these errors occur. Nothing else changed in 
 the config:
 
 $ dovecot --version
 2.2.beta1 (62a930eb22b5)
 
 == /var/log/dovecot/dovecot.log ==
 Feb 18 09:47:32 spectre dovecot: lmtp(14340): Connect from local
 Feb 18 09:47:32 spectre dovecot: lmtp(14340, t...@leuxner.net): Error: 
 mkdir_parents(/var/vmail/domains/leuxner.net/tlx/mdbox) failed: File exists
 Feb 18 09:47:32 spectre dovecot: lmtp(14340, t...@leuxner.net): Error: 
 mkdir_parents(/var/vmail/domains/leuxner.net/tlx/mdbox) failed: File exists
 Feb 18 09:47:32 spectre dovecot: lmtp(14340, t...@leuxner.net): Error: dict 
 quota: Quota update failed, it's now desynced

Seems there's more to the latest changes as a mail that has to be saved 
temporarily also breaks LMTP:

Feb 18 13:00:32 spectre postfix/qmgr[21702]: 3Z8hWT6jxszFV: 
from=subscripti...@lists.juno.co.uk, size=460096, nrcpt=1 (queue active)

== /var/log/dovecot/dovecot.log ==
Feb 18 13:00:32 spectre dovecot: lmtp(15093): Connect from local
Feb 18 13:00:33 spectre dovecot: lmtp(15093): Error: Temp file creation to 
/tmp/dovecot.lmtp.�/usr/lib/dovecot/lmtp.15093.
 failed: No such file or directory
Feb 18 13:00:33 spectre dovecot: lmtp(15093): Disconnect from local: Temporary 
internal failure (in DATA)


signature.asc
Description: Digital signature


Re: [Dovecot] Quota Problems with LMTP in HG 62a930eb22b5

2013-02-18 Thread Timo Sirainen
On Mon, 2013-02-18 at 13:24 +0100, Thomas Leuxner wrote:
 * Thomas Leuxner t...@leuxner.net 2013.02.18 09:58:
 
  Since updating to the latest HG these errors occur. Nothing else changed in 
  the config:
  
  $ dovecot --version
  2.2.beta1 (62a930eb22b5)
  
  == /var/log/dovecot/dovecot.log ==
  Feb 18 09:47:32 spectre dovecot: lmtp(14340): Connect from local
  Feb 18 09:47:32 spectre dovecot: lmtp(14340, t...@leuxner.net): Error: 
  mkdir_parents(/var/vmail/domains/leuxner.net/tlx/mdbox) failed: File exists
  Feb 18 09:47:32 spectre dovecot: lmtp(14340, t...@leuxner.net): Error: 
  mkdir_parents(/var/vmail/domains/leuxner.net/tlx/mdbox) failed: File exists
  Feb 18 09:47:32 spectre dovecot: lmtp(14340, t...@leuxner.net): Error: dict 
  quota: Quota update failed, it's now desynced

Not sure about these. Are they fixed now?

 Feb 18 13:00:33 spectre dovecot: lmtp(15093): Error: Temp file creation to 
 /tmp/dovecot.lmtp.�/usr/lib/dovecot/lmtp.15093.
  failed: No such file or directory

This is definitely fixed. I was worried about the environment getting
cleared when coding it, but it appeared to work and looks like I didn't
test well enough.




[Dovecot] statistics on proxy ???

2013-02-18 Thread Marco Giunta

Hi at all,
could I have imap statistics on my dovecot proxy server ??

Here my config:

# 2.1.13: /etc/dovecot/dovecot.conf
...
mail_plugins = stats
...
plugin {
  ...
  stats_refresh = 30 secs
  stats_track_cmds = yes
}
...
service stats {
  fifo_listener stats-mail {
mode = 0666
  }
}
...
protocol imap {
  ...
  mail_plugins = stats imap_stats
}


File '/var/run/dovecot/stats' is always 0 byte:

# ls -la /var/run/dovecot/stats
srw---. 1 root root 0 Feb 18 14:24 /var/run/dovecot/stats

and 'dovecotadm' say always:

# doveadm stats dump session
doveadm(root): Info: no statistics available


Is there something wrong in my config, or stats are not available on 
proxy ???


Cheers,
  Marco




Re: [Dovecot] Quota Problems with LMTP in HG 62a930eb22b5

2013-02-18 Thread Thomas Leuxner
* Timo Sirainen t...@iki.fi 2013.02.18 14:18:

   == /var/log/dovecot/dovecot.log ==
   Feb 18 09:47:32 spectre dovecot: lmtp(14340): Connect from local
   Feb 18 09:47:32 spectre dovecot: lmtp(14340, t...@leuxner.net): Error: 
   mkdir_parents(/var/vmail/domains/leuxner.net/tlx/mdbox) failed: File 
   exists
   Feb 18 09:47:32 spectre dovecot: lmtp(14340, t...@leuxner.net): Error: 
   mkdir_parents(/var/vmail/domains/leuxner.net/tlx/mdbox) failed: File 
   exists
   Feb 18 09:47:32 spectre dovecot: lmtp(14340, t...@leuxner.net): Error: 
   dict quota: Quota update failed, it's now desynced
 
 Not sure about these. Are they fixed now?
 
  Feb 18 13:00:33 spectre dovecot: lmtp(15093): Error: Temp file creation to 
  /tmp/dovecot.lmtp.�/usr/lib/dovecot/lmtp.15093.
   failed: No such file or directory
 
 This is definitely fixed. I was worried about the environment getting
 cleared when coding it, but it appeared to work and looks like I didn't
 test well enough.

Both seem to be fixed with 2.2.beta1 (3ca7e0eaaf4b). Thanks Timo.


signature.asc
Description: Digital signature


Re: [Dovecot] statistics on proxy ???

2013-02-18 Thread Timo Sirainen
On Mon, 2013-02-18 at 14:33 +0100, Marco Giunta wrote:

 could I have imap statistics on my dovecot proxy server ??

Nope, sorry. Dovecot proxy is very dummy and can't provide any but the
most basic statistics, like number of connections, which you can get
another way.




[Dovecot] Full-text search

2013-02-18 Thread Valery V. Sedletski
Hi all
I discovered that the full-text search (fts) plugin can work without
SQUAT/LUCENE/SOLR backend. I.e., Dovecot creates separate indexes for
header search in files dovecot.index and dovecot.index.cache. Even, the
search by headers is fast enough, and can search for phrases. Also, it
seems that this buillt-in search is faster than Solr-based search. But if I
enable the Solr backend (fts_solr), then the FTS generic plugin built-in
search becomes disabled.
But, Solr-based Full-text search is faster if search inside message bodies.
Also, it appears that the built-in search inside message bodies works too,
but very slow (it seems that is because it is dumb file-based search and
does not use indexes at all)
So, my question is: is it possible to combine the built-in search with Solr
or Lucene plugin-based search so that the first one searches by headers,
and the second one works by bodies?
This could make the advantages of both search methods combined.
WBR,
valery




Re: [Dovecot] Defer emails until the user is ready to deal with them (snooze button / bring-forward file / bring-up file for emails)

2013-02-18 Thread Daniel Parthey
Robert Schetterer wrote:
 Am 18.02.2013 10:03, schrieb Steffen Kaiser:
  move the messages back to INBOX
 ideally such functions should be able to handle from a thunderbird plugin

What about
http://mailmindr.net/

Regards
Daniel
-- 
https://plus.google.com/103021802792276734820


Re: [Dovecot] dsync replication errors

2013-02-18 Thread Michael Grimm
On 18.02.2013, at 07:49, Timo Sirainen t...@iki.fi wrote:
 On Sun, 2013-02-17 at 12:30 +0200, Timo Sirainen wrote:

 (So yeah, ideally there should be checks for detecting hostname hash 
 collisions..)
 
 Added to v2.2 hg:
 
 % doveconf -H dovecot%2d
 No duplicate host hashes in dovecot0 .. dovecot99

With doveconf -H dovecot%9d I do end in tons of reported collisions like ...
| doveconf: Error: Duplicate host hashes: dovecot1368344 and dovecot2055005
| doveconf: Error: Duplicate host hashes: dovecot2042008 and dovecot2056918
| doveconf: Error: Duplicate host hashes: dovecot1844965 and dovecot2058312

(No wonder, I am running 2.1 replicator with identical local hostnames for some 
time now.)

... and ending with:
| Killed
 
 doveconf -H without the template it attempts to detect it from the
 current hostname.

mail doveconf -H
doveconf: Fatal: Hostname 'xxx.yyy.tld' has no digits, can't verify

JFTR and regards,
Michael



Re: [Dovecot] dsync replication errors

2013-02-18 Thread Michael Grimm
On 18.02.2013, at 07:07, Timo Sirainen t...@iki.fi wrote:
 On 17.2.2013, at 22.04, Michael Grimm trash...@odo.in-berlin.de wrote:

 First of all: whenever you referred to hostname in this thread you have 
 been using it as a synonym for the local part [1] of a FQDN, right?
 
 I mean what gethostname() function returns, which is what hostname command 
 usually also returns. And yes, I think it's the local part always.

I am not familiar with the gethostname() function within FreeBSD, but the 
hostname command normally returns your FQDN, if set. That has been the case 
because I didn't configure my service jails with FQDNs, thus a hostname 
couldn't return something else then the local hostname.  

 Given that all my interpretations of your statements are correct I do have 
 difficulties in understanding why a generic communication between Dovecot 
 servers should be limited to enforcing different local parts of all Dovecot 
 servers implied instead of different FQDN? That would make much more sense 
 regarding uniqueness in hostnames, IMHO. Two servers like 
 dovecot.forget-about.it and dovecot.you-name.it should be able to 
 communicate generically, again: IMHO.
 
 I think systems named those would belong to different clusters and wouldn't 
 need to communicate with each others.

Well, now I do understand my misunderstanding: I did consider replication 
between different clusters a generic communication between Dovecot servers, 
as well.

 I looked through the code. The hostname (without domain) are currently used 
 for:
 
 * maildir filenames
 * temporary filenames
 * authentication challenge strings in some auth mechanisms
 * logging
 
 So I think the hostname uniqueness matters mainly when using a shared 
 filesystem (e.g. NFS).

So, I'm confident that I may stick to identical local hostnames regarding both 
servers of mine.

Thanks and with kind regards,
Michael

Re: [Dovecot] dsync replication errors

2013-02-18 Thread Timo Sirainen
On 18.2.2013, at 23.50, Michael Grimm trash...@odo.in-berlin.de wrote:

 % doveconf -H dovecot%2d
 No duplicate host hashes in dovecot0 .. dovecot99
 
 With doveconf -H dovecot%9d I do end in tons of reported collisions like ...
 | doveconf: Error: Duplicate host hashes: dovecot1368344 and dovecot2055005
 | doveconf: Error: Duplicate host hashes: dovecot2042008 and dovecot2056918
 | doveconf: Error: Duplicate host hashes: dovecot1844965 and dovecot2058312

Sure there are going to be hash collisions at some point, but I highly doubt 
you're going to create a million server Dovecot cluster. :)



Re: [Dovecot] Defer emails until the user is ready to deal with them (snooze button / bring-forward file / bring-up file for emails)

2013-02-18 Thread Robert Schetterer
Am 18.02.2013 21:36, schrieb Daniel Parthey:
 Robert Schetterer wrote:
 Am 18.02.2013 10:03, schrieb Steffen Kaiser:
 move the messages back to INBOX
 ideally such functions should be able to handle from a thunderbird plugin
 
 What about
 http://mailmindr.net/
 
 Regards
 Daniel
 

Hi Daniel, simply try it , and look if it fits to your needs, but i
guess there is no real relation to the imap server you use, it may be a
client function ,only, please test and report



Best Regards
MfG Robert Schetterer

-- 
[*] sys4 AG

http://sys4.de, +49 (89) 30 90 46 64
Franziskanerstraße 15, 81669 München

Sitz der Gesellschaft: München, Amtsgericht München: HRB 199263
Vorstand: Patrick Ben Koetter, Axel von der Ohe, Marc Schiffbauer
Aufsichtsratsvorsitzender: Joerg Heidrich


Re: [Dovecot] Private message flags in shared mailboxes

2013-02-18 Thread Timo Sirainen
On Sat, 2013-02-16 at 20:19 +0200, Timo Sirainen wrote:
 I'm wondering a bit how these should work. Comments welcome.

Well, I guess:

 In v2.2 the recommended way to enable private flags for shared mailboxes is 
 to create private indexes with :INDEXPVT=path. This creates 
 dovecot.index.pvt[.log] files which only contain message UIDs and flags. The 
 indexes are updated somewhat lazily by updating them whenever user has the 
 shared mailbox opened and it gets synced.
 
 1. What would be a good place to configure which flags are shared and which 
 are private? Currently it forces \Seen flag to be private and others not. 
 With Maildir I used to have the idea of configuring these in dovecot-shared 
 file, but that's a rather annoying extra file. Then again it could be cached 
 into dovecot.index. Another possibility would be in dovecot-acl file, but 
 public mailboxes might be enabled without ACL plugin. Mailbox attributes (for 
 URLAUTH and for future METADATA) also exist in v2.2, but they require 
 configuring a dict for them, which isn't very efficient either to read every 
 time a mailbox is accessed. Mailbox's admin user should be able to do this 
 somehow via IMAP protocol also. METADATA would pretty much be required for 
 that I guess.

Probably won't happen before v2.3.

 2. Private flags aren't currently inherited from the primary (shared) flags. 
 With user-shared mailboxes this is good, because the owner doesn't have 
 private indexes for the mailboxes, so when owner reads a mail it gets a \Seen 
 flag in the primary index. If that mailbox was shared to someone else, the 
 \Seen flag shouldn't be set. But this also means that for truly shared 
 (public) mailboxes that have no owner you can't set initial flags with 
 Sieve's addflag command (e.g. \Seen flag to high-scored mails in Spam). I 
 guess it could be possible to change this so that the inheritance is done for 
 public namespaces but not for shared namespaces, but is that really a good 
 idea either?..

Initial private flags are copied now from shared flags for mailboxes in
public namespaces, but not elsewhere.

 3. Currently COPY/APPEND ignore any private flags (which also means dsync 
 won't set them always). Fixing this would require remembering these flags, 
 committing the save to primary index, syncing the private index to get the 
 new mails added there, then updating their flags (or doing it directly at 
 sync stage with some kludging code). To avoid race conditions the private 
 index would need to be locked before committing the save. I guess this is 
 doable..

Fixed.

 4. Private keywords aren't supported. I guess not much worse than system 
 flags, but more code complexity. Wonder if anyone would care about them.

Private \Seen flag is good enough for now.