Re: [Dovecot] Vacation?
Charles Marcus wrote: Time is critical on servers... you need to fix this. Are you running ntp client (NOT ntpdate)? Is this running in a virtual machine. If running in a virtual machine, say KVM, what do you propose to do about the time issue? Anders.
[Dovecot] Expire plugin with Mysql
Hi Timo, I had setup the expire plugin using proxy dict method with mysql table. Whenever I run the command : dovecot --exec-mail ext /usr/local/libexec/dovecot/expire-tool , I saw dovecot query the table : Query SELECT path, timestamp FROM dict_expire ORDER BY timestamp But then, nothing happened at all. No mails being expunge from the mailbox Trash folder. Also, What is the purpose for the table to store username, path timestamp ? Because the table is empty and no data populated. Spec. FreeBSD 7.0 AMD64 dovecot-1.1.1 from Port Dovecot Config - [EMAIL PROTECTED] /usr/local/etc]# dovecot -n # 1.1.1: /usr/local/etc/dovecot.conf base_dir: /var/run/dovecot/ log_path: /var/log/dovecot.log protocols: imap pop3 listen: 192.168.2.20 ssl_disable: yes disable_plaintext_auth: no shutdown_clients: no login_dir: /var/run/dovecot/login login_executable(default): /usr/local/libexec/dovecot/imap-login login_executable(imap): /usr/local/libexec/dovecot/imap-login login_executable(pop3): /usr/local/libexec/dovecot/pop3-login login_greeting: Service Ready. login_greeting_capability(default): yes login_greeting_capability(imap): yes login_greeting_capability(pop3): no login_process_size: 32 login_processes_count: 10 login_max_processes_count: 256 max_mail_processes: 1024 verbose_proctitle: yes first_valid_uid: 26 last_valid_uid: 26 first_valid_gid: 26 last_valid_gid: 26 mail_access_groups: mail mail_location: maildir:~/Maildir mmap_disable: yes dotlock_use_excl: no mail_nfs_storage: yes mail_nfs_index: yes maildir_stat_dirs: yes mail_executable(default): /usr/local/libexec/dovecot/imap mail_executable(imap): /usr/local/libexec/dovecot/imap mail_executable(pop3): /usr/local/libexec/dovecot/pop3 mail_plugins(default): expire fts quota imap_quota mail_plugins(imap): expire fts quota imap_quota mail_plugins(pop3): expire fts quota mail_plugin_dir(default): /usr/local/lib/dovecot/imap mail_plugin_dir(imap): /usr/local/lib/dovecot/imap mail_plugin_dir(pop3): /usr/local/lib/dovecot/pop3 imap_client_workarounds(default): delay-newmail outlook-idle netscape-eoh tb-extra-mailbox-sep imap_client_workarounds(imap): delay-newmail outlook-idle netscape-eoh tb-extra-mailbox-sep imap_client_workarounds(pop3): pop3_client_workarounds(default): pop3_client_workarounds(imap): pop3_client_workarounds(pop3): outlook-no-nuls oe-ns-eoh namespace: type: private separator: . prefix: INBOX. inbox: yes list: yes subscriptions: yes auth default: cache_size: 8192 cache_ttl: 900 verbose: yes worker_max_count: 10 passdb: driver: sql args: /usr/local/etc/dovecot-mysql.conf userdb: driver: sql args: /usr/local/etc/dovecot-mysql.conf socket: type: listen client: path: /var/run/dovecot/auth-client mode: 438 master: path: /var/run/dovecot/auth-master mode: 438 plugin: quota: maildir quota_rule: *:storage=2G quota_rule2: Trash:storage=10M expire: Trash 1 Trash/* 1 expire_dict: proxy::expiredict auth_socket_path: /var/run/dovecot/auth-master fts: squat fts_squat: partial=4 full=10 dict: expiredict: mysql:/usr/local/etc/dovecot-dict-expire.conf Thx Dino On Tue, Jun 3, 2008 at 3:21 AM, Timo Sirainen [EMAIL PROTECTED] wrote: On Mon, 2008-06-02 at 14:50 -0400, Eric T wrote: Seems to work in my tests. Could you do a bit more with gdb: Wonder why it worked :) Fixed: http://hg.dovecot.org/dovecot-1.1/rev/d73cc550b389
[Dovecot] antispam plugin, amavis and sa-learn
Hello, I would like to use the Dovecot antispam plugin to train SpamAssassin via sa-learn. I compiled the plugin and got it to work with the sendmail backend, which I tested by having it send a message to me. As I'm calling SpamAssassin with amavisd-new, I have a system-wide Bayes db, maintained by the amavis user. As expected, the antispam plugin calls the configured binary as the mail user (I'm running deliver as suid, with mixed virtual and system accounts). My question is: How can I get the plugin to call sa-learn as user amavis? I have tried the following things: (1) making the amavis user's .spamassassin directory to world-writeable and handing the path to sa-learn with the --dbpath parameter. That failed - the IMAP client says Move not allowed when I try to move a message to or from the Spam IMAP folder. (2) making a suid copy of sa-learn with owner amavis. This failed because of an sperl error. (3) editing sudoers to allow 'sudo -u amavis sa-learn' without a password. This works fine on the command line, but fails with the same error as (1) when used with the plugin. Although I compiled the plugin from git with debugging to syslog activated, I do not get any error messages in mail.log where all messages from dovecot are logged. Now, I know that the methods above aren't exactly secure, so if anybody has a different way of training SpamAssassin with the antispam plugin in a amavis setup, I would appreciate it. Thank you, Johannes
Re: [Dovecot] antispam plugin, amavis and sa-learn
On Tue, 2008-07-08 at 10:53 +0200, Johannes Bauer wrote: Hello, I would like to use the Dovecot antispam plugin to train SpamAssassin via sa-learn. I compiled the plugin and got it to work with the sendmail backend, which I tested by having it send a message to me. As I'm calling SpamAssassin with amavisd-new, I have a system-wide Bayes db, maintained by the amavis user. As expected, the antispam plugin calls the configured binary as the mail user (I'm running deliver as suid, with mixed virtual and system accounts). My question is: How can I get the plugin to call sa-learn as user amavis? I have tried the following things: (1) making the amavis user's .spamassassin directory to world-writeable and handing the path to sa-learn with the --dbpath parameter. That failed - the IMAP client says Move not allowed when I try to move a message to or from the Spam IMAP folder. (2) making a suid copy of sa-learn with owner amavis. This failed because of an sperl error. (3) editing sudoers to allow 'sudo -u amavis sa-learn' without a password. This works fine on the command line, but fails with the same error as (1) when used with the plugin. I have no idea. Try maybe writing a small C wrapper that checks the arguments. Also check what user your imap is running under, normally it would be the user who logged in unless those are virtual. johannes signature.asc Description: This is a digitally signed message part
Re: [Dovecot] Vacation?
On 7/8/2008, Anders ([EMAIL PROTECTED]) wrote: If running in a virtual machine, say KVM, what do you propose to do about the time issue? All I know is syncing time on a VM is tricky - and you should NOT use ntp to do it... I also know that the PAID version of VMWare has its own tool(s) for syncing time which supposedly works well, but I guess you need to consult google and/or the KVM list for help with this one - but you need to do it, or you will continue to have problems... Good luck, and it would be appreciated if you'd report back with your findings in case someone else stumbles on this issue here... -- Best regards, Charles
Re: [Dovecot] Virtual machines / time jumps backwards (was: Re: Vacation?)
On Tuesday 08 July 2008, Anders wrote: Charles Marcus wrote: Time is critical on servers... you need to fix this. Are you running ntp client (NOT ntpdate)? Is this running in a virtual machine. If running in a virtual machine, say KVM, what do you propose to do about the time issue? Anders. On a side note: There are not such problems when using OS virtualisation (as in Linux-VServer[1], for example) - run an ntpd on the 'host' and have the same time in all guests. It also has very little overhead. So if it's an option to use OS virtualisation instead of real virtualisation, maybe you can save yourself the hassle with time jumping backwards. [1]: http://linux-vserver.org/Welcome_to_Linux-VServer.org Patrick. -- STAR Software (Shanghai) Co., Ltd.http://www.star-group.net/ Phone:+86 (21) 3462 7688 x 826 Fax: +86 (21) 3462 7779 PGP key: https://stshacom1.star-china.net/keys/patrick_nagel.asc Fingerprint: E09A D65E 855F B334 E5C3 5386 EF23 20FC E883 A005 signature.asc Description: This is a digitally signed message part.
Re: [Dovecot] antispam plugin, amavis and sa-learn
-BEGIN PGP SIGNED MESSAGE- Hash: SHA1 On Tue, 8 Jul 2008, Johannes Bauer wrote: (1) making the amavis user's .spamassassin directory to world-writeable and handing the path to sa-learn with the --dbpath parameter. That failed - the IMAP client says Move not allowed when I try to move a message to or from the Spam IMAP folder. (3) editing sudoers to allow 'sudo -u amavis sa-learn' without a password. This works fine on the command line, but fails with the same error as (1) when used with the plugin. Hmm, Move not allowed from the client? What do you see from Dovecot? I mean when you speak IMAP directly or trace/sniff a non-SSL connection. I have the impression, that you hit a situation, like: Cannot APPEND to a SPAM folder. However, in this case it should not work with the sendmail binary. For (3): did you allow all users to call sudo without password? I mean: su - user sudo -u amavis sa-learn Also, did you noticed this paragraphe in man sudo? -H The -H (HOME) option sets the HOME environment variable to the homedir of the target user (root by default) as specified in passwd(5). By default, sudo does not modify HOME (see set_home and always_set_home in sudoers(5)). If HOME is not amavis's HOME, sa-learn might be upset. Wrap your program in order to trace the problems of sa-learn: #!/bin/bash ( id -a [snip] sa-learn [snip] rc=$? echo exit code $rc exit $rc ) /tmp/antispam.out.$$ 2 /tmp/antispam.err.$$ sa-learn needs to lock the database, maybe you get race problems? I used to call sa-learn via --no-sync and --sync'ed in regular intervals. Also, maybe you need a combination of -u/-C/-p. Although I compiled the plugin from git with debugging to syslog activated, I do not get any error messages in mail.log where all messages from dovecot are logged. Well, my antispam logs go to syslog, but Dovecot logs to a file. Now, I know that the methods above aren't exactly secure, so if anybody Dunno, but you want to train a site-wide database with information from the user. So what you consider unsecure in particular? If you are afraid of bugs in sa-learn, you should limit this ability to a certain group of users, because any user can push any message Dovecot accepts to sa-learn, regardless of its internal structure. I have moved the Bayes DB to SQL to avoid the locking problems I had. Bye, - -- Steffen Kaiser -BEGIN PGP SIGNATURE- Version: GnuPG v1.4.6 (GNU/Linux) iD8DBQFIc0XIVJMDrex4hCIRAnN1AJwMeiSWiRl/qBbQwDNYIw6T+Zg6iwCeKNyA jcyx0LXE7EQ2oot6wrBp+lA= =NhLz -END PGP SIGNATURE-
Re: [Dovecot] imap and vpopmail: per-domain auth
Il Monday 07 July 2008 17:31:00 Francesco Abeni ha scritto: Hi, i have qmail + vpopmail + dovecot + squirrelmail 0.99.14 on Fedora Core 4. Qmail includes its own pop3 server, and everybody is able to access it from outside. Dovecot is used only locally by SquirrelMail - so everybody can access via webmail. I'd like to make imap directly available from outside, but only for a few selected domains (NOT ip addresses!), while leaving everyone able to access with pop3 and/or via webmail. I don't know if this is possible, and if it is, i don't even know where to start. Is it a vpopmail or dovecot setting? Thank you for any suggestion and/or pointer to the right documentation. Hi Francesco, yes it is theoretically possible, but due to some problems this feature of vpopmail is not fully compatible with dovecot. vpopmail via ~vpopmail/bin/vmoduser can set some limit to single users, example disble pop3, disable imap, disable imap except for webmail, etc ... Dovect should move to vpopmail some parameters of the user who logged, as his address and local port connection, but unfortunately these parameters are not passed, or at least not be passed as would expect to receive vpopmail, in particular for the connections made via imap from remote clients. vpopmail is able to distinguish and restrict connections to users but to do so must be able to know where it comes from their connection, there are 3 main classifications that vpopmail knows: POP3 webmail (imap from localhost) IMAP From log you can identify these connections: POP3: Jul 8 12:36:41 mail-server vpopmail[11560]: vchkpw-pop3: (PLAIN) login success [EMAIL PROTECTED]:98.52.67.8 Webmail: Jul 8 12:36:32 maill-server vpopmail[11456]: vchkpw-webmail: (PLAIN) login success [EMAIL PROTECTED]:127.0.0.1 IMAP: Jul 8 12:37:45 mail-server vpopmail[11984]: vchkpw-imap: (PLAIN) login success [EMAIL PROTECTED]:217.127.131.153 But with dovecot when you log-in from IMAP client (like thunderbird) in the log you can see: Jul 8 12:37:45 mail-server vpopmail[11984]: vchkpw-0: [note the 0] Investigating I discovered that this depends on whether dovecot vpopmail not go to the parameters that it expects to receive. Reading the source vchkpw.c, from the vpopmail package, we understand very well how everything works: See it from line 98 to line 195 http://vpopmail.cvs.sourceforge.net/vpopmail/vpopmail/vchkpw.c?view=markup an extract: 98 #define POP_CONN 0 99 #define SMTP_CONN 1 100 #define IMAP_CONN 2 101 #define WEBMAIL_CONN 3 102 103 /* POP/IMAP connections from the following IPs will be classified as 104 * web mail instead of POP/IMAP. On single-server networks, this 105 * will typically be just 'localhost'. For clusters, add the IP 106 * addresses of all webmail servers. 107 */ 108 char *webmailips[] = { 127.0.0.1 }; 109 110 int ConnType = 0; 111 112 int main( int argc, char **argv) 113 { 114 char *tmpstr; 115 116 if ( (IpAddr = get_remote_ip()) == NULL) IpAddr=; 117 if ( (tmpstr = getenv(TCPLOCALPORT)) == NULL) LocalPort = 0; 118 else LocalPort = atoi(tmpstr); 119 120 /* Check which port they are coming in on and 121* setup the log name and connection type 122*/ 123 switch(LocalPort) { 124 case 25: 125 strcpy(VchkpwLogName, vchkpw-smtp); 126 ConnType = SMTP_CONN; 127 break; 128 case 110: 129 strcpy(VchkpwLogName, vchkpw-pop3); 130 ConnType = POP_CONN; 131 break; 132 case 143: 133 strcpy(VchkpwLogName, vchkpw-imap); 134 ConnType = IMAP_CONN; 135 break; I believe that if dovecot pass the parameter TCPLOCALPORT to vpopmail everything would work as expected, instead of being classified in this case: 152 default: 153 sprintf(VchkpwLogName, vchkpw-%u, LocalPort); 154 /* 155* We're running on an unknown port, so it could be any one of 156* the three protocols (SMTP, POP or IMAP). Try to guess the 157* protocol based on argv[1]. For SMTP AUTH, argv[1] is usually 158* /bin/true. For IMAP, it's usually imapd (or something like 159* that). Keep the old default of POP. 160* Note that the popular Courier-IMAP does not use vchkpw, it 161* links libvpopmail directly into its server. 162*/ Timo could you give us a hand in solving this problem? This feature vpopmail is very interesting and useful for us. My dovecot config: # dovecot -n # 1.1.1: /etc/dovecot.conf log_path: /var/log/dovecot/dovecot-err.log info_log_path: /var/log/dovecot/dovecot.log ssl_cert_file: /etc/apache2/ssl/server.crt ssl_key_file: /etc/apache2/ssl/server.pem disable_plaintext_auth: no login_dir: /var/run/dovecot/login login_executable: /usr/libexec/dovecot/imap-login login_greeting: Ready login_process_per_connection: no first_valid_uid: 89 mail_drop_priv_before_exec: yes
Re: [Dovecot] Vacation?
Charles: I am using the email address: [EMAIL PROTECTED] for testing dovecot.sieve. Here are the logs: /var/log/maillog - Jul 8 04:47:29 www dovecot: Dovecot v1.0.7 starting up Jul 8 04:47:30 www postfix/postfix-script: starting the Postfix mail system Jul 8 04:47:30 www postfix/master[2588]: daemon started -- version 2.3.3, configuration /etc/postfix Jul 8 04:48:33 www dovecot: pop3-login: Login: user=kirtib, method=PLAIN, rip=:::192.168.0.64, lip=:::65.103.190.107, TLS Jul 8 04:48:33 www dovecot: POP3(kirtib): Disconnected: Logged out top=0/0, retr=0/0, del=0/0, size=0 Jul 8 04:50:14 www dovecot: pop3-login: Login: user=test, method=PLAIN, rip=:::192.168.0.64, lip=:::65.103.190.107 Jul 8 04:50:15 www dovecot: POP3(test): Disconnected: Logged out top=0/0, retr=0/0, del=0/0, size=0 Jul 8 04:51:18 www postfix/smtpd[3216]: connect from mail.spaceportusa.net[12.179.81.11] Jul 8 04:51:19 www postfix/smtpd[3216]: 49B931ED8038: client=mail.spaceportusa.net[12.179.81.11] Jul 8 04:51:19 www postfix/cleanup[3220]: 49B931ED8038: message-id=[EMAIL PROTECTED] Jul 8 04:51:19 www postfix/qmgr[2609]: 49B931ED8038: from=[EMAIL PROTECTED], size=900, nrcpt=1 (queue active) Jul 8 04:51:19 www postfix/local[3221]: 49B931ED8038: to=[EMAIL PROTECTED], relay=local, delay=0.67, delays=0.64/0.02/0/0, dsn=2.0.0, status=sent (delivered to maildir) Jul 8 04:51:19 www postfix/qmgr[2609]: 49B931ED8038: removed Jul 8 04:51:19 www postfix/smtpd[3216]: disconnect from mail.spaceportusa.net[12.179.81.11] Jul 8 04:54:39 www postfix/anvil[3218]: statistics: max connection rate 1/60s for (smtp:12.179.81.11) at Jul 8 04:51:18 Jul 8 04:54:39 www postfix/anvil[3218]: statistics: max connection count 1 for (smtp:12.179.81.11) at Jul 8 04:51:18 Jul 8 04:54:39 www postfix/anvil[3218]: statistics: max cache size 1 at Jul 8 04:51:18 Jul 8 04:55:29 www dovecot: pop3-login: Login: user=test, method=PLAIN, rip=:::192.168.0.64, lip=:::65.103.190.107, TLS Jul 8 04:55:29 www dovecot: POP3(test): Disconnected: Logged out top=0/0, retr=1/1041, del=1/1, size=1024 Jul 8 04:58:24 www dovecot: pop3-login: Login: user=wps-system-messages, method=PLAIN, rip=:::192.168.0.64, lip=:::65.103.190.107 Jul 8 04:58:24 www dovecot: pop3-login: Login: user=kirtib, method=PLAIN, rip=:::192.168.0.64, lip=:::65.103.190.107, TLS Jul 8 04:58:24 www dovecot: POP3(wps-system-messages): Disconnected: Logged out top=0/0, retr=0/0, del=0/2, size=142211 Jul 8 04:58:24 www dovecot: POP3(kirtib): Disconnected: Logged out top=0/0, retr=0/0, del=0/0, size=0 - %dovecot -n - [EMAIL PROTECTED] ~]# dovecot -n # 1.0.7: /etc/dovecot.conf login_dir: /var/run/dovecot/login login_executable(default): /usr/libexec/dovecot/imap-login login_executable(imap): /usr/libexec/dovecot/imap-login login_executable(pop3): /usr/libexec/dovecot/pop3-login mail_location: maildir:~/Maildir maildir_copy_with_hardlinks: yes mail_executable(default): /usr/libexec/dovecot/imap mail_executable(imap): /usr/libexec/dovecot/imap mail_executable(pop3): /usr/libexec/dovecot/pop3 mail_plugin_dir(default): /usr/lib/dovecot/imap mail_plugin_dir(imap): /usr/lib/dovecot/imap mail_plugin_dir(pop3): /usr/lib/dovecot/pop3 imap_client_workarounds(default): delay-newmail outlook-idle netscape-eoh imap_client_workarounds(imap): delay-newmail outlook-idle netscape-eoh imap_client_workarounds(pop3): outlook-idle pop3_client_workarounds(default): pop3_client_workarounds(imap): pop3_client_workarounds(pop3): outlook-no-nuls oe-ns-eoh auth default: mechanisms: plain login passdb: driver: pam userdb: driver: passwd socket: type: listen client: path: /var/spool/postfix/private/auth mode: 432 user: postfix group: postfix [EMAIL PROTECTED] ~]# - %postconf -n - [EMAIL PROTECTED] ~]# postconf -n alias_database = hash:/etc/aliases alias_maps = hash:/etc/aliases broken_sasl_auth_clients = yes command_directory = /usr/sbin config_directory = /etc/postfix daemon_directory = /usr/libexec/postfix debug_peer_level = 2 home_mailbox = Maildir/ html_directory = no inet_interfaces = all mail_owner = postfix mailq_path = /usr/bin/mailq.postfix manpage_directory = /usr/share/man mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain mydomain = wildpeacockstudios.com myhostname = mail.wildpeacockstudios.com mynetworks = 127.0.0.0/8 myorigin = $mydomain newaliases_path = /usr/bin/newaliases.postfix queue_directory = /var/spool/postfix readme_directory = /usr/share/doc/postfix-2.3.3/README_FILES relay_domains = relayhost = sample_directory = /usr/share/doc/postfix-2.3.3/samples sendmail_path = /usr/sbin/sendmail.postfix setgid_group = postdrop smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination smtpd_sasl_auth_enable = yes smtpd_sasl_path = private/auth
Re: [Dovecot] imap and vpopmail: per-domain auth
Alessio Cecchi ha scritto: Il Monday 07 July 2008 17:31:00 Francesco Abeni ha scritto: Hi, i have qmail + vpopmail + dovecot + squirrelmail 0.99.14 on Fedora Core 4. Qmail includes its own pop3 server, and everybody is able to access it from outside. Dovecot is used only locally by SquirrelMail - so everybody can access via webmail. I'd like to make imap directly available from outside, but only for a few selected domains (NOT ip addresses!), while leaving everyone able to access with pop3 and/or via webmail. Hi Francesco, yes it is theoretically possible, but due to some problems this feature of vpopmail is not fully compatible with dovecot. vpopmail via ~vpopmail/bin/vmoduser can set some limit to single users, example disble pop3, disable imap, disable imap except for webmail, etc ... Dovect should move to vpopmail some parameters of the user who logged, as his address and local port connection, but unfortunately these parameters are not passed, or at least not be passed as would expect to receive vpopmail, in particular for the connections made via imap from remote clients. (...) Alessio, thank you for your very complete answer and evalutation of the problem. Since you have already set up a test environment, can you do me a favour and try one more thing? Specify - in dovecot.conf - the port on which imap should listen to, and see if it makes any difference to vpopmail. Thank you again very much for your cooperation. -- Francesco
Re: [Dovecot] imap and vpopmail: per-domain auth
Il Tuesday 08 July 2008 13:48:17 Francesco Abeni ha scritto: Alessio Cecchi ha scritto: Il Monday 07 July 2008 17:31:00 Francesco Abeni ha scritto: Hi, i have qmail + vpopmail + dovecot + squirrelmail 0.99.14 on Fedora Core 4. Qmail includes its own pop3 server, and everybody is able to access it from outside. Dovecot is used only locally by SquirrelMail - so everybody can access via webmail. I'd like to make imap directly available from outside, but only for a few selected domains (NOT ip addresses!), while leaving everyone able to access with pop3 and/or via webmail. Hi Francesco, yes it is theoretically possible, but due to some problems this feature of vpopmail is not fully compatible with dovecot. vpopmail via ~vpopmail/bin/vmoduser can set some limit to single users, example disble pop3, disable imap, disable imap except for webmail, etc ... Dovect should move to vpopmail some parameters of the user who logged, as his address and local port connection, but unfortunately these parameters are not passed, or at least not be passed as would expect to receive vpopmail, in particular for the connections made via imap from remote clients. (...) Alessio, thank you for your very complete answer and evalutation of the problem. Since you have already set up a test environment, can you do me a favour and try one more thing? Specify - in dovecot.conf - the port on which imap should listen to, and see if it makes any difference to vpopmail. Thank you again very much for your cooperation. after changing the configuration like this protocol imap { listen = *:143 ssl_listen = *:993 mail_plugins = quota imap_quota } the result is the same :-( Jul 8 14:17:42 gag18 vpopmail[7923]: vchkpw-0: (PLAIN) login success [EMAIL PROTECTED]:217.127.131.153 Ciao -- Alessio Cecchi is: @ ILS - http://www.linux.it/~alessice/ Assistenza Sistemi GNU/Linux - http://www.cecchi.biz/ @ PLUG - ex-Presidente, adesso senatore a vita, http://www.prato.linux.it @ LOLUG - neo-Socio http://www.lolug.net
[Dovecot] dovecot-db.conf missing?
In dovecot-example.conf (dovecot version 1.1.1), a comment to dict_db_config mentions an example file doc/dovecot.db.conf the distribution tar doesn't seem to contain. Has this been lost from 1.1 to 1.1.1?
Re: [Dovecot] Vacation?
Hi, According to your log file and configuration, postfix uses its own LDA 'local' to save messages to the fs. To use the sieve functions from dovecot, you need to configure postfix to use the dovecot LDA 'deliver', by adding mailbox_command = /usr/libexec/dovecot/deliver to postfix' main.cf, or read http://wiki.dovecot.org/LDA/Postfix Regards, Tom kbajwa wrote: Charles: I am using the email address: [EMAIL PROTECTED] for testing dovecot.sieve. Here are the logs: /var/log/maillog - Jul 8 04:47:29 www dovecot: Dovecot v1.0.7 starting up Jul 8 04:47:30 www postfix/postfix-script: starting the Postfix mail system Jul 8 04:47:30 www postfix/master[2588]: daemon started -- version 2.3.3, configuration /etc/postfix Jul 8 04:48:33 www dovecot: pop3-login: Login: user=kirtib, method=PLAIN, rip=:::192.168.0.64, lip=:::65.103.190.107, TLS Jul 8 04:48:33 www dovecot: POP3(kirtib): Disconnected: Logged out top=0/0, retr=0/0, del=0/0, size=0 Jul 8 04:50:14 www dovecot: pop3-login: Login: user=test, method=PLAIN, rip=:::192.168.0.64, lip=:::65.103.190.107 Jul 8 04:50:15 www dovecot: POP3(test): Disconnected: Logged out top=0/0, retr=0/0, del=0/0, size=0 Jul 8 04:51:18 www postfix/smtpd[3216]: connect from mail.spaceportusa.net[12.179.81.11] Jul 8 04:51:19 www postfix/smtpd[3216]: 49B931ED8038: client=mail.spaceportusa.net[12.179.81.11] Jul 8 04:51:19 www postfix/cleanup[3220]: 49B931ED8038: message-id=[EMAIL PROTECTED] Jul 8 04:51:19 www postfix/qmgr[2609]: 49B931ED8038: from=[EMAIL PROTECTED], size=900, nrcpt=1 (queue active) Jul 8 04:51:19 www postfix/local[3221]: 49B931ED8038: to=[EMAIL PROTECTED], relay=local, delay=0.67, delays=0.64/0.02/0/0, dsn=2.0.0, status=sent (delivered to maildir) Jul 8 04:51:19 www postfix/qmgr[2609]: 49B931ED8038: removed Jul 8 04:51:19 www postfix/smtpd[3216]: disconnect from mail.spaceportusa.net[12.179.81.11] Jul 8 04:54:39 www postfix/anvil[3218]: statistics: max connection rate 1/60s for (smtp:12.179.81.11) at Jul 8 04:51:18 Jul 8 04:54:39 www postfix/anvil[3218]: statistics: max connection count 1 for (smtp:12.179.81.11) at Jul 8 04:51:18 Jul 8 04:54:39 www postfix/anvil[3218]: statistics: max cache size 1 at Jul 8 04:51:18 Jul 8 04:55:29 www dovecot: pop3-login: Login: user=test, method=PLAIN, rip=:::192.168.0.64, lip=:::65.103.190.107, TLS Jul 8 04:55:29 www dovecot: POP3(test): Disconnected: Logged out top=0/0, retr=1/1041, del=1/1, size=1024 Jul 8 04:58:24 www dovecot: pop3-login: Login: user=wps-system-messages, method=PLAIN, rip=:::192.168.0.64, lip=:::65.103.190.107 Jul 8 04:58:24 www dovecot: pop3-login: Login: user=kirtib, method=PLAIN, rip=:::192.168.0.64, lip=:::65.103.190.107, TLS Jul 8 04:58:24 www dovecot: POP3(wps-system-messages): Disconnected: Logged out top=0/0, retr=0/0, del=0/2, size=142211 Jul 8 04:58:24 www dovecot: POP3(kirtib): Disconnected: Logged out top=0/0, retr=0/0, del=0/0, size=0 - %dovecot -n - [EMAIL PROTECTED] ~]# dovecot -n # 1.0.7: /etc/dovecot.conf login_dir: /var/run/dovecot/login login_executable(default): /usr/libexec/dovecot/imap-login login_executable(imap): /usr/libexec/dovecot/imap-login login_executable(pop3): /usr/libexec/dovecot/pop3-login mail_location: maildir:~/Maildir maildir_copy_with_hardlinks: yes mail_executable(default): /usr/libexec/dovecot/imap mail_executable(imap): /usr/libexec/dovecot/imap mail_executable(pop3): /usr/libexec/dovecot/pop3 mail_plugin_dir(default): /usr/lib/dovecot/imap mail_plugin_dir(imap): /usr/lib/dovecot/imap mail_plugin_dir(pop3): /usr/lib/dovecot/pop3 imap_client_workarounds(default): delay-newmail outlook-idle netscape-eoh imap_client_workarounds(imap): delay-newmail outlook-idle netscape-eoh imap_client_workarounds(pop3): outlook-idle pop3_client_workarounds(default): pop3_client_workarounds(imap): pop3_client_workarounds(pop3): outlook-no-nuls oe-ns-eoh auth default: mechanisms: plain login passdb: driver: pam userdb: driver: passwd socket: type: listen client: path: /var/spool/postfix/private/auth mode: 432 user: postfix group: postfix [EMAIL PROTECTED] ~]# - %postconf -n - [EMAIL PROTECTED] ~]# postconf -n alias_database = hash:/etc/aliases alias_maps = hash:/etc/aliases broken_sasl_auth_clients = yes command_directory = /usr/sbin config_directory = /etc/postfix daemon_directory = /usr/libexec/postfix debug_peer_level = 2 home_mailbox = Maildir/ html_directory = no inet_interfaces = all mail_owner = postfix mailq_path = /usr/bin/mailq.postfix manpage_directory = /usr/share/man mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain mydomain = wildpeacockstudios.com myhostname = mail.wildpeacockstudios.com mynetworks = 127.0.0.0/8 myorigin = $mydomain newaliases_path = /usr/bin/newaliases.postfix queue_directory =
[Dovecot] Global Script to filter Spam
Dovecot Version: 1.1.1 with sieve and managesieve configured. I want to filter spam with the subject *SPAM* to a spam folder for all users, and i also want users to have personal sieve scripts (like vacation). I have configured Squirrelmail, dovecot manage sieve and avelsieve plugin in squirrelmail to do that. The problem is that the user home 's scripts are replaced with the avelsieve plugin script did it in the web interface and the configuration of .dovecot.sieve calling the global script is lost. Is there any other way to call a global script for all users not depending in the user script? Thanks Andrés Fernando Yacopino
[Dovecot] Multiple quota roots with quota-fs backend
Today I've tried to configure multiple filesystem quotas, with some strange results. These are my two filesystems; both using quotas: * /dev/mail mounted to /var/spool/mail using AIX quotas for all users. Mailbox format is 'mbox' and they are named '/var/spool/mail/logname' * filer0:/vol/home mounted to /home/f0 via nfs using netapp quotas for all users. Mailboxes are all 'mbox' and located in '~logname/Mail' I've configured _two_ quota roots as described here: http://wiki.dovecot.org/Quota/FS?highlight=(two%20filesystems) plugin { quota= fs:Home:mount=/home/f0 quota2 = fs:Spool:mount=/var/spool/mail } This works like a charm, but when testing the configuration, the result was just surprising: * OK [CAPABILITY IMAP4rev1 SASL-IR SORT THREAD=REFERENCES MULTIAPPEND UNSELECT LITERAL+ IDLE CHILDREN NAMESPACE LOGIN-REFERRALS UIDPLUS LIST-EXTENDED I18NLEVEL=1 QUOTA AUTH=PLAIN] Dovecot ready. . login rfttest XXX . OK Logged in. . getquotaroot INBOX * QUOTAROOT INBOX Home Spool * QUOTA Home (STORAGE 310360 1048576) * QUOTA Spool (STORAGE 89708 100) . OK Getquotaroot completed. . getquotaroot Trash * QUOTAROOT Trash Home Spool * QUOTA Home (STORAGE 310360 1048576) * QUOTA Spool (STORAGE 89708 100) . OK Getquotaroot completed. . logout * BYE Logging out . OK Logout completed. You see, that _always_ both quota roots are reported, whether the references mailbox is actually placed on this filesystem or not. However reading RFC2087 confirms me in the idea, that just the _related_ quota roots should be listed: ---8- 4.3. GETQUOTAROOT Command Arguments: mailbox name Data: untagged responses: QUOTAROOT, QUOTA Result: OK - getquota completed NO - getquota error: no such mailbox, permission denied BAD - command unknown or arguments invalid The GETQUOTAROOT command takes the name of a mailbox and returns the list of quota roots for the mailbox in an untagged QUOTAROOT response. For each listed quota root, it also returns the quota root's resource usage and limits in an untagged QUOTA response. Example:C: A003 GETQUOTAROOT INBOX S: * QUOTAROOT INBOX S: * QUOTA (STORAGE 10 512) S: A003 OK Getquota completed ---8- So in my opinion correctly reported quota roots should look like this: * OK [CAPABILITY IMAP4rev1 SASL-IR SORT THREAD=REFERENCES MULTIAPPEND UNSELECT LITERAL+ IDLE CHILDREN NAMESPACE LOGIN-REFERRALS UIDPLUS LIST-EXTENDED I18NLEVEL=1 QUOTA AUTH=PLAIN] Dovecot ready. . login rfttest XXX . OK Logged in. . getquotaroot INBOX * QUOTAROOT INBOX Spool * QUOTA Spool (STORAGE 89708 100) . OK Getquotaroot completed. . getquotaroot Trash * QUOTAROOT Trash Home * QUOTA Home (STORAGE 310360 1048576) . OK Getquotaroot completed. . logout * BYE Logging out . OK Logout completed. Now I known what I want... but how to get it :-) While I see no way to use namespaces and/or quota rules to configure this behavior, patching quota.c, quota-fs.c and quota-private.h seems to be an option. A downside of this is, that I've to extend the quota plugin interface (quota_backend_vfuncs) defined in quota-private.h by adding an new callback function. Since all other quota backends don't have this new function, they have to initialize it with NULL. So there are side effects to other quota backends. This is the reason why I want to discuss the above described problem (and solution) before posting my patch :-) Regards, Ralf -- __ Dipl.-Inform. (FH) Ralf Becker Rechenzentrum (r/ft) der FH Trier (Network|Mail|Web|Firewall) University of applied sciences Administrator Schneidershof, D-54293 Trier Mail: [EMAIL PROTECTED]Fon: +49 651 8103 499 WWW:http://www.fh-trier.de/~beckerrFax: +49 651 8103 214 __ smime.p7s Description: S/MIME Cryptographic Signature
Re: [Dovecot] Global Script to filter Spam
Add: global_script_path = /home/vmail/globalsieverc in your dovecot.conf and in /home/vmail/globalsieverc: require [fileinto]; # Move spam to spam folder if header :contains X-Spam-Flag [YES] { fileinto spam; stop; } ___ Lucas On Tue, 08 Jul 2008 11:19:05 -0300, Andreacute;s Yacopino wrote: Dovecot Version: 1.1.1 with sieve and managesieve configured.I want to filter spam with the subject *SPAM* to a spam folder for all users, and i also want users to have personal sieve scripts (like vacation).I have configured Squirrelmail, dovecot manage sieve and avelsieve plugin in squirrelmail to do that.The problem is that the user home 's scripts are replaced with the avelsieve plugin script did it in the web interface and the configuration of .dovecot.sieve calling the global script is lost.Is there any other way to call a global script for all users not depending in the user script? ThanksAndreacute;s Fernando Yacopino
[Dovecot] Dovecot CRAM-MD5 DIGEST-MD5
Hello all. Im try to make a SMTP Auth using Docecot SASL. Im use swaks for tests. Im store users in LDAP. As im understand for CRAM DIGEST MD5 we need to store pass in a clear text?... Ok. mail: [EMAIL PROTECTED] userPassword: 123 - Clear text What im do %swaks -a CRAM-MD5 -au [EMAIL PROTECTED] -ap 123 To: [EMAIL PROTECTED] === Trying mx.domain.off:25... === Connected to mx.domain.off. - 220 mx.domain.off ESMTP Exim 4.69 Tue, 08 Jul 2008 19:14:24 + - EHLO mx.domain.off - 250-mx.domain.off Hello mx.domain.off [172.16.1.19] - 250-SIZE 13631488 - 250-PIPELINING - 250-AUTH PLAIN LOGIN CRAM-MD5 DIGEST-MD5 - 250-STARTTLS - 250 HELP - AUTH CRAM-MD5 - 334 PDM4ODYwNTQ1MjEzMTA3NDEuMTIxNTU0NDQ2NEBteC5kb21haW4ub2ZmPg== - YWRtaW4zQGRvbWFpbi5vZmYgMGJlYzIzOTA5Zjg4OTc3MDdkYTJmZmNmOTEzMDBhMmM= ** 535 Incorrect authentication data *** No authentication type succeeded - QUIT - 221 mx.domain.off closing connection === Connection closed with remote host. Exim says: SMTP AUTH CRAM-MD5 9657 dovecot authentication 9657 AUTH 12 CRAM-MD5service=smtpsecured rip=172.16.1.19 lip=172.16.1.19 resp= 9657 received: CONT12 PDM0MTMzMjg1NTUyOTE0MjMuMTIxNTU0NDcwMUBteC5kb21haW4ub2ZmPg== 9657 SMTP 334 PDM0MTMzMjg1NTUyOTE0MjMuMTIxNTU0NDcwMUBteC5kb21haW4ub2ZmPg== 9657 received: FAIL12 [EMAIL PROTECTED] 9657 SMTP 535 Incorrect authentication data 9657 auth_cram_md5 authenticator failed for mx.domain.off [172.16.1.19] I=[172.16.1.19]:26: 535 Incorrect authentication data ([EMAIL PROTECTED]) 9657 SMTP QUIT Dovecot logs: Info: auth(default): new auth connection: pid=9713 Info: auth(default): client in: AUTH 11 CRAM-MD5 service=smtpsecured rip=172.16.1.19 lip=172.16.1.19 resp=hidden Info: auth(default): client out: CONT 11 PDU5MjUzNjc0Mjg1NDAyNjUuMTIxNTU0NDkyN0BteC5kb21haW4ub2ZmPg== Info: auth(default): client in: CONThidden Info: auth(default): ldap([EMAIL PROTECTED],172.16.1.19): pass search: base=dc=Virtual-Domains,dc=DOMAIN scope=subtree filter=((objectClass=mailUser)([EMAIL PROTECTED])) fields=mail,userPassword Info: auth(default): ldap([EMAIL PROTECTED],172.16.1.19): result: mail(user)[EMAIL PROTECTED] userPassword(password)=hidden Error: auth(default): password([EMAIL PROTECTED],172.16.1.19): Invalid password format for scheme CRAM-MD5 Info: auth(default): client out: FAIL 11 [EMAIL PROTECTED] --- password([EMAIL PROTECTED],172.16.1.19): Invalid password format for scheme CRAM-MD5 Hm... as im see - something wrong in my dovecot-ldap.conf ? Main idea of it is mail = user, userPassword = password. dovecot-ldap.conf: hosts = 127.0.0.1 dn = uid=Dovecot,ou=System-Users,dc=DOMAIN dnpass = 123 debug_level = 0 ldap_version = 3 base = dc=Virtual-Domains,dc=DOMAIN deref = never scope = subtree user_attrs = user_filter = ((objectClass=mailUser)(mail=%u)) pass_attrs = mail=user,userPassword=password pass_filter = ((objectClass=mailUser)(mail=%u)) default_pass_scheme = CRAM-MD5 Dovecot logs with debug_level=1 in attachment. Help me please - I running out of ideas. :-( -- Best regards, Proskurin Kirill dovecot: Jul 08 19:20:42 Info: auth(default): new auth connection: pid=9663 dovecot: Jul 08 19:20:42 Info: auth(default): client in: AUTH 13 CRAM-MD5service=smtpsecured rip=172.16.1.19 lip=172.16.1.19 resp=hidden dovecot: Jul 08 19:20:42 Info: auth(default): client out: CONT 13 PDQzMTQ1ODQxMzA2NDgxODguMTIxNTU0NDg0MkBteC5kb21haW4ub2ZmPg== dovecot: Jul 08 19:20:42 Info: auth(default): client in: CONThidden dovecot: Jul 08 19:20:42 Info: auth(default): ldap([EMAIL PROTECTED],172.16.1.19): pass search: base=dc=Virtual-Domains,dc=ForexClub scope=subtree filter=((objectClass=mailUser)([EMAIL PROTECTED]) ) fields=mail,userPassword dovecot: Jul 08 19:20:42 Error: auth(default): ldap_search dovecot: Jul 08 19:20:42 Error: auth(default): put_filter: ((objectClass=mailUser)([EMAIL PROTECTED])) dovecot: Jul 08 19:20:42 Error: auth(default): put_filter: AND dovecot: Jul 08 19:20:42 Error: auth(default): put_filter_list (objectClass=mailUser)([EMAIL PROTECTED]) dovecot: Jul 08 19:20:42 Error: auth(default): put_filter: (objectClass=mailUser) dovecot: Jul 08 19:20:42 Error: auth(default): put_filter: simple dovecot: Jul 08 19:20:42 Error: auth(default): put_simple_filter: objectClass=mailUser dovecot: Jul 08 19:20:42 Error: auth(default): put_filter: ([EMAIL PROTECTED]) dovecot: Jul 08 19:20:42 Error: auth(default): put_filter: simple dovecot: Jul 08 19:20:42 Error: auth(default): put_simple_filter: [EMAIL PROTECTED] dovecot: Jul 08 19:20:42 Error: auth(default): ldap_send_initial_request dovecot: Jul 08 19:20:42 Error: auth(default): ldap_send_server_request dovecot: Jul 08 19:20:42 Error: auth(default): ldap_result ld 0x18529160 msgid -1 dovecot: Jul 08 19:20:42 Error: auth(default): ldap_chkResponseList ld 0x18529160 msgid -1 all 1 dovecot: Jul 08 19:20:42 Error: auth(default): ldap_chkResponseList returns ld
Re: [Dovecot] Multiple quota roots with quota-fs backend
Hello Stewart, You have to previously know or have determined: a) what FS's are under quota That's easy in my case, because each filesystem is listed in dovecot.conf: quota = fs:Spool:mount=/var/spool/mail quota2 = fs:Home0:mount=/home/f0 quota3 = fs:Home1:mount=/home/f1 quota4 = fs:Home2:mount=/home/f2 quota5 = fs:Home3:mount=/home/f3 ... AND b) know which ones the user uses That should be easy to, because they are listed in mail_location. In my case this is: mail_location = mbox:~/Mail:INBOX=/var/spool/mail/%n AND c) then make multiple calls, one for each FS that the user has stuff in Let take 'quota_transaction_set_limits' as example: If I understand Timo's source code correctly this is done by looping through the mountpoints of all quota roots. But then, and this is a problem, the lowest quota limit is used, because it is not checked, if the mbox file acctually _resides_ in this filesystem. Well... I think what this behavior could be fixed in the same way I've used for GETQUOTAROOT: I've just implemented a callback function 'root_match_box' that returns 'true', if a Mailbox resides on the filesystem defined mount= in quota definition and 'false' if not. This optional function is used in 'quota_root_iter_next' to filter the list of all quota roots. From the source code: --8-- roots = array_get(iter-quota-roots, count); if (iter-i = count) return NULL; for (; iter-i count; iter-i++) { if (roots[iter-i]-backend.v.root_match_box != NULL) { if (!roots[iter-i]-backend.v.root_match_box(roots[iter-i], iter-box)) continue; } ... } --8-- The same should be correct in quota_transaction_set_limits, quota_transaction_commit and quota_default_test_alloc But I should have a deeper look at this... :-) BTW: If this behavior is indeed AIX specific, that's no problem, In this case the function should always returning 'true' or just not be included in the list of callback functions. Regards, Ralf -- __ Dipl.-Inform. (FH) Ralf Becker Rechenzentrum (r/ft) der FH Trier (Network|Mail|Web|Firewall) University of applied sciences Administrator Schneidershof, D-54293 Trier Mail: [EMAIL PROTECTED]Fon: +49 651 8103 499 WWW:http://www.fh-trier.de/~beckerrFax: +49 651 8103 214 __ smime.p7s Description: S/MIME Cryptographic Signature
Re: [Dovecot] FETCH for mailbox got too little data
I've now enabled error logging to a separate log file and see this on today's occurrence: dovecot: Jul 08 09:42:39 Error: IMAP(mortal): Next message unexpectedly lost from 41838245 dovecot: Jul 08 09:42:39 Error: IMAP(mortal): Next message unexpectedly lost from 41838245 dovecot: Jul 08 09:42:39 Panic: IMAP(mortal): file message-parser.c: line 770 (message_parser_parse_next_block): assertion failed: (ctx-input-eof || ctx-input-closed || ctx-input-stream_errno != 0 || ctx-broken) dovecot: Jul 08 09:42:39 Error: IMAP(mortal): Raw backtrace: imap [0x80cfc80] - imap [0x80cfcda] - imap [0x80cf57c] - imap(message_parser_parse_body+0) [0x80c8e00] - imap(index_mail_cache_parse_continue+0x22) [0x8094102] - imap [0x807cd81] - imap(mbox_save_continue+0x38) [0x807ce28] - imap(mail_storage_copy+0xe4) [0x809e5e4] - imap(cmd_copy+0x1d2) [0x805b252] - imap(cmd_uid+0x59) [0x805f4e9] - imap [0x805fe8c] - imap [0x805ff35] - imap [0x80606f5] - imap(client_input+0x5e) [0x806090e] - imap(io_loop_handler_run+0x100) [0x80d75d0] - imap(io_loop_run+0x28) [0x80d6748] - imap(main+0x4ac) [0x806845c] - /lib/libc.so.6(__libc_start_main+0xdc) [0xc2edec] - imap [0x805a271] dovecot: Jul 08 09:42:39 Error: child 31406 (imap) killed with signal 6
[Dovecot] 1.1.1: dovecot-uidlist errors
Same Problem here: both the failed fsync and the Panic. What OS and filesystem do you use? NetBSD 4.0, Mails on NFS (server is a Debian box) Still shouldn't crash even if the fsync fails, I'll see about fixing that. Yes, please. A workaround for now would be to se fsync_disable=yes Same workaround works for me. No need to hurry, it's just a test server (production just moved from 1.0rc18 to 1.0.13).
Re: [Dovecot] Dovecot CRAM-MD5 DIGEST-MD5
On Tue, Jul 8, 2008 at 5:39 PM, Proskurin Kirill [EMAIL PROTECTED] wrote: Error: auth(default): password([EMAIL PROTECTED],172.16.1.19): Invalid password format for scheme CRAM-MD5 dovecot-ldap.conf: default_pass_scheme = CRAM-MD5 Set default_pass_scheme to PLAIN as you store passwords in plain text. For improved security, store the passwords in HMAC-MD5-format. For CRAM-MD5 auth you do not need to store the password in PLAIN format. It is ok to store the password in HMAC-MD5 format. For DIGEST-MD5 you need to store the pass in PLAIN format. Chris
[Dovecot] client cannot list subfolders
Hi, I'm having a problem with the Sylpheed mail client and dovcot 1.0.rc15. Sylpheed does not like how dovecot is returning LIST output so it cannot see subfolders. Note: Sylpheed 2.4 actually works with the same server so apparently something in a newer version of Sylpheed has changed. This is some dialog with the Sylpheed mailing list: Apparently it sees them but they're not making it into the tree: [18:06:12] IMAP4 11 LIST * getting list of ... IMAP4 * LIST (\HasNoChildren) . Lists.Heimdal folder 'Lists/Heimdal' found. IMAP4 * LIST (\HasNoChildren) . Lists.JCIFS folder 'Lists/JCIFS' found. IMAP4 * LIST (\HasNoChildren) . LearnAsSpam folder 'LearnAsSpam' found. IMAP4 * LIST (\HasNoChildren) . Spam folder 'Spam' found. IMAP4 * LIST (\HasNoChildren) . Trash folder 'Trash' found. IMAP4 * LIST (\HasNoChildren) . Sent folder 'Sent' found. IMAP4 * LIST (\HasNoChildren) . Drafts folder 'Drafts' found. IMAP4 * LIST (\HasNoChildren) . Saved folder 'Saved' found. IMAP4 * LIST (\HasNoChildren) . INBOX folder 'INBOX' found. IMAP4 * LIST (\HasNoChildren) . TMP.STMP folder 'TMP/STMP' found. [18:06:12] IMAP4 11 OK List completed. imap_get_part_folder_list(): get root folders append 'LearnAsSpam' append 'Spam' append 'Trash' append 'Sent' append 'Drafts' append 'Saved' append 'INBOX' imap_get_part_folder_list(): get folders under 'LearnAsSpam' imap_get_part_folder_list(): get folders under 'Spam' imap_get_part_folder_list(): get folders under 'Trash' imap_get_part_folder_list(): get folders under 'Sent' imap_get_part_folder_list(): get folders under 'Drafts' imap_get_part_folder_list(): get folders under 'Saved' imap_get_part_folder_list(): get folders under 'INBOX' Setting folder info... empty folder Note that TMP.STMP was created through Sylpheed but after a rebuild it's gone This breaks in the implementation because both Lists and TMP are not listed separately and are not recognised as root folders by Sylpheed. As I read the code, only folders without a '/' are recognised as root folders (considering the '.' namespace that is used here). It could be that Sylpheed 2.4.0 parsed the LIST return values differently. For Thomas White it's the same problem. Folders Academic and Theatre are not recognised as root folders. On the contrary, for example Google Mail returns all root folders separately. Which behaviour exactly is IMAP4 compliant remains to be investigated. Basically Sylpheed does not like the dots (which represent slashes) and would prefer to see each folder listed separately. Can anyone comment regarding proper LIST output and what clients should be expected to handle? Who's bug is this and what is the path of least resistance to fixing it? Mike