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