Bill Shannon
2008-11-18 00:41:38 UTC
I've pushed out a new snapshot of JavaMail 1.4.2. This version
includes several large changes and I'd appreciate as much testing
as possible before the final release.
The new version is available in the java.net maven2 repository at:
http://download.java.net/maven/2/javax/mail/mail/1.4.2-SNAPSHOT/
Be sure to get the latest version; the filename includes a timestamp.
(Scroll to the bottom of the list.)
You'll find the source code for this version in the Mercurial repository
at the JavaMail project on Kenai:
http://kenai.com/projects/javamail
This snapshot includes the following significant changes:
- Improvements to InternetAddress parsing, as announced here in July.
By setting the System property "mail.mime.address.strict" to "false",
no addresses in mail messages will cause parsing errors.
- "Be liberal in what you accept." In addition to the above, several
other System properties can be set to allow JavaMail to accept bogus
messages of various types. See details below.
- Significant rewrite of IMAP locking to avoid deadlocks. If you do
multithreaded access to IMAP servers, or use the IMAP connection pool,
please test these changes.
- Significant rewrite of IMAP message cache to delay creating IMAPMessage
objects until needed. This significantly reduces memory consumption
with very large IMAP mailboxes. The most difficult issues here came
from handling expunge notifications, especially coming from other
clients accessing the same mailbox. If you use the expunge method
while keeping the folder open, or especially if you have multiple
clients accessing the same mailbox and expunging messages, please
test these changes.
- The JavaMail DSN support now also supports parsing Message Delivering
Notifications.
- Simplified SSL support. It's now even easier to enable SSL
support in JavaMail. Instead of using the SSL protocol names,
you can simply set the mail.<protocol>.ssl.enable property. This
means you don't have to remember to (for example) change the
property "mail.smtp.host" to "mail.smtps.host", instead you can
continue to set "mail.smtp.host" and also set "mail.smtp.ssl.enable"
to "true" to enable use of SMTP over SSL.
- RFC 2595 server identity check. Enable the server identity checks
specified in RFC 2595 to prevent man in the middle attacks by setting
the property "mail.<protocol>.ssl.checkserveridentity" to "true".
The full list of changes in this snapshot is included below.
If you find any problems, I'd love to hear about them at ***@sun.com.
I'm especially interested in having people test the IMAP changes and
RFC 2595 server identity checks.
Once I get enough feedback to ensure that this has been well tested, I'll
turn it into the final 1.4.2 release, hopefully later this year or early
next year. That means I really need to hear from you, both good and bad
experiences! If you try this version, let me know!
Thanks!
Bill Shannon
6621377 unexpected result when uuencode data has any line starting with
"END" characters
6629213 base64 encoder sometimes omits CRLF
6670275 headers may not end up on top where they belong
6671855 list on IMAP folder that can contain both messages and folders
might fail if folder is open
6672359 SMTPTransport notifying both partially delivered and
not delivered methods
6676257 cannot specify two custom ssl socket factories for starttls usage
6679333 missing quotes around zero length parameter values
6720896 add mail.mime.uudecode.ignoreerrors system property
6720896 add mail.mime.uudecode.ignoremissingbeginend system property
6730637 deadlocks in IMAP provider when connections fail
6738454 deadlock when connection is broken
6738468 javadocs use fully qualified names
GF 3929 Inconsistent synchronization in com.sun.mail.iap.Protocol
GF 4997 BASE64DecoderStream.skip (etc) skips the wrong number of octets
GF 5189 Can't specify SSLSocketFactory for STARTTLS in Javamail 1.4
GF 5861 add mail.<protocol>.starttls.required prop to require use of STARTTLS
<no id> ignore socket timeout while waiting in IMAP IDLE
<no id> fix bug in MailDateFormat parsing in non-lenient mode
<no id> add mail.mime.multipart.allowempty system property to handle (illegal)
empty multiparts (see javax.mail.internet.MimeMultipart)
<no id> add mail.mime.multipart.ignoreexistingboundaryparameter system property
to allow parsing multiparts with incorrect boundary parameters
<no id> handle address of the form "Undisclosed-Recipients:;"
<no id> add com.sun.mail.util.DecodingException to distinguish decoding errors
<no id> add mail.mime.ignoreunknownencoding system property (see MimeUtility)
<no id> ignore errors from SMTP RSET command
<no id> InternetAddress - detect more errors when strict, accept more when not
<no id> add mail.<protocol>.socketFactory and .ssl.socketFactory properties
<no id> add mail.<protocol>.ssl.enable property
<no id> add mail.<protocol>.ssl.checkserveridentity prop for RFC 2595 checks
<no id> add mail.<protocol>.ssl.checkserveridentity prop for RFC 2595 checks
<no id> add com.sun.mail.util.MailSSLSocketFactory class
<no id> fix possible NPE in MimeMessage if flags is not set in copy constructor
<no id> SMTP I/O failure incorrectly reports valid sent addresses
<no id> avoid creating IMAPMessage objects until they're actually needed
<no id> IMAPStore.isConnected might return true even though not connected
<no id> add support for Message Delivery Notifications (RFC 3798) to dsn.jar
===========================================================================
To unsubscribe, send email to ***@java.sun.com and include in the body
of the message "signoff JAVAMAIL-INTEREST". For general help, send email to
***@java.sun.com and include in the body of the message "help".
includes several large changes and I'd appreciate as much testing
as possible before the final release.
The new version is available in the java.net maven2 repository at:
http://download.java.net/maven/2/javax/mail/mail/1.4.2-SNAPSHOT/
Be sure to get the latest version; the filename includes a timestamp.
(Scroll to the bottom of the list.)
You'll find the source code for this version in the Mercurial repository
at the JavaMail project on Kenai:
http://kenai.com/projects/javamail
This snapshot includes the following significant changes:
- Improvements to InternetAddress parsing, as announced here in July.
By setting the System property "mail.mime.address.strict" to "false",
no addresses in mail messages will cause parsing errors.
- "Be liberal in what you accept." In addition to the above, several
other System properties can be set to allow JavaMail to accept bogus
messages of various types. See details below.
- Significant rewrite of IMAP locking to avoid deadlocks. If you do
multithreaded access to IMAP servers, or use the IMAP connection pool,
please test these changes.
- Significant rewrite of IMAP message cache to delay creating IMAPMessage
objects until needed. This significantly reduces memory consumption
with very large IMAP mailboxes. The most difficult issues here came
from handling expunge notifications, especially coming from other
clients accessing the same mailbox. If you use the expunge method
while keeping the folder open, or especially if you have multiple
clients accessing the same mailbox and expunging messages, please
test these changes.
- The JavaMail DSN support now also supports parsing Message Delivering
Notifications.
- Simplified SSL support. It's now even easier to enable SSL
support in JavaMail. Instead of using the SSL protocol names,
you can simply set the mail.<protocol>.ssl.enable property. This
means you don't have to remember to (for example) change the
property "mail.smtp.host" to "mail.smtps.host", instead you can
continue to set "mail.smtp.host" and also set "mail.smtp.ssl.enable"
to "true" to enable use of SMTP over SSL.
- RFC 2595 server identity check. Enable the server identity checks
specified in RFC 2595 to prevent man in the middle attacks by setting
the property "mail.<protocol>.ssl.checkserveridentity" to "true".
The full list of changes in this snapshot is included below.
If you find any problems, I'd love to hear about them at ***@sun.com.
I'm especially interested in having people test the IMAP changes and
RFC 2595 server identity checks.
Once I get enough feedback to ensure that this has been well tested, I'll
turn it into the final 1.4.2 release, hopefully later this year or early
next year. That means I really need to hear from you, both good and bad
experiences! If you try this version, let me know!
Thanks!
Bill Shannon
6621377 unexpected result when uuencode data has any line starting with
"END" characters
6629213 base64 encoder sometimes omits CRLF
6670275 headers may not end up on top where they belong
6671855 list on IMAP folder that can contain both messages and folders
might fail if folder is open
6672359 SMTPTransport notifying both partially delivered and
not delivered methods
6676257 cannot specify two custom ssl socket factories for starttls usage
6679333 missing quotes around zero length parameter values
6720896 add mail.mime.uudecode.ignoreerrors system property
6720896 add mail.mime.uudecode.ignoremissingbeginend system property
6730637 deadlocks in IMAP provider when connections fail
6738454 deadlock when connection is broken
6738468 javadocs use fully qualified names
GF 3929 Inconsistent synchronization in com.sun.mail.iap.Protocol
GF 4997 BASE64DecoderStream.skip (etc) skips the wrong number of octets
GF 5189 Can't specify SSLSocketFactory for STARTTLS in Javamail 1.4
GF 5861 add mail.<protocol>.starttls.required prop to require use of STARTTLS
<no id> ignore socket timeout while waiting in IMAP IDLE
<no id> fix bug in MailDateFormat parsing in non-lenient mode
<no id> add mail.mime.multipart.allowempty system property to handle (illegal)
empty multiparts (see javax.mail.internet.MimeMultipart)
<no id> add mail.mime.multipart.ignoreexistingboundaryparameter system property
to allow parsing multiparts with incorrect boundary parameters
<no id> handle address of the form "Undisclosed-Recipients:;"
<no id> add com.sun.mail.util.DecodingException to distinguish decoding errors
<no id> add mail.mime.ignoreunknownencoding system property (see MimeUtility)
<no id> ignore errors from SMTP RSET command
<no id> InternetAddress - detect more errors when strict, accept more when not
<no id> add mail.<protocol>.socketFactory and .ssl.socketFactory properties
<no id> add mail.<protocol>.ssl.enable property
<no id> add mail.<protocol>.ssl.checkserveridentity prop for RFC 2595 checks
<no id> add mail.<protocol>.ssl.checkserveridentity prop for RFC 2595 checks
<no id> add com.sun.mail.util.MailSSLSocketFactory class
<no id> fix possible NPE in MimeMessage if flags is not set in copy constructor
<no id> SMTP I/O failure incorrectly reports valid sent addresses
<no id> avoid creating IMAPMessage objects until they're actually needed
<no id> IMAPStore.isConnected might return true even though not connected
<no id> add support for Message Delivery Notifications (RFC 3798) to dsn.jar
===========================================================================
To unsubscribe, send email to ***@java.sun.com and include in the body
of the message "signoff JAVAMAIL-INTEREST". For general help, send email to
***@java.sun.com and include in the body of the message "help".