Subversion Repositories bacoAlunos

Rev

Rev 872 | Rev 930 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
29 jmachado 1
package pt.estgp.estgweb.services.email;
2
 
236 jmachado 3
import jomm.utils.TemplateUtils;
4
import org.apache.log4j.Logger;
5
import pt.estgp.estgweb.Globals;
929 jmachado 6
import pt.estgp.estgweb.domain.*;
7
import pt.estgp.estgweb.domain.enums.LangEnum;
8
import pt.estgp.estgweb.services.expceptions.ServiceException;
751 jmachado 9
import pt.estgp.estgweb.utils.ConfigProperties;
929 jmachado 10
import pt.estgp.estgweb.utils.Email;
358 jmachado 11
import pt.estgp.estgweb.web.utils.DatesUtils;
236 jmachado 12
import pt.utl.ist.berserk.logic.serviceManager.IService;
13
 
929 jmachado 14
import javax.mail.*;
15
import javax.mail.internet.InternetAddress;
236 jmachado 16
import javax.mail.internet.MimeMessage;
872 jmachado 17
import java.io.UnsupportedEncodingException;
929 jmachado 18
import java.text.MessageFormat;
236 jmachado 19
import java.util.ArrayList;
929 jmachado 20
import java.util.Date;
29 jmachado 21
import java.util.List;
236 jmachado 22
import java.util.Properties;
29 jmachado 23
 
24
/**
25
 * @author Jorge Machado
26
 * @date 20/Mar/2008
27
 * @time 18:31:00
28
 * @see pt.estgp.estgweb.services.email
29
 */
236 jmachado 30
public class SendEmailService implements IService
29 jmachado 31
{
236 jmachado 32
    private static final 1.5.0/docs/api/java/util/logging/Logger.html">Logger logger = 1.5.0/docs/api/java/util/logging/Logger.html">Logger.getLogger(SendEmailService.class);
33
 
34
    private static final 1.5.0/docs/api/java/lang/String.html">String gradeUnitTemplate = Globals.TEMPLATE_EMAIL_PATH + "/" + Globals.EMAIL_GRADE_UNIT_TEMPLATE;
35
 
36
    public void sendEmail(Email email) throws ServiceException
29 jmachado 37
    {
236 jmachado 38
        try{
39
 
40
            // Set up properties for mail session
41
            1.5.0/docs/api/java/util/Properties.html">Properties props = 1.5.0/docs/api/java/lang/System.html">System.getProperties();
42
            props.put("mail.smtp.host", Globals.EMAIL_SERVER_HOST);
929 jmachado 43
            final 1.5.0/docs/api/java/lang/String.html">String username = Globals.EMAIL_SERVER_USERNAME;
44
            final 1.5.0/docs/api/java/lang/String.html">String password = Globals.EMAIL_SERVER_PASSWORD;
45
            javax.mail.1.5.0/docs/api/java/net/Authenticator.html">Authenticator authenticator = null;
46
            if(Globals.EMAIL_SERVER_SECURITY != null && Globals.EMAIL_SERVER_SECURITY.compareTo("TLS")==0)
47
            {
48
                props.put("mail.smtp.auth", "true");
49
                props.put("mail.smtp.starttls.enable", "true");
50
                props.put("mail.smtp.port", ""+ Globals.EMAIL_SERVER_SECURITY_TLS);
51
                authenticator = new javax.mail.1.5.0/docs/api/java/net/Authenticator.html">Authenticator() {
52
                    protected 1.5.0/docs/api/java/net/PasswordAuthentication.html">PasswordAuthentication getPasswordAuthentication() {
53
                        return new 1.5.0/docs/api/java/net/PasswordAuthentication.html">PasswordAuthentication(username, password);
54
                    }
55
                };
56
            }
57
            else if(Globals.EMAIL_SERVER_SECURITY != null && Globals.EMAIL_SERVER_SECURITY.compareTo("SSL")==0)
58
            {
59
                props.put("mail.smtp.socketFactory.port", Globals.EMAIL_SERVER_SECURITY_SSL);
60
                props.put("mail.smtp.socketFactory.class",
61
                        "javax.net.ssl.SSLSocketFactory");
62
                props.put("mail.smtp.auth", "true");
63
                props.put("mail.smtp.port", Globals.EMAIL_SERVER_SECURITY_SSL);
64
                authenticator = new javax.mail.1.5.0/docs/api/java/net/Authenticator.html">Authenticator() {
65
                    protected 1.5.0/docs/api/java/net/PasswordAuthentication.html">PasswordAuthentication getPasswordAuthentication() {
66
                        return new 1.5.0/docs/api/java/net/PasswordAuthentication.html">PasswordAuthentication(username,password);
67
                    }
68
                };
69
            }
70
            else
71
            {
236 jmachado 72
 
929 jmachado 73
            }
74
 
75
 
76
 
77
 
78
 
79
 
236 jmachado 80
            // Get session
81
            Session session = Session.getDefaultInstance(props, null);
82
 
83
            // Create message
84
            MimeMessage message = new MimeMessage(session);
85
            // Set the recipients of the message
298 jmachado 86
            boolean valid = false;
87
            for (1.5.0/docs/api/java/lang/String.html">String recipient : email.getRecipients())
88
            {
89
                if(Email.validEmail(recipient))
90
                {
91
                    valid=true;
419 jmachado 92
                    message.addRecipient(email.getType(),new InternetAddress(recipient));
811 jmachado 93
                    logger.info("Adding recipient to transport:"+recipient);
298 jmachado 94
                }
236 jmachado 95
            }
298 jmachado 96
            if(valid)
97
            {
811 jmachado 98
 
298 jmachado 99
                1.5.0/docs/api/java/lang/String.html">String content = TemplateUtils.getOrLoadTemplate(Globals.TEMPLATE_EMAIL_PATH + "/" + email.getEmailTemplateName());
100
                // Format the mail message
101
                1.5.0/docs/api/java/lang/String.html">String fullMessage = 1.5.0/docs/api/java/text/MessageFormat.html">MessageFormat.format(content, email.getArguments().toArray());
236 jmachado 102
 
813 jmachado 103
                logger.info("FROM:" + email.getFrom());
872 jmachado 104
                if(email.getFromName() != null)
105
                    try {
106
                        message.setFrom(new InternetAddress(email.getFrom(),email.getFromName()));
107
                    } catch (1.5.0/docs/api/java/io/UnsupportedEncodingException.html">UnsupportedEncodingException e) {
108
                        logger.error(e,e);
109
                        message.setFrom(new InternetAddress(email.getFrom()));
110
                    }
111
                else
112
                    message.setFrom(new InternetAddress(email.getFrom()));
298 jmachado 113
                message.setSubject(email.getSubject());
492 jmachado 114
                message.setText(fullMessage,"utf-8");
236 jmachado 115
 
490 jmachado 116
 
512 jmachado 117
                if(email.isHtml())
118
                    message.setHeader("Content-Type","text/html; charset=\"utf-8\"");
119
                else
120
                    message.setHeader("Content-Type","text/plain; charset=\"utf-8\"");
490 jmachado 121
                message.setHeader("Content-Transfer-Encoding", "quoted-printable");
811 jmachado 122
                logger.info("Sending email to transport:"+fullMessage);
492 jmachado 123
 
811 jmachado 124
 
298 jmachado 125
                Transport.send(message);
126
            }
236 jmachado 127
        }
128
        catch(MessagingException e)
129
        {
130
            logger.error(e,e);
131
            throw new ServiceException(e.toString());
132
        }
29 jmachado 133
    }
236 jmachado 134
 
135
    public Email getSendUrlToFriendEmail(1.5.0/docs/api/java/lang/String.html">String url, 1.5.0/docs/api/java/lang/String.html">String from, LangEnum langEnum, List<String> recipients)
136
    {
137
        List<String> arguments = new ArrayList<String>();
138
        arguments.add(from);
139
        arguments.add(url);
140
        1.5.0/docs/api/java/lang/String.html">String subjectTxt;
141
        1.5.0/docs/api/java/lang/String.html">String template;
142
 
143
        if(langEnum == LangEnum.PORTUGUESE)
144
        {
145
            template = Globals.EMAIL_SEND_URL_FRIEND_TEMPLATE_PT;
237 jmachado 146
            subjectTxt = Globals.EMAIL_SEND_URL_FRIEND_SUBJECT_PT;
236 jmachado 147
        }
148
        else
149
        {
150
            template = Globals.EMAIL_SEND_URL_FRIEND_TEMPLATE_EN;
237 jmachado 151
            subjectTxt = Globals.EMAIL_SEND_URL_FRIEND_SUBJECT_EN;
236 jmachado 152
        }
153
 
154
        1.5.0/docs/api/java/lang/String.html">String subject = java.text.1.5.0/docs/api/java/text/MessageFormat.html">MessageFormat.format(subjectTxt,new 1.5.0/docs/api/java/lang/String.html">String[]{from});
155
        return new Email(subject ,recipients, Globals.SYSTEM_EMAIL_BOX,template,arguments);
156
    }
157
 
158
    public boolean sendUrlToFriend(1.5.0/docs/api/java/lang/String.html">String url, 1.5.0/docs/api/java/lang/String.html">String from, LangEnum langEnum, List<String> recipients)
159
    {
160
        try
161
        {
162
            sendEmail(getSendUrlToFriendEmail(url,from,langEnum,recipients));
163
            return true;
164
        }
165
        catch (ServiceException e)
166
        {
167
            return false;
168
        }
169
    }
170
 
237 jmachado 171
    public boolean sendCourseUnitAnnouncement(CourseUnitAnnouncement announcement, LangEnum langEnum, 1.5.0/docs/api/java/lang/String.html">String from,  List<User> users)
172
    {
173
        try
174
        {
175
            sendEmail(getCourseUnitAnnouncementEmail(announcement,langEnum,from,users));
176
            return true;
177
        }
178
        catch (ServiceException e)
179
        {
180
            return false;
181
        }
182
    }
236 jmachado 183
 
512 jmachado 184
    public Email getMessageEmail(1.5.0/docs/api/java/lang/String.html">String from, 1.5.0/docs/api/java/lang/String.html">String subject,1.5.0/docs/api/java/lang/String.html">String text, LangEnum langEnum, 1.5.0/docs/api/java/lang/String.html">String target, List<User> users, User user)
185
    {
186
//        # 0 : From
187
//        # 1 : Subject
188
//        # 2 : Text
189
//        # 3 : person
190
//        # 4 : target
191
        List<String> arguments = new ArrayList<String>();
192
        arguments.add(from);
193
        arguments.add(subject);
194
        arguments.add(text);
195
        arguments.add(user.getName());
196
        arguments.add(target);
197
 
198
        1.5.0/docs/api/java/lang/String.html">String template;
199
 
200
        if(langEnum == LangEnum.PORTUGUESE)
201
        {
202
            template = Globals.EMAIL_MESSAGE_TEMPLATE_PT;
203
        }
204
        else
205
        {
206
            template = Globals.EMAIL_MESSAGE_TEMPLATE_EN;
207
        }
208
 
209
        List<String> recipients = new ArrayList<String>();
210
        for(User u: users)
211
        {
212
            if(Email.validEmail(u.getEmail()))
213
                recipients.add(u.getEmail());
214
            if(Email.validEmail(u.getOutEmail()))
215
                recipients.add(u.getOutEmail());
216
        }
810 jmachado 217
        logger.info("subject: " + subject);
218
        logger.info("user: " + user.getEmail());
219
        logger.info("template: " + template);
220
        logger.info("arguments:");
221
        for(1.5.0/docs/api/java/lang/String.html">String arg: arguments)
222
            logger.info(arg);
223
        logger.info("recipients:");
224
        for(1.5.0/docs/api/java/lang/String.html">String rec: recipients)
225
            logger.info(rec);
226
        logger.info("arguments end");
872 jmachado 227
        Email email = new Email(subject ,recipients,user.getEmail(),template,arguments,Message.RecipientType.BCC);
228
        email.setFromName(from + " (ESTG)");
229
        return email;
512 jmachado 230
    }
231
 
237 jmachado 232
    public Email getCourseUnitAnnouncementEmail(CourseUnitAnnouncement announcement, LangEnum langEnum, 1.5.0/docs/api/java/lang/String.html">String from,  List<User> users)
233
    {
234
        List<String> arguments = new ArrayList<String>();
235
        arguments.add(announcement.getCourseUnit().getName());
236
        arguments.add(announcement.getTitle());
237
        arguments.add(announcement.getText());
238
        arguments.add(from);
239
 
240
        1.5.0/docs/api/java/lang/String.html">String subjectTxt;
241
        1.5.0/docs/api/java/lang/String.html">String template;
242
 
243
        if(langEnum == LangEnum.PORTUGUESE)
244
        {
245
            template = Globals.EMAIL_COURSEUNIT_ANNOUNCEMENT_TEMPLATE_PT;
246
            subjectTxt = Globals.EMAIL_COURSEUNIT_ANNOUNCEMENT_SUBJECT_PT;
247
        }
248
        else
249
        {
250
            template = Globals.EMAIL_COURSEUNIT_ANNOUNCEMENT_TEMPLATE_EN;
251
            subjectTxt = Globals.EMAIL_COURSEUNIT_ANNOUNCEMENT_SUBJECT_EN;
252
        }
253
 
254
        List<String> recipients = new ArrayList<String>();
255
        for(User u: users)
256
        {
298 jmachado 257
            if(Email.validEmail(u.getEmail()))
258
                recipients.add(u.getEmail());
419 jmachado 259
            if(Email.validEmail(u.getOutEmail()))
260
                recipients.add(u.getOutEmail());
237 jmachado 261
        }
262
 
263
        1.5.0/docs/api/java/lang/String.html">String subject = java.text.1.5.0/docs/api/java/text/MessageFormat.html">MessageFormat.format(subjectTxt,new 1.5.0/docs/api/java/lang/String.html">String[]{announcement.getCourseUnit().getNormalizedName(),announcement.getTitle()});
419 jmachado 264
        1.5.0/docs/api/java/lang/String.html">String fromEmail = Globals.SYSTEM_EMAIL_BOX;
265
        if(announcement.getOwner() != null && Email.validEmail(announcement.getOwner().getEmail()))
266
            fromEmail = announcement.getOwner().getEmail();
267
        return new Email(subject ,recipients,fromEmail,template,arguments,Message.RecipientType.BCC);
237 jmachado 268
    }
269
 
363 jmachado 270
    public Email getCourseUnitBlogPostEmail(BlogPost post, LangEnum langEnum, 1.5.0/docs/api/java/lang/String.html">String from,  List<User> users)
271
    {
272
        List<String> arguments = new ArrayList<String>();
273
        arguments.add(((CourseUnitBlog)post.getBlog()).getCourseUnit().getName());
274
        arguments.add(post.getTitle());
275
        arguments.add(post.getText());
276
        arguments.add(from);
237 jmachado 277
 
363 jmachado 278
        1.5.0/docs/api/java/lang/String.html">String subjectTxt;
279
        1.5.0/docs/api/java/lang/String.html">String template;
280
 
281
        if(langEnum == LangEnum.PORTUGUESE)
282
        {
283
            template = Globals.EMAIL_COURSEUNIT_BLOGPOST_TEMPLATE_PT;
284
            subjectTxt = Globals.EMAIL_COURSEUNIT_BLOGPOST_SUBJECT_PT;
285
        }
286
        else
287
        {
288
            template = Globals.EMAIL_COURSEUNIT_BLOGPOST_TEMPLATE_EN;
289
            subjectTxt = Globals.EMAIL_COURSEUNIT_BLOGPOST_SUBJECT_EN;
290
        }
291
 
292
        List<String> recipients = new ArrayList<String>();
293
        for(User u: users)
294
        {
295
            if(Email.validEmail(u.getEmail()))
296
                recipients.add(u.getEmail());
419 jmachado 297
            if(Email.validEmail(u.getOutEmail()))
298
                recipients.add(u.getOutEmail());
363 jmachado 299
        }
300
 
301
        1.5.0/docs/api/java/lang/String.html">String subject = java.text.1.5.0/docs/api/java/text/MessageFormat.html">MessageFormat.format(subjectTxt,new 1.5.0/docs/api/java/lang/String.html">String[]{((CourseUnitBlog)post.getBlog()).getCourseUnit().getNormalizedName(),post.getTitle()});
419 jmachado 302
        1.5.0/docs/api/java/lang/String.html">String fromEmail = Globals.SYSTEM_EMAIL_BOX;
303
        if(post.getOwner() != null && Email.validEmail(post.getOwner().getEmail()))
304
            fromEmail = post.getOwner().getEmail();
305
        return new Email(subject ,recipients, fromEmail, template,arguments,Message.RecipientType.BCC);
363 jmachado 306
    }
307
 
440 jmachado 308
    public Email getCourseUnitWorkEmail(CourseUnitAssignement assignement, LangEnum langEnum, UserSession userSession,  List<User> users, boolean newWork)
419 jmachado 309
    {
310
        List<String> arguments = new ArrayList<String>();
311
        arguments.add(assignement.getCourseUnit().getName());
312
        arguments.add(assignement.getTitle());
313
        arguments.add(assignement.getDescription());
440 jmachado 314
 
419 jmachado 315
        if(userSession != null && userSession.getName() != null)
316
            arguments.add(userSession.getName());
317
        else
318
            arguments.add("unknown");
363 jmachado 319
 
440 jmachado 320
        arguments.add( DatesUtils.getStringFromDate(assignement.getDeliverDate()));
492 jmachado 321
 
419 jmachado 322
        1.5.0/docs/api/java/lang/String.html">String subjectTxt;
323
        1.5.0/docs/api/java/lang/String.html">String template;
324
 
325
        if(langEnum == LangEnum.PORTUGUESE)
326
        {
440 jmachado 327
            if(newWork)
328
                template = Globals.EMAIL_COURSEUNIT_WORK_TEMPLATE_PT;
329
            else
330
                template = Globals.EMAIL_COURSEUNIT_WORK_CHANGE_TEMPLATE_PT;
419 jmachado 331
            subjectTxt = Globals.EMAIL_COURSEUNIT_WORK_SUBJECT_PT;
332
        }
333
        else
334
        {
440 jmachado 335
            if(newWork)
336
                template = Globals.EMAIL_COURSEUNIT_WORK_TEMPLATE_EN;
337
            else
338
                template = Globals.EMAIL_COURSEUNIT_WORK_CHANGE_TEMPLATE_EN;
419 jmachado 339
            subjectTxt = Globals.EMAIL_COURSEUNIT_WORK_SUBJECT_EN;
340
        }
341
 
342
        List<String> recipients = new ArrayList<String>();
343
        for(User u: users)
344
        {
345
            if(Email.validEmail(u.getEmail()))
346
                recipients.add(u.getEmail());
347
            if(Email.validEmail(u.getOutEmail()))
348
                recipients.add(u.getOutEmail());
349
        }
350
 
351
        1.5.0/docs/api/java/lang/String.html">String subject = java.text.1.5.0/docs/api/java/text/MessageFormat.html">MessageFormat.format(subjectTxt,new 1.5.0/docs/api/java/lang/String.html">String[]{assignement.getCourseUnit().getNormalizedName(),assignement.getTitle()});
352
 
353
        1.5.0/docs/api/java/lang/String.html">String fromEmail = Globals.SYSTEM_EMAIL_BOX;
354
        if(userSession!= null && userSession.getUser() != null && Email.validEmail(userSession.getUser().getEmail()))
355
            fromEmail = userSession.getUser().getEmail();
356
        return new Email(subject ,recipients,fromEmail,template,arguments,Message.RecipientType.BCC);
357
    }
358
 
359
 
360
 
236 jmachado 361
    public Email getNewGradesEmail(List<String[]> grades, LangEnum langEnum, 1.5.0/docs/api/java/lang/String.html">String studentEmail, 1.5.0/docs/api/java/lang/String.html">String studentName)
362
    {
363
        List<String> arguments = new ArrayList<String>();
364
 
365
        1.5.0/docs/api/java/lang/String.html">String subject;
366
        1.5.0/docs/api/java/lang/String.html">String template;
367
 
368
        if(langEnum == LangEnum.PORTUGUESE)
369
        {
370
            template = Globals.EMAIL_NEW_GRADES_TEMPLATE_PT;
237 jmachado 371
            subject = Globals.EMAIL_NEW_GRADES_SUBJECT_PT;
236 jmachado 372
        }
373
        else
374
        {
375
            template = Globals.EMAIL_NEW_GRADES_TEMPLATE_EN;
237 jmachado 376
            subject = Globals.EMAIL_NEW_GRADES_SUBJECT_EN;
236 jmachado 377
        }
378
 
379
        1.5.0/docs/api/java/lang/StringBuilder.html">StringBuilder gradesBuilder = new 1.5.0/docs/api/java/lang/StringBuilder.html">StringBuilder();
380
        for(1.5.0/docs/api/java/lang/String.html">String[] grade:  grades)
381
        {
382
            1.5.0/docs/api/java/lang/String.html">String gradeTxt = TemplateUtils.formatMessageTemplate(gradeUnitTemplate,grade);
383
            gradesBuilder.append(gradeTxt);
384
        }
385
 
386
        arguments.add(studentName);
387
        arguments.add(gradesBuilder.toString());
388
 
389
        List<String> recipients = new ArrayList<String>();
390
        recipients.add(studentEmail);
391
        return new Email(subject ,recipients, Globals.SYSTEM_EMAIL_BOX,template,arguments);
392
    }
393
 
358 jmachado 394
    public Email getSummaryEmail(List<String> emails, CourseUnitSummary cUS, CourseUnit c, LangEnum langEnum)
395
    {
396
        List<String> arguments = new ArrayList<String>();
397
 
398
        1.5.0/docs/api/java/lang/String.html">String data = DatesUtils.getStringFromDate(cUS.getDataAula());
399
        1.5.0/docs/api/java/lang/String.html">String subject;
400
        1.5.0/docs/api/java/lang/String.html">String template;
401
 
402
        if(langEnum == LangEnum.PORTUGUESE)
403
        {
404
            template = Globals.EMAIL_SUMMARY_TEMPLATE_PT;
405
            subject = Globals.EMAIL_SUMMARY_SUBJECT_PT;
406
        }
407
        else
408
        {
409
            template = Globals.EMAIL_SUMMARY_TEMPLATE_EN;
410
            subject = Globals.EMAIL_SUMMARY_SUBJECT_EN;
411
        }
412
        subject = TemplateUtils.formatMessageTemplate(subject,new 1.5.0/docs/api/java/lang/String.html">String[]{c.getName()});
413
 
414
        arguments.add(c.getName());
415
        arguments.add(""+cUS.getNumeroAula());
416
        arguments.add(data);
417
        arguments.add(cUS.getTitulo());
418
        arguments.add(cUS.getDescricao());
419
 
420
        List<String> recipients = new ArrayList<String>();
421
        for(1.5.0/docs/api/java/lang/String.html">String email:emails)
422
            recipients.add(email);
423
        return new Email(subject ,recipients, Globals.SYSTEM_EMAIL_BOX,template,arguments);
424
    }
425
 
751 jmachado 426
    public Email getUnidadeEdicaoEmail(List<String> emails, CourseUnit c, LangEnum langEnum)
427
    {
428
        List<String> arguments = new ArrayList<String>();
429
 
430
 
431
        1.5.0/docs/api/java/lang/String.html">String subject;
432
        1.5.0/docs/api/java/lang/String.html">String template;
433
 
434
        if(langEnum == LangEnum.PORTUGUESE)
435
        {
436
            template = Globals.EMAIL_UNDADE_EDICAO_TEMPLATE_PT;
437
            subject = Globals.EMAIL_UNDADE_EDICAO_SUBJECT_PT;
438
        }
439
        else
440
        {
441
            template = Globals.EMAIL_UNDADE_EDICAO_TEMPLATE_EN;
442
            subject = Globals.EMAIL_UNDADE_EDICAO_SUBJECT_EN;
443
        }
444
        subject = 1.5.0/docs/api/java/text/MessageFormat.html">MessageFormat.format(ConfigProperties.getProperty(subject),new 1.5.0/docs/api/java/lang/String.html">String[]{c.getName()});
445
 
446
        arguments.add(c.getName());
447
 
448
        List<String> recipients = new ArrayList<String>();
449
        for(1.5.0/docs/api/java/lang/String.html">String email:emails)
450
            recipients.add(email);
451
        return new Email(subject ,recipients, Globals.SYSTEM_EMAIL_BOX,template,arguments);
452
    }
453
 
454
     public Email getUnidadeValidadaEmail(List<String> emails, CourseUnit c, LangEnum langEnum)
455
    {
456
        List<String> arguments = new ArrayList<String>();
457
 
458
 
459
        1.5.0/docs/api/java/lang/String.html">String subject;
460
        1.5.0/docs/api/java/lang/String.html">String template;
461
 
462
        if(langEnum == LangEnum.PORTUGUESE)
463
        {
464
            template = Globals.EMAIL_UNDADE_VALIDADA_TEMPLATE_PT;
465
            subject = Globals.EMAIL_UNDADE_VALIDADA_SUBJECT_PT;
466
        }
467
        else
468
        {
469
            template = Globals.EMAIL_UNDADE_VALIDADA_TEMPLATE_EN;
470
            subject = Globals.EMAIL_UNDADE_VALIDADA_SUBJECT_EN;
471
        }
472
        subject = 1.5.0/docs/api/java/text/MessageFormat.html">MessageFormat.format(ConfigProperties.getProperty(subject),new 1.5.0/docs/api/java/lang/String.html">String[]{c.getName()});
473
 
474
        arguments.add(c.getName());
475
 
476
        List<String> recipients = new ArrayList<String>();
477
        for(1.5.0/docs/api/java/lang/String.html">String email:emails)
478
            recipients.add(email);
479
        return new Email(subject ,recipients, Globals.SYSTEM_EMAIL_BOX,template,arguments);
480
    }
481
 
482
    public Email getUnidadeEditadaEmail(List<String> emails, CourseUnit c, LangEnum langEnum)
483
    {
484
        List<String> arguments = new ArrayList<String>();
485
 
486
 
487
        1.5.0/docs/api/java/lang/String.html">String subject;
488
        1.5.0/docs/api/java/lang/String.html">String template;
489
 
490
        if(langEnum == LangEnum.PORTUGUESE)
491
        {
492
            template = Globals.EMAIL_UNDADE_EDITADA_TEMPLATE_PT;
493
            subject = Globals.EMAIL_UNDADE_EDITADA_SUBJECT_PT;
494
        }
495
        else
496
        {
497
            template = Globals.EMAIL_UNDADE_EDITADA_TEMPLATE_EN;
498
            subject = Globals.EMAIL_UNDADE_EDITADA_SUBJECT_EN;
499
        }
500
        subject = 1.5.0/docs/api/java/text/MessageFormat.html">MessageFormat.format(ConfigProperties.getProperty(subject),new 1.5.0/docs/api/java/lang/String.html">String[]{c.getName()});
501
 
502
        arguments.add(c.getCourseName());
503
        arguments.add(c.getName());
504
 
505
        List<String> recipients = new ArrayList<String>();
506
        for(1.5.0/docs/api/java/lang/String.html">String email:emails)
507
            recipients.add(email);
508
        return new Email(subject ,recipients, Globals.SYSTEM_EMAIL_BOX,template,arguments);
509
    }
510
 
236 jmachado 511
    public boolean sendNewGrades(List<String[]> grades, LangEnum langEnum, 1.5.0/docs/api/java/lang/String.html">String studentEmail, 1.5.0/docs/api/java/lang/String.html">String studentName)
512
    {
513
        try
514
        {
515
            sendEmail(getNewGradesEmail(grades,langEnum,studentEmail,studentName));
516
            return true;
517
        }
518
        catch (ServiceException e)
519
        {
520
            return false;
521
        }
522
 
523
    }
524
 
525
    public static void main(1.5.0/docs/api/java/lang/String.html">String [] args)
526
    {
440 jmachado 527
        1.5.0/docs/api/java/lang/System.html">System.out.println( DatesUtils.getStringFromDate(new 5+0%2Fdocs%2Fapi+Date">Date()));
528
//        List<String[]> grades = new ArrayList<String[]>();
529
//        grades.add(new String[]{"Teste","3"});
530
//        grades.add(new String[]{"Teste2","4"});
531
//        new SendEmailService().sendNewGrades(grades,LangEnum.PORTUGUESE,"jmachado@estgp.pt","jorge Machado");
236 jmachado 532
    }
533
 
29 jmachado 534
}