/impl/conf/app.properties |
---|
17,6 → 17,10 |
email.local.suffix=estgp.pt |
email.server=smtp.gmail.com |
#to use example: bacodev1@estgp.pt bacodev2@estgp.pt |
email.user.prefix=bacodev |
email.user.sufix=@estgp.pt |
email.user.count=10 |
email.user=bacodev@estgp.pt |
email.password=Agreyq54p7870# |
email.from=bacodev@estgp.pt |
/impl/conf/template/email/message_en.txt |
---|
1,26 → 1,28 |
# 0 : From |
# 1 : Subject |
# 2 : Text |
# 3 : person |
# 4 : target |
# |
# Message Email |
# |
# 0 from role; |
# 1 subject |
# 2 text |
# 3 nome user |
# 4 target |
# 5 emailFrom |
<html> |
<head> |
<title>{1}</title> |
</head> |
<body> |
<h3>Dear {4}</h3> |
<p>Dear {4}</p> |
<p>A new message has been placed from {0}:</p> |
<p>Message from: {0}</p> |
<p>Subject: {1}</p> |
{1} |
{2} |
<p>Best Regards {3}</p> |
<p>Regards, {0}</p> |
<p>Reply to email: {5}</p> |
--------------------------------------------- |
<p>Escola Superior de Tecnologia e Gestão</p> |
<p>Instituto Politécnico de Portalegre</p> |
/impl/conf/template/email/message_pt.txt |
---|
1,20 → 1,28 |
|
# 0 from role; |
# 1 subject |
# 2 text |
# 3 nome user |
# 4 target |
# 5 emailFrom |
<html> |
<head> |
<title>{1}</title> |
</head> |
<body> |
<!--<h3>Caros {4}</h3>--> |
<p>Caros {4}</p> |
<!--<p>Um nova mensagem foi enviada por {0}:</p>--> |
<p>Mensagem de: {0}</p> |
<p>Assunto: {1}</p> |
{1} |
{2} |
<p>Cumprimentos, {3}</p> |
<p>Cumprimentos, {0}</p> |
<p>Se pretender responder responda para o email: {5}</p> |
--------------------------------------------- |
<p>Escola Superior de Tecnologia e Gestão</p> |
<p>Instituto Politécnico de Portalegre</p> |
/impl/src/java/pt/estgp/estgweb/Globals.java |
---|
126,6 → 126,11 |
public static final String EMAIL_SERVER_SECURITY = ConfigProperties.getProperty("email.server.security"); |
public static final int EMAIL_SERVER_SECURITY_TLS = ConfigProperties.getIntProperty("email.server.security.tls"); |
public static final int EMAIL_SERVER_SECURITY_SSL = ConfigProperties.getIntProperty("email.server.security.ssl"); |
public static final String EMAIL_SERVER_USER_PREFIX = ConfigProperties.getProperty("email.user.prefix"); |
public static final String EMAIL_SERVER_USER_SUFIX = ConfigProperties.getProperty("email.user.sufix"); |
public static final int EMAIL_SERVER_USER_COUNT = ConfigProperties.getIntProperty("email.user.count"); |
public static final String EMAIL_SERVER_USERNAME = ConfigProperties.getProperty("email.user"); |
public static final String EMAIL_SERVER_PASSWORD = ConfigProperties.getProperty("email.password"); |
/impl/src/java/pt/estgp/estgweb/services/email/SendEmailService.java |
---|
33,9 → 33,29 |
private static final String gradeUnitTemplate = Globals.TEMPLATE_EMAIL_PATH + "/" + Globals.EMAIL_GRADE_UNIT_TEMPLATE; |
static String[] serverEmails; |
static int serverEmailPos = -1; |
static{ |
serverEmails = new String[Globals.EMAIL_SERVER_USER_COUNT]; |
for(int i = 1;i<= Globals.EMAIL_SERVER_USER_COUNT;i++) |
{ |
serverEmails[i-1] = Globals.EMAIL_SERVER_USER_PREFIX + i + Globals.EMAIL_SERVER_USER_SUFIX; |
} |
} |
private static synchronized String getRoundRobinEmailUser() |
{ |
serverEmailPos++; |
if(serverEmailPos >= Globals.EMAIL_SERVER_USER_COUNT) |
{ |
serverEmailPos = 0; |
} |
return serverEmails[serverEmailPos]; |
} |
public void sendEmail(Email email) throws ServiceException |
{ |
try{ |
final String sendFromAddress = getRoundRobinEmailUser(); |
// Set up properties for mail session |
Properties props = System.getProperties(); |
50,7 → 70,7 |
props.put("mail.smtp.port", ""+ Globals.EMAIL_SERVER_SECURITY_TLS); |
authenticator = new javax.mail.Authenticator() { |
protected PasswordAuthentication getPasswordAuthentication() { |
return new PasswordAuthentication(username, password); |
return new PasswordAuthentication(sendFromAddress, password); |
} |
}; |
} |
63,7 → 83,7 |
props.put("mail.smtp.port", Globals.EMAIL_SERVER_SECURITY_SSL); |
authenticator = new javax.mail.Authenticator() { |
protected PasswordAuthentication getPasswordAuthentication() { |
return new PasswordAuthentication(username,password); |
return new PasswordAuthentication(sendFromAddress,password); |
} |
}; |
} |
104,13 → 124,13 |
logger.info("FROM:" + email.getFrom() + " but using: " + Globals.SYSTEM_EMAIL_BOX); |
logger.info("FROM:" + email.getFrom() + " but using: " + sendFromAddress); |
//if(email.getFromName() != null) |
try { |
message.setFrom(new InternetAddress(Globals.SYSTEM_EMAIL_BOX,Globals.SYSTEM_EMAIL_BOX)); |
message.setFrom(new InternetAddress(sendFromAddress,sendFromAddress)); |
} catch (UnsupportedEncodingException e) { |
logger.error(e,e); |
message.setFrom(new InternetAddress(email.getFrom())); |
//message.setFrom(new InternetAddress(sendFromAddress)); |
} |
//else |
// message.setFrom(new InternetAddress(Globals.SYSTEM_EMAIL_BOX)); |
213,6 → 233,11 |
public Email getMessageEmail(String from, String subject,String text, LangEnum langEnum, String target, List<String> emails, User user) |
{ |
return getMessageEmailAdulteredFromEmail(null,from,subject,text,langEnum,target,emails,user); |
} |
public Email getMessageEmailAdulteredFromEmail(String fromEmail, String from, String subject,String text, LangEnum langEnum, String target, List<String> emails, User user) |
{ |
// # 0 : From |
// # 1 : Subject |
// # 2 : Text |
224,6 → 249,7 |
arguments.add(text); |
arguments.add(user.getName()); |
arguments.add(target); |
arguments.add(fromEmail); |
String template; |
243,7 → 269,10 |
recipients.add(e); |
} |
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) |
252,7 → 281,8 |
for(String rec: recipients) |
logger.info(rec); |
logger.info("arguments end"); |
Email email = new Email(subject ,recipients,user.getEmail(),template,arguments,Message.RecipientType.BCC); |
fromEmail = fromEmail == null ? user.getEmail() : fromEmail; |
Email email = new Email(subject ,recipients,fromEmail,template,arguments,Message.RecipientType.BCC); |
email.setFromName(from + " (ESTG)"); |
return email; |
} |
/impl/src/java/pt/estgp/estgweb/services/announcements/CreateAnnouncementService.java |
---|
120,7 → 120,7 |
return userViews; |
} |
public Integer sendMessage(HttpServletRequest request, String from, String year, String department, long courseId, long courseUnitId, String semestre, MessageTarget target, String text,String subject, UserSession userSession) |
public Integer sendMessage(HttpServletRequest request, String fromEmail, String from, String year, String department, long courseId, long courseUnitId, String semestre, MessageTarget target, String text,String subject, UserSession userSession) |
{ |
//List<User> users = DaoFactory.getAnnouncementDaoImpl().findUsers(year,department,courseId,courseUnitId,semestre,target); |
AnnouncementDaoImpl.FindUsersResult result = DaoFactory.getAnnouncementDaoImpl().findUsersEmails(year, department, courseId, courseUnitId, semestre, target); |
/impl/src/java/pt/estgp/estgweb/web/form/announcements/MessagesForm.java |
---|
18,6 → 18,7 |
private String importYear = DaoFactory.getConfigurationDaoImpl().getInterfaceImportYearCreateTransaction(); |
private String fromEmail; |
private String fromRole; |
private CourseView courseView; |
private String departamento; |
80,6 → 81,14 |
this.courseViews = courseViews; |
} |
public String getFromEmail() { |
return fromEmail; |
} |
public void setFromEmail(String fromEmail) { |
this.fromEmail = fromEmail; |
} |
public MessagesForm() |
{ |
/impl/src/java/pt/estgp/estgweb/web/controllers/announcements/MessagesController.java |
---|
138,7 → 138,7 |
IServiceManager sm = ServiceManager.getInstance(); |
String[] names = new String[]{}; |
Object[] args = new Object[]{request, mF.getFromRole(),mF.getImportYear(),mF.getDepartamento(),mF.getCourseId(),mF.getCourseUnitId(),mF.getSemestre(), CreateAnnouncementService.MessageTarget.parse(mF.getTarget()),mF.getText(),mF.getSubject()}; |
Object[] args = new Object[]{request, mF.getFromEmail(),mF.getFromRole(),mF.getImportYear(),mF.getDepartamento(),mF.getCourseId(),mF.getCourseUnitId(),mF.getSemestre(), CreateAnnouncementService.MessageTarget.parse(mF.getTarget()),mF.getText(),mF.getSubject()}; |
// String from, String year, String department, long courseId, long courseUnitId, String semestre, MessageTarget target, |
Integer size = (Integer) sm.execute(RequestUtils.getRequester(request, response), "SendMessage", args, names); |
/impl/src/web/admin/announcements/submitMessage.jsp |
---|
35,6 → 35,14 |
<tr> |
<th> |
Email de Origem para aparecer na mensagem |
</th> |
<td> |
<html:text property="fromEmail"></html:text> ** Se deixar por preencher fica o email pessoal |
</td> |
</tr> |
<tr> |
<th> |
<bean:message key="announcement.sendAnnouncementLike"/> |
</th> |
<td> |
156,7 → 164,11 |
})(); |
setTimeout("setText()",500); |
$(document).ready( |
function(){ |
setText(); |
} |
); |
function setText() |