Hi,
I ran into a problem wherein my mail client (RoundCube) would not display a message from a Dovecot IMAP server (claiming that the message had no content). The raw source of the message looked fine, but the body structure returned by Dovecot only had the first text/plain part and not the alternative text/html part. The message looks like:
... headers removed ...
X-Mailer: Lotus Notes Release 6.5.1 January 21, 2004
Message-ID: <...>
From: user@host.domain
Date: Mon, 20 Oct 2008 14:15:55 -0600
Content-Type: multipart/alternative; boundary="=_alternative
006F3A73872574E8_="
This is a multipart message in MIME format.
--=_alternative 006F3A73872574E8_=
Content-Transfer-Encoding: 7bit
Content-Type: text/plain;
charset=us-ascii
blah blah blah
--=_alternative 006F3A73872574E8_=
Content-Transfer-Encoding: 7bit
Content-Type: text/html;
charset=us-ascii
<br><font size=2 face="sans-serif">blah blah blah in HTML</font>
--=_alternative 006F3A73872574E8_=--
I did a little bit of tracing through the parsing code (message-header-parser.c:message_parse_header_next()) and it appeared that the boundary in the Content-Type header was not parsed correctly, evidently because the header line was folded in the middle of the boundary string. RFC 822 appears to allow folding in a quoted string like this (ยง3.3 "quoted-string"), so I'm curious whether the parsing is working correctly.
Thanks for your help!
Here is my Dovecot information: version: 1.1.4 "dovecot -n" output: # 1.1.4: /usr/local/etc/dovecot.conf Warning: fd limit 256 is lower than what Dovecot can use under full load (more than 384). Either grow the limit or change login_max_processes_count and max_mail_processes settings base_dir: /var/dovecot/ info_log_path: /var/log/dovecot.log listen: *, [::] ssl_cert_file: /System/Library/OpenSSL/certs/imapd.pem ssl_key_file: /System/Library/OpenSSL/certs/privkey.out login_dir: /var/dovecot/login login_executable: /usr/local/libexec/dovecot/imap-login max_mail_processes: 256 mail_location: maildir:%h/Maildir namespace: type: private separator: / inbox: yes list: yes subscriptions: yes namespace: type: shared separator: / prefix: Shared/ location: maildir:/Users/Shared/Maildir list: yes subscriptions: yes auth default: passdb: driver: pam args: imap userdb: driver: passwd
-- *Eric Stadtherr* estadtherr@gmail.com <mailto:estadtherr@gmail.com>