A NOTE has been added to this issue.
======================================================================
http://www.dbmail.org/mantis/view.php?id=368
======================================================================
Reported By: rhstone
Assigned To:
======================================================================
Project: DBMail
Issue ID: 368
Category: IMAP daemon
Reproducibility: always
Severity: minor
Priority: normal
Status: new
target:
======================================================================
Date Submitted: 20-Jun-06 11:02 CEST
Last Modified: 22-Jun-06 09:35 CEST
======================================================================
Summary: IMAP daemon sends invalid replies to pine
Description:
When using the pine email program and pointing it to the dbmail imap
server, it sometimes pukes on the imap data stream.
One of the errors I commonly get is:
[{my.dbmail.host.com:993/imap/ssl/novalidate-cert/user= : Junk in end of
group: pn=undisclosed-recipients al= dn=]
These are links to what I've found online about this error. The Google
Groups listing has a reply from Mark Crispin (the author of pine) about
the problem.
http://www.froglogic.com/~porten/archiveopteryx/problems.html
http://groups.google.com/group/comp.mail.pine/msg/efe4058125f6894d?hl=en&
Any ideas?
======================================================================
----------------------------------------------------------------------
aaron - 21-Jun-06 08:12
----------------------------------------------------------------------
I believe that it should look like this:
(NIL NIL "undisclosed-recipients" NIL)
rather than:
("undisclosed-recipients" NIL NIL NIL)
I think this is the relevant language from RFC 3501:
An address structure is a parenthesized list that describes an
electronic mail address. The fields of an address structure
are in the following order: personal name, [SMTP]
at-domain-list (source route), mailbox name, and host name.
[RFC-2822] group syntax is indicated by a special form of
address structure in which the host name field is NIL. If the
mailbox name field is also NIL, this is an end of group marker
(semi-colon in RFC 822 syntax). If the mailbox name field is
non-NIL, this is a start of group marker, and the mailbox name
field holds the group name phrase.
If GMime is parsing these for us, we should ask the GMime maintainer what
his take on it is.
Robbie, could you attach get a tcpdump of a pine session, please?
----------------------------------------------------------------------
rhstone - 21-Jun-06 08:31
----------------------------------------------------------------------
I've attached a debug output from pine which contains both the offending
IMAP from the server and the error message.
Because I am connecting to my server using SSL, I could not use tcpdump to
gather the data. However, if you compile pine with debug support, you can
run it 'pine -d [0-9], as documented in the man page, to output the errors
and imap communication stream to a file.
----------------------------------------------------------------------
aaron - 21-Jun-06 18:45
----------------------------------------------------------------------
Calling internet_address_parse_string on the following addresses, then
running it through our functions to generate an IMAP plist, we see...
undisclosed-recipients ((NIL NIL "undisclosed-recipients" NIL)) <-
correct
undisclosed-recipients; (NIL)
undisclosed-recipients: (("undisclosed-recipients" NIL NIL NIL))
undisclosed-recipients:; (("undisclosed-recipients" NIL NIL NIL))
undisclosed-recipients: ; (("undisclosed-recipients" NIL NIL NIL))
I'm not sure if we should strip off the colons and semicolors, or if GMime
should be doing it, but in any event, that's what's mucking up the gmime
parse.
----------------------------------------------------------------------
paul - 22-Jun-06 09:35
----------------------------------------------------------------------
I was more like thinking along the lines:
if (ia->name && ia->addr.value)
// ok show name, source-route, mailbox, hostname)
else if (ia->name && (! ia->addr.value))
// treat ia->name as mailboxname
Issue History
Date Modified Username Field Change
======================================================================
20-Jun-06 11:02 rhstone New Issue
21-Jun-06 08:12 aaron Note Added: 0001254
21-Jun-06 08:29 rhstone File Added: pine-error.out
21-Jun-06 08:31 rhstone Note Added: 0001255
21-Jun-06 18:45 aaron Note Added: 0001262
22-Jun-06 09:35 paul Note Added: 0001266
======================================================================