Hi,

Timo Sirainen wrote:
On Tue, 2007-08-07 at 12:21 +0200, Bernd Kuhls wrote:
Now I create a new message in Thunderbird and save it as draft. A zero
byte file "Drafts" is created in /home/$user/.imap_mail/ but the message
I wanted to save got _lost_, /home/$user/.imap_mail/Drafts stays at zero
bytes. The next message I try to save as draft finds its way to the Drafts
mbox however.

Did you check what commands Thunderbird sends? Use e.g. rawlog
(http://dovecot.org/bugreport.html). I don't think snarf plugin should
cause this, and in general I can't think of a bug in Dovecot that would
cause this.

I reproduced the bug with Dovecot 1.0.5 without snarf plugin and it
happened again.

The user I used is "kuhls2", its home is /home/kuhls2, the mail folder
(mbox format) is "/home/kuhls2/.imap_mail". This directory does not
exist when I started my tests with a fresh install of Thunderbird
2.0.0.6 on Windows XP. I need this scenario working because I am about
to switch from a working UW-IMAP install using /var/mail/$USER to
Dovecot using "$HOME/.imap_mail/". Saved mails should not get lost with
the new setup.

After setting up Thunderbird with IMAP/SSL access I connected to the
Dovecot server and logged in, .imap_mail looks like this after login:

bach:/home/kuhls2/dovecot.rawlog# ls -la ../.imap_mail/
total 12
-rw------- 1 kuhls2 worker    0 2007-09-09 22:49 inbox
-rw------- 1 kuhls2 worker    6 2007-09-09 22:49 .subscriptions
-rw------- 1 kuhls2 worker    0 2007-09-09 22:49 Trash

These files were created during the first login with Thunderbird, note
that neither a mbox "Drafts" is created nor is it visible in
Thunderbirds folder list, which is ok.

Here is the rawlog of this transaction:

# cat 20070909-234323-10517.in
3 namespace
4 lsub "" "*"
5 list "" "INBOX"
6 list "" "Trash"
7 create "Trash"
8 subscribe "Trash"
9 list "" "Trash"
10 select "INBOX"
11 getquotaroot "INBOX"
12 IDLE

# cat 20070909-234323-10517.out
* OK [RAWLOG TIMESTAMP] 2007-09-09 23:43:23
* NAMESPACE (("" "/")) NIL NIL
3 OK Namespace completed.
4 OK Lsub completed.
* LIST (\NoInferiors \UnMarked) "/" "INBOX"
5 OK List completed.
6 OK List completed.
7 OK Create completed.
8 OK Subscribe completed.
* LIST (\NoInferiors \UnMarked) "/" "Trash"
9 OK List completed.
* FLAGS (\Answered \Flagged \Deleted \Seen \Draft)
* OK [PERMANENTFLAGS (\Answered \Flagged \Deleted \Seen \Draft \*)] Flags 
permitted.
* 0 EXISTS
* 0 RECENT
* OK [UIDVALIDITY 1189369511] UIDs valid
* OK [UIDNEXT 1] Predicted next UID
10 OK [READ-WRITE] Select completed.
* QUOTAROOT "INBOX" ""
* QUOTA "" (STORAGE 84 0)
11 OK Getquotaroot completed.
+ idling

Then I started to write a new mail and saved it as Draft, mbox Drafts
gets created with 0 byte length, no error message in Dovecot logfile nor
in Thunderbird, the mail content was not saved at all:

bach:/home/kuhls2/dovecot.rawlog# ls -la ../.imap_mail/
total 12
-rw------- 1 kuhls2 worker    0 2007-09-09 22:51 Drafts
-rw------- 1 kuhls2 worker    0 2007-09-09 22:49 inbox
-rw------- 1 kuhls2 worker   13 2007-09-09 22:51 .subscriptions
-rw------- 1 kuhls2 worker    0 2007-09-09 22:49 Trash
bach:/home/kuhls2/dovecot.rawlog# cat ../.imap_mail/.subscriptions
Trash
Drafts

Here is the rawlog when saving the mail into drafts folder.
The first two log files had some lines added:

# cat 20070909-234323-10517.in
...
DONE
13 list "" "Drafts"
14 create "Drafts"
15 subscribe "Drafts"
16 list "" "Drafts"
17 IDLE


# cat 20070909-234323-10517.out
...
12 OK Idle completed.
13 OK List completed.
14 OK Create completed.
15 OK Subscribe completed.
* LIST (\NoInferiors \UnMarked) "/" "Drafts"
16 OK List completed.
+ idling

And two new logfiles were created:

# cat 20070909-234439-10531.in
3 select "Drafts"
4 IDLE


# cat 20070909-234439-10531.out
* OK [RAWLOG TIMESTAMP] 2007-09-09 23:44:39
* FLAGS (\Answered \Flagged \Deleted \Seen \Draft)
* OK [PERMANENTFLAGS (\Answered \Flagged \Deleted \Seen \Draft \*)] Flags 
permitted.
* 0 EXISTS
* 0 RECENT
* OK [UIDVALIDITY 1189370254] UIDs valid
* OK [UIDNEXT 1] Predicted next UID
3 OK [READ-WRITE] Select completed.
+ idling

Please note that I start Dovecot using inetd:

imap    stream  tcp     nowait  root    /usr/sbin/tcpd 
/usr/lib/dovecot/imap-login
imaps   stream  tcp     nowait  root    /usr/sbin/tcpd 
/usr/lib/dovecot/imap-login --ssl
pop3    stream  tcp     nowait  root    /usr/sbin/tcpd 
/usr/lib/dovecot/pop3-login
pop3s   stream  tcp     nowait  root    /usr/sbin/tcpd 
/usr/lib/dovecot/pop3-login --ssl


Doesn't Dovecot use /var/mail/$user then as the INBOX if
the .imap_mail/inbox doesn't exist?

Yes, it seems so but its not a problem for me because the mails get
snarfed later on.

Here is the config:

# dovecot -n
# 1.0.5: /etc/dovecot/dovecot.conf
log_path: /var/log/dovecot/dovecot.main
log_timestamp: %Y-%m-%d %H:%M:%S
protocols: imap imaps pop3 pop3s
login_dir: /var/run/dovecot/login
login_executable(default): /usr/lib/dovecot/imap-login
login_executable(imap): /usr/lib/dovecot/imap-login
login_executable(pop3): /usr/lib/dovecot/pop3-login
mail_extra_groups: mail
mail_location: mbox:~/.imap_mail:INDEX=/var/mail/indexes/%u
mail_executable(default): /usr/lib/dovecot/rawlog /usr/lib/dovecot/imap
mail_executable(imap): /usr/lib/dovecot/rawlog /usr/lib/dovecot/imap
mail_executable(pop3): /usr/lib/dovecot/pop3
mail_plugins(default): quota imap_quota
mail_plugins(imap): quota imap_quota
mail_plugins(pop3):
mail_plugin_dir(default): /usr/lib/dovecot/modules/imap
mail_plugin_dir(imap): /usr/lib/dovecot/modules/imap
mail_plugin_dir(pop3): /usr/lib/dovecot/modules/pop3
imap_client_workarounds(default): outlook-idle netscape-eoh 
tb-extra-mailbox-sep delay-newmail
imap_client_workarounds(imap): outlook-idle netscape-eoh tb-extra-mailbox-sep 
delay-newmail
imap_client_workarounds(pop3): outlook-idle
pop3_uidl_format(default):
pop3_uidl_format(imap):
pop3_uidl_format(pop3): %08Xv%08Xu
auth default:
  passdb:
    driver: pam
  userdb:
    driver: passwd
plugin:
  quota: fs

Greetings, Bernd Kuhls


Reply via email to