diff --git a/.classpath b/.classpath index 7c3f645a0..67157cd28 100644 --- a/.classpath +++ b/.classpath @@ -3,12 +3,12 @@ - - + + diff --git a/libs/apache-mime4j-core-0.7-SNAPSHOT.jar b/libs/apache-mime4j-core-0.7-SNAPSHOT.jar deleted file mode 100644 index 540a6c5e7..000000000 Binary files a/libs/apache-mime4j-core-0.7-SNAPSHOT.jar and /dev/null differ diff --git a/libs/apache-mime4j-core-0.7.2.jar b/libs/apache-mime4j-core-0.7.2.jar new file mode 100644 index 000000000..b5c225b5d Binary files /dev/null and b/libs/apache-mime4j-core-0.7.2.jar differ diff --git a/libs/apache-mime4j-dom-0.7-SNAPSHOT.jar b/libs/apache-mime4j-dom-0.7-SNAPSHOT.jar deleted file mode 100644 index 620421e6f..000000000 Binary files a/libs/apache-mime4j-dom-0.7-SNAPSHOT.jar and /dev/null differ diff --git a/libs/apache-mime4j-dom-0.7.2.jar b/libs/apache-mime4j-dom-0.7.2.jar new file mode 100644 index 000000000..0cdd3ce33 Binary files /dev/null and b/libs/apache-mime4j-dom-0.7.2.jar differ diff --git a/src/com/fsck/k9/mail/Address.java b/src/com/fsck/k9/mail/Address.java index 50dd91a5d..f988a656f 100644 --- a/src/com/fsck/k9/mail/Address.java +++ b/src/com/fsck/k9/mail/Address.java @@ -1,6 +1,15 @@ package com.fsck.k9.mail; +import java.util.ArrayList; +import java.util.List; + +import org.apache.james.mime4j.MimeException; +import org.apache.james.mime4j.codec.EncoderUtil; +import org.apache.james.mime4j.dom.address.Mailbox; +import org.apache.james.mime4j.dom.address.MailboxList; +import org.apache.james.mime4j.field.address.AddressBuilder; + import android.text.Spannable; import android.text.SpannableString; import android.text.SpannableStringBuilder; @@ -11,16 +20,8 @@ import android.util.Log; import com.fsck.k9.K9; import com.fsck.k9.helper.Contacts; -import com.fsck.k9.helper.Utility; import com.fsck.k9.helper.StringUtils; -import org.apache.james.mime4j.codec.EncoderUtil; -import org.apache.james.mime4j.dom.address.Mailbox; -import org.apache.james.mime4j.dom.address.MailboxList; -import org.apache.james.mime4j.field.address.parser.AddressBuilder; -import org.apache.james.mime4j.MimeException; - -import java.util.ArrayList; -import java.util.List; +import com.fsck.k9.helper.Utility; public class Address { @@ -137,7 +138,8 @@ public class Address { } List
addresses = new ArrayList
(); try { - MailboxList parsedList = AddressBuilder.parseAddressList(addressList).flatten(); + MailboxList parsedList = AddressBuilder.DEFAULT.parseAddressList(addressList).flatten(); + for (int i = 0, count = parsedList.size(); i < count; i++) { org.apache.james.mime4j.dom.address.Address address = parsedList.get(i); if (address instanceof Mailbox) { @@ -145,13 +147,13 @@ public class Address { addresses.add(new Address(mailbox.getLocalPart() + "@" + mailbox.getDomain(), mailbox.getName(), false)); } else { Log.e(K9.LOG_TAG, "Unknown address type from Mime4J: " - + address.getClass().toString()); + + address.getClass().toString()); } } } catch (MimeException pe) { Log.e(K9.LOG_TAG, "MimeException in Address.parse()", pe); //but we do an silent failover : we just use the given string as name with empty address - addresses.add(new Address(null, addressList,false)); + addresses.add(new Address(null, addressList, false)); } return addresses.toArray(EMPTY_ADDRESS_ARRAY); } diff --git a/src/com/fsck/k9/mail/internet/MimeMessage.java b/src/com/fsck/k9/mail/internet/MimeMessage.java index 0ac949524..d61d85f00 100644 --- a/src/com/fsck/k9/mail/internet/MimeMessage.java +++ b/src/com/fsck/k9/mail/internet/MimeMessage.java @@ -1,24 +1,38 @@ package com.fsck.k9.mail.internet; -import com.fsck.k9.mail.*; -import com.fsck.k9.mail.store.UnavailableStorageException; - -import org.apache.james.mime4j.stream.BodyDescriptor; -import org.apache.james.mime4j.stream.RawField; -import org.apache.james.mime4j.parser.ContentHandler; -import org.apache.james.mime4j.io.EOLConvertingInputStream; -import org.apache.james.mime4j.parser.MimeStreamParser; -import org.apache.james.mime4j.stream.MimeEntityConfig; -import org.apache.james.mime4j.dom.field.DateTimeField; -import org.apache.james.mime4j.dom.field.Field; -import org.apache.james.mime4j.field.DefaultFieldParser; +import java.io.BufferedWriter; +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; +import java.io.OutputStreamWriter; +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.LinkedList; +import java.util.Locale; +import java.util.Set; +import java.util.UUID; import org.apache.james.mime4j.MimeException; +import org.apache.james.mime4j.dom.field.DateTimeField; +import org.apache.james.mime4j.dom.field.ParsedField; +import org.apache.james.mime4j.field.DefaultFieldParser; +import org.apache.james.mime4j.io.EOLConvertingInputStream; +import org.apache.james.mime4j.parser.ContentHandler; +import org.apache.james.mime4j.parser.MimeStreamParser; +import org.apache.james.mime4j.stream.BodyDescriptor; +import org.apache.james.mime4j.stream.Field; +import org.apache.james.mime4j.stream.MimeConfig; +import org.apache.james.mime4j.stream.RawField; -import java.io.*; -import java.text.SimpleDateFormat; -import java.util.*; +import com.fsck.k9.mail.Address; +import com.fsck.k9.mail.Body; +import com.fsck.k9.mail.BodyPart; +import com.fsck.k9.mail.Message; +import com.fsck.k9.mail.MessagingException; +import com.fsck.k9.mail.Multipart; +import com.fsck.k9.mail.Part; +import com.fsck.k9.mail.store.UnavailableStorageException; /** * An implementation of Message that stores all of it's metadata in RFC 822 and @@ -73,7 +87,7 @@ public class MimeMessage extends Message { mBody = null; - MimeEntityConfig parserConfig = new MimeEntityConfig(); + MimeConfig parserConfig = new MimeConfig(); parserConfig.setMaxHeaderLen(-1); // The default is a mere 10k parserConfig.setMaxLineLen(-1); // The default is 1000 characters. Some MUAs generate // REALLY long References: headers @@ -458,27 +472,8 @@ public class MimeMessage extends Message { expect(Part.class); } - public void field(RawField field) { - expect(Part.class); - try { - Field parsedField = DefaultFieldParser.parse(field.getRaw(), null); - ((Part)stack.peek()).addHeader(parsedField.getName(), parsedField.getBody().trim()); - } catch (MessagingException me) { - throw new Error(me); - } catch (MimeException me) { - throw new Error(me); - } - } - public void field(String fieldData) { - expect(Part.class); - try { - String[] tokens = fieldData.split(":", 2); - ((Part)stack.peek()).addHeader(tokens[0], tokens[1].trim()); - } catch (MessagingException me) { - throw new Error(me); - } - } + public void endHeader() { expect(Part.class); @@ -552,6 +547,16 @@ public class MimeMessage extends Message { public void raw(InputStream is) throws IOException { throw new UnsupportedOperationException("Not supported"); } + + @Override + public void field(Field parsedField) throws MimeException { + expect(Part.class); + try { + ((Part)stack.peek()).addHeader(parsedField.getName(), parsedField.getBody().trim()); + } catch (MessagingException me) { + throw new Error(me); + } + } } /**