k-9/src/com/fsck/k9/mail
Joe Steele 77407eb5b7 Don't base64 encode attachments of type message/rfc822.
The problem:  Receive a message with an attachment of type message/rfc822
and forward it.  When the message is sent, K-9 Mail uses base64 encoding
for the attachment.  (Alternatively, you could compose a new message and
add such an attachment from a file using a filing-picking app, but that is
not 100% effective because the app may not choose the correct
message/rfc822 MIME type for the attachment.)

Such encoding is prohibited per RFC 2046 (5.2.1) and RFC 2045 (6.4).  Only
8bit or 7bit encoding is permitted for attachments of type message/rfc822.

Thunderbird refuses to decode such attachments.  All that is shown is the
base64 encoded body.

This commit implements LocalAttachmentBody.setEncoding.  If an attachment
to a newly composed message is itself a message, then setEncoding("8bit")
is called, otherwise setEncoding("base64")  is called for the attachment.
Similar behavior occurs when an attachment is retrieved from LocalStore.

The setEncoding method was added to the Body interface, since all
implementations of Body now declare the method.

The problem here differs from that in the preceding commit:  Here, the
encoding problem occurs on sending, not on receipt.  Here, the entire
message (headers and body) is base64 encoded, not just the body.  Here,
the headers correctly identify the encoding used;  it's just that the RFC
does not permit such encoding of attached messages.  The problem here
could in fact occur in combination with the preceding problem.
2013-09-03 19:52:11 -04:00
..
filter Fix a number of build warnings. 2013-02-04 11:18:49 +01:00
internet Don't always base64 encode in BinaryTempFileBody.writeTo 2013-09-03 19:51:26 -04:00
store Don't base64 encode attachments of type message/rfc822. 2013-09-03 19:52:11 -04:00
transport SMTP 8BITMIME compliance 2013-09-03 16:47:57 -04:00
Address.java Avoid race condition that can lead to a NullPointerException 2013-08-21 12:33:27 +02:00
Authentication.java astyle 2011-04-12 22:16:22 +10:00
AuthenticationFailedException.java Big, scary massive "ant astyle" to get us back to something 2011-02-06 17:09:48 -05:00
Body.java Don't base64 encode attachments of type message/rfc822. 2013-09-03 19:52:11 -04:00
BodyPart.java Big, scary massive "ant astyle" to get us back to something 2011-02-06 17:09:48 -05:00
CertificateChainException.java Fix erroneous SSL certificate warnings 2013-08-25 15:43:36 -04:00
CertificateValidationException.java Clean-up related to certificate chains 2013-08-27 18:48:07 -04:00
ConnectionSecurity.java Renamed class StoreSettings to ServerSettings 2011-06-07 16:09:15 +02:00
FetchProfile.java Big, scary massive "ant astyle" to get us back to something 2011-02-06 17:09:48 -05:00
Flag.java + add support for $Forwarded IMAP flag 2012-08-29 02:26:38 +02:00
Folder.java Koji Arai pointed out that I screwed up the constants for folder open modes 2013-08-25 11:36:25 -04:00
Message.java Strip off signatures from preview. 2013-01-07 10:39:08 +01:00
MessagingException.java Big, scary massive "ant astyle" to get us back to something 2011-02-06 17:09:48 -05:00
Multipart.java Big, scary massive "ant astyle" to get us back to something 2011-02-06 17:09:48 -05:00
Part.java Big, scary massive "ant astyle" to get us back to something 2011-02-06 17:09:48 -05:00
PushReceiver.java Big, scary massive "ant astyle" to get us back to something 2011-02-06 17:09:48 -05:00
Pusher.java Big, scary massive "ant astyle" to get us back to something 2011-02-06 17:09:48 -05:00
ServerSettings.java Modified ServerSettings to be able to create instances with "extras" 2011-12-01 02:57:53 +01:00
Store.java Add code to remove references to LocalStore when deleting accounts 2013-08-30 03:02:50 +02:00
Transport.java Fix Issue 2389: Self signed certificate expiry causes silent send/receive failure. 2013-01-10 16:49:55 -05:00