|
@ -29,6 +29,7 @@ import java.io.ByteArrayOutputStream; |
|
|
import java.io.File; |
|
|
import java.io.File; |
|
|
import java.io.IOException; |
|
|
import java.io.IOException; |
|
|
import java.io.InputStream; |
|
|
import java.io.InputStream; |
|
|
|
|
|
import java.io.UnsupportedEncodingException; |
|
|
import java.nio.charset.Charset; |
|
|
import java.nio.charset.Charset; |
|
|
import java.util.ArrayList; |
|
|
import java.util.ArrayList; |
|
|
import java.util.Date; |
|
|
import java.util.Date; |
|
@ -248,7 +249,28 @@ public class MessageHelper { |
|
|
private String getHtml(Part part) throws MessagingException { |
|
|
private String getHtml(Part part) throws MessagingException { |
|
|
if (part.isMimeType("text/*")) |
|
|
if (part.isMimeType("text/*")) |
|
|
try { |
|
|
try { |
|
|
String s = part.getContent().toString(); |
|
|
|
|
|
|
|
|
String s; |
|
|
|
|
|
try { |
|
|
|
|
|
s = part.getContent().toString(); |
|
|
|
|
|
} catch (UnsupportedEncodingException ex) { |
|
|
|
|
|
Log.w(Helper.TAG, part.getContentType() + "\n" + ex + "\n" + Log.getStackTraceString(ex)); |
|
|
|
|
|
s = "Unsupported encoding: " + part.getContentType() + "\n\n"; |
|
|
|
|
|
|
|
|
|
|
|
InputStream is = part.getInputStream(); |
|
|
|
|
|
|
|
|
|
|
|
ByteArrayOutputStream os = new ByteArrayOutputStream(); |
|
|
|
|
|
byte[] buffer = new byte[8192]; |
|
|
|
|
|
for (int len = is.read(buffer); len != -1; len = is.read(buffer)) |
|
|
|
|
|
os.write(buffer, 0, len); |
|
|
|
|
|
os.toByteArray(); |
|
|
|
|
|
|
|
|
|
|
|
try { |
|
|
|
|
|
s += new String(os.toByteArray(), "US-ASCII"); |
|
|
|
|
|
} catch (UnsupportedEncodingException uex) { |
|
|
|
|
|
Log.w(Helper.TAG, uex + "\n" + Log.getStackTraceString(uex)); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
if (part.isMimeType("text/plain")) |
|
|
if (part.isMimeType("text/plain")) |
|
|
s = "<pre>" + s.replaceAll("\\r?\\n", "<br />") + "</pre>"; |
|
|
s = "<pre>" + s.replaceAll("\\r?\\n", "<br />") + "</pre>"; |
|
|
return s; |
|
|
return s; |
|
@ -316,10 +338,24 @@ public class MessageHelper { |
|
|
|
|
|
|
|
|
Object content = part.getContent(); |
|
|
Object content = part.getContent(); |
|
|
if (content instanceof InputStream || content instanceof String) { |
|
|
if (content instanceof InputStream || content instanceof String) { |
|
|
if (Part.ATTACHMENT.equalsIgnoreCase(part.getDisposition()) || !TextUtils.isEmpty(part.getFileName())) { |
|
|
|
|
|
|
|
|
String disposition; |
|
|
|
|
|
try { |
|
|
|
|
|
disposition = part.getDisposition(); |
|
|
|
|
|
} catch (MessagingException ex) { |
|
|
|
|
|
disposition = null; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
String filename; |
|
|
|
|
|
try { |
|
|
|
|
|
filename = part.getFileName(); |
|
|
|
|
|
} catch (MessagingException ex) { |
|
|
|
|
|
filename = null; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
if (disposition == null || Part.ATTACHMENT.equalsIgnoreCase(disposition) || !TextUtils.isEmpty(filename)) { |
|
|
ContentType ct = new ContentType(part.getContentType()); |
|
|
ContentType ct = new ContentType(part.getContentType()); |
|
|
EntityAttachment attachment = new EntityAttachment(); |
|
|
EntityAttachment attachment = new EntityAttachment(); |
|
|
attachment.name = part.getFileName(); |
|
|
|
|
|
|
|
|
attachment.name = filename; |
|
|
attachment.type = ct.getBaseType(); |
|
|
attachment.type = ct.getBaseType(); |
|
|
attachment.size = part.getSize(); |
|
|
attachment.size = part.getSize(); |
|
|
attachment.part = part; |
|
|
attachment.part = part; |
|
|