Subversion Repositories bacoAlunos

Compare Revisions

Ignore whitespace Rev 1427 → Rev 1429

/branches/v3/impl/src/java/pt/estgp/estgweb/services/email/SendEmailService.java
8,6 → 8,7
import pt.estgp.estgweb.services.expceptions.ServiceException;
import pt.estgp.estgweb.utils.ConfigProperties;
import pt.estgp.estgweb.utils.Email;
import pt.estgp.estgweb.utils.EmailPersonalizedCertificated;
import pt.estgp.estgweb.web.utils.DatesUtils;
import pt.utl.ist.berserk.logic.serviceManager.IService;
 
49,8 → 50,14
}
return serverEmails[serverEmailPos];
}
 
 
public void sendEmail(Email email) throws ServiceException
{
sendEmail(email,null,null);
}
public void sendEmail(Email email,String url,String nome) throws ServiceException
{
if(Globals.TEST_ENVIRONEMENT && !email.isSystemAssumingTestEmail())
{
String warn = "System in TEST Environement - will not send EMAIL";
114,17 → 121,37
if(Email.validEmail(recipient))
{
valid=true;
message.addRecipient(email.getType(),new InternetAddress(recipient));
message.addRecipient(Message.RecipientType.TO,new InternetAddress(recipient));
logger.info("Adding recipient (" + email.getType().toString() + ") to transport:"+recipient);
}
}
 
if(email.getRecipientsCC() != null)
{
for (String recipient : email.getRecipientsCC())
{
if(Email.validEmail(recipient))
{
//valid=true;
message.addRecipient(Message.RecipientType.CC,new InternetAddress(recipient));
logger.info("Adding recipient CC (" + email.getType().toString() + ") to transport:"+recipient);
}
}
}
if(valid)
{
 
String fullMessage = getEmailTextMessage(email);
 
if(url != null && nome != null)
{
logger.info("Requesting certificated Email, will replace fields in template");
fullMessage = fullMessage.replaceAll("@USER_NOME@",nome);
fullMessage = fullMessage.replaceAll("@URL@",url);
}
 
 
 
logger.info("FROM:" + email.getFrom() + " but using: " + sendFromAddress);
//if(email.getFromName() != null)
try {
309,7 → 336,8
// # 0 : From
// # 1 : Subject
// # 2 : Text
// # 2 : FromEmail Adultered in message
// # 3 : FromEmail Adultered in message
// # 4 : URL todo with certificate
List<String> arguments = new ArrayList<String>();
arguments.add(from);
arguments.add(subject);
342,13 → 370,56
logger.info(rec);
logger.info("arguments end");
fromEmail = fromEmail == null ? user.getEmail() : fromEmail;
Email email = new Email(subject ,recipients,fromEmail,template,arguments,Message.RecipientType.BCC);
Email email = new Email(subject ,recipients,fromEmail,template,arguments,Message.RecipientType.TO);
email.setFromName(from + " (PAE-IPP)");
return email;
}
 
public EmailPersonalizedCertificated getMessageEmailAdulteredFromEmailIppCertificated(
String fromEmail, String from, String subject,String text, User user,
List<Long> userIds,
String url
)
{
// # 0 : From
// # 1 : Subject
// # 2 : Text
// # 3 : FromEmail Adultered in message
// # 4 : URL todo with certificate
List<String> arguments = new ArrayList<String>();
arguments.add(from);
arguments.add(subject);
arguments.add(text);
arguments.add(fromEmail);
 
String template;
 
template = Globals.EMAIL_MESSAGE_IPP_TEMPLATE_PT_CERTIFICATED;
 
 
logger.info("Preparing batch work for Personalized Emails Certificated");
logger.info("subject: " + subject);
if(fromEmail == null)
logger.info("user: " + user.getEmail());
else
logger.info("user altered to: " + fromEmail);
logger.info("template: " + template);
logger.info("arguments:");
for(String arg: arguments)
logger.info(arg);
logger.info("userIds:" + userIds);
logger.info("arguments end");
fromEmail = fromEmail == null ? user.getEmail() : fromEmail;
EmailPersonalizedCertificated email = new EmailPersonalizedCertificated(subject ,fromEmail,template,arguments,
url,
userIds);
email.setFromName(from + " (PAE-IPP)");
 
return email;
}
 
 
 
public Email getMessageEmailOld(String from, String subject,String text, LangEnum langEnum, String target, List<User> users, User user)
{
// # 0 : From
/branches/v3/impl/src/java/pt/estgp/estgweb/services/email/Emails.bmp
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+ application/octet-stream
/branches/v3/impl/src/java/pt/estgp/estgweb/services/email/EMAILJobPersonalizedCertificated.java
New file
0,0 → 1,137
package pt.estgp.estgweb.services.email;
 
import jomm.dao.impl.AbstractDao;
import org.apache.log4j.Logger;
import pt.estgp.estgweb.Globals;
import pt.estgp.estgweb.domain.User;
import pt.estgp.estgweb.domain.dao.DaoFactory;
import pt.estgp.estgweb.services.authenticate.AuthenticateService;
import pt.estgp.estgweb.services.jobs.JobHandler;
import pt.estgp.estgweb.utils.Email;
import pt.estgp.estgweb.utils.EmailPersonalizedCertificated;
 
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
 
/**
* @author Jorge Machado
* @date 11/Jul/2008
* @see pt.estgp.estgweb.services.sms
*/
public class EMAILJobPersonalizedCertificated implements JobHandler, Serializable
{
private static final Logger logger = Logger.getLogger(EMAILJobPersonalizedCertificated.class);
 
private EmailPersonalizedCertificated email;
 
 
 
 
public EMAILJobPersonalizedCertificated(EmailPersonalizedCertificated email)
{
this.email = email;
}
 
 
private static final int pauseTime = 1000;
 
 
public void runJob()
{
final EmailPersonalizedCertificated cloned = email.cloneEmailForJob();
 
 
logger.info("Opening new Thread to send emails");
new Thread(
new Runnable() {
@Override
public void run() {
if(Globals.TEST_ENVIRONEMENT && !cloned.isSystemAssumingTestEmail())
{
String warn = "System in TEST Environement - will not send EMAIL";
logger.warn(warn);
return;
}
try
{
String URL_PREFIX = cloned.getUrlPatternWithoutCetificate();
if(URL_PREFIX.indexOf("?") < 0)
URL_PREFIX = URL_PREFIX + "?certificate=";
else
URL_PREFIX = URL_PREFIX + "&certificate=";
 
cloned.setRecipients(new ArrayList<String>());
 
for(long userId: cloned.getUserIds())
{
 
try{
AbstractDao.getCurrentSession().beginTransaction();
AbstractDao.getCurrentSession().clear();
User user = DaoFactory.getUserDaoImpl().load(userId);
String certificate = new AuthenticateService().createCertificate(user);
String emailStr = user.getEmail();
String outEmail = user.getOutEmail();
String preferrefEmail = user.getPreferrefEmail();
String toEmail = null;
 
if(preferrefEmail != null && Email.validEmail(preferrefEmail))
toEmail = preferrefEmail;
else if(emailStr != null && Email.validEmail(emailStr))
toEmail = emailStr;
else if(outEmail != null && Email.validEmail(outEmail))
toEmail = outEmail;
String nome = user.getName();
AbstractDao.getCurrentSession().getTransaction().commit();
 
if(toEmail != null)
{
List<String> ccEmails = new ArrayList<String>();
if(emailStr != null && Email.validEmail(emailStr) && !toEmail.equals(emailStr))
ccEmails.add(emailStr);
if(outEmail != null && Email.validEmail(outEmail) && !toEmail.equals(outEmail))
ccEmails.add(outEmail);
 
 
cloned.setRecipientsCC(ccEmails);
cloned.getRecipients().clear();
cloned.getRecipients().add(toEmail);
 
String finalUrl = URL_PREFIX + certificate;
 
new SendEmailService().sendEmail(cloned,finalUrl,nome);
 
try {
logger.info("Watting to send another email: sent to" + toEmail);
//Thread.sleep(pauseTime);
Thread.sleep(pauseTime);
} catch (InterruptedException e) {
logger.error(e,e);
}
}
 
 
}catch(Throwable e)
{
logger.error(e,e);
}
 
}
 
logger.info("No more user ids to send email. exiting");
 
 
}
catch (Throwable e)
{
logger.error("Sending EMAIL:" + e.toString(),e);
}
}
}
).start();
}
 
 
 
}