1
2
3
4
5
6 package pt.digitalis.dif.utils.mail;
7
8 import java.util.HashMap;
9 import java.util.Map;
10
11 import javax.mail.MessagingException;
12 import javax.mail.internet.AddressException;
13
14 import pt.digitalis.dif.utils.ObjectFormatter;
15 import pt.digitalis.utils.pools.AbstractAction;
16
17
18
19
20
21
22
23 public class MailAction extends AbstractAction {
24
25
26 static private final long serialVersionUID = 429211122232L;
27
28
29 private String addressBCC;
30
31
32 private String addressCC;
33
34
35 private String addressFrom;
36
37
38 private String addressTo;
39
40
41 private String body;
42
43
44 private transient MailSender mailSenderInstance;
45
46
47 private String subject;
48
49
50 private MailType type;
51
52
53
54
55
56
57 @Override
58 protected AbstractAction doExecute() throws AddressException, MessagingException
59 {
60 this.getMailSenderInstance().sendEmail(getType(), getAddressFrom(), getAddressTo(), getAddressCC(),
61 getAddressBCC(), getSubject(), getBody(), null, null);
62
63 return this;
64 }
65
66
67
68
69
70
71 public String getAddressBCC()
72 {
73 return addressBCC;
74 }
75
76
77
78
79
80
81 public String getAddressCC()
82 {
83 return addressCC;
84 }
85
86
87
88
89
90
91 public String getAddressFrom()
92 {
93 return addressFrom;
94 }
95
96
97
98
99
100
101 public String getAddressTo()
102 {
103 return addressTo;
104 }
105
106
107
108
109
110
111 public String getBody()
112 {
113 return body;
114 }
115
116
117
118
119
120
121 public MailSender getMailSenderInstance()
122 {
123 return mailSenderInstance;
124 }
125
126
127
128
129 public Map<String, Object> getProperties()
130 {
131 Map<String, Object> props = new HashMap<String, Object>();
132 props.put("From", getAddressFrom());
133 props.put("To", getAddressTo());
134 props.put("CC", getAddressCC());
135 props.put("BCC", getAddressBCC());
136 props.put("Subject", getSubject());
137 props.put("Type", getType().toString());
138 props.put("Body", getBody());
139
140 return props;
141 }
142
143
144
145
146
147
148 public String getSubject()
149 {
150 return subject;
151 }
152
153
154
155
156
157
158 public MailType getType()
159 {
160 return type;
161 }
162
163
164
165
166
167
168
169 public void setAddressBCC(String adressBCC)
170 {
171 this.addressBCC = adressBCC;
172 }
173
174
175
176
177
178
179
180 public void setAddressCC(String adressCC)
181 {
182 this.addressCC = adressCC;
183 }
184
185
186
187
188
189
190
191 public void setAddressFrom(String adressFrom)
192 {
193 this.addressFrom = adressFrom;
194 }
195
196
197
198
199
200
201
202 public void setAddressTo(String adressTo)
203 {
204 this.addressTo = adressTo;
205 }
206
207
208
209
210
211
212
213 public void setBody(String body)
214 {
215 this.body = body;
216 }
217
218
219
220
221
222
223
224 public void setMailSenderInstance(MailSender mailSenderInstance)
225 {
226 this.mailSenderInstance = mailSenderInstance;
227 }
228
229
230
231
232
233
234
235 public void setSubject(String subject)
236 {
237 this.subject = subject;
238 }
239
240
241
242
243
244
245
246 public void setType(MailType type)
247 {
248 this.type = type;
249 }
250
251
252
253
254 @Override
255 public String toString()
256 {
257 ObjectFormatter formatter = new ObjectFormatter();
258 formatter.addItem("ID", getId());
259 formatter.addItem("Status", getStatus());
260 formatter.addItem("Reason", getReason());
261 formatter.addItem("Reason Exception", getReasonException());
262
263 formatter.addItemIfNotNull("Mail From", addressFrom);
264 formatter.addItemIfNotNull("Mail To", addressTo);
265 formatter.addItemIfNotNull("Mail CC", addressCC);
266 formatter.addItemIfNotNull("Mail BCC", addressBCC);
267 formatter.addItemIfNotNull("Mail Body", body);
268 formatter.addItemIfNotNull("Mail Subject", subject);
269 formatter.addItemIfNotNull("Mail Type", type);
270 formatter.addItem("Enrollment Time", getEnrollmentTime());
271 formatter.addItemIfNotNull("Execution Start Time", getExecutionStartTime());
272 formatter.addItemIfNotNull("Execution End Time", getExecutionEndTime());
273 formatter.addItemIfNotNull("Expiration Time", getExpirationTime());
274 formatter.addItemIfNotNull("Waiting Threads", getWaitingThreads());
275
276 return formatter.getFormatedObject();
277 }
278 }