1
2
3
4
5
6
7 package org.mule.transport.email.transformers;
8
9 import org.mule.api.transformer.TransformerException;
10 import org.mule.transformer.AbstractDiscoverableTransformer;
11 import org.mule.transformer.types.DataTypeFactory;
12
13 import javax.mail.BodyPart;
14 import javax.mail.Message;
15 import javax.mail.internet.MimeMultipart;
16
17
18
19
20
21 public class EmailMessageToString extends AbstractDiscoverableTransformer
22 {
23
24 public EmailMessageToString()
25 {
26 registerSourceType(DataTypeFactory.create(Message.class));
27 setReturnDataType(DataTypeFactory.STRING);
28 }
29
30 @Override
31 public Object doTransform(Object src, String outputEncoding) throws TransformerException
32 {
33 Message msg = (Message) src;
34 try
35 {
36
37
38
39
40
41
42 Object result = msg.getContent();
43 if (result instanceof String)
44 {
45 return result;
46 }
47 else if (result instanceof MimeMultipart)
48 {
49
50 BodyPart firstBodyPart = ((MimeMultipart) result).getBodyPart(0);
51 if (firstBodyPart != null && firstBodyPart.getContentType().startsWith("text/"))
52 {
53 Object content = firstBodyPart.getContent();
54 if (content instanceof String)
55 {
56 return content;
57 }
58 }
59 }
60
61
62 return "";
63 }
64 catch (Exception e)
65 {
66 throw new TransformerException(this, e);
67 }
68 }
69
70 }