From: <man...@us...> - 2009-12-08 12:50:15
|
Revision: 1332 http://j-trac.svn.sourceforge.net/j-trac/?rev=1332&view=rev Author: manfredwolff Date: 2009-12-08 12:50:07 +0000 (Tue, 08 Dec 2009) Log Message: ----------- Fixing #2859128: Duplicate Emails if assignee is also in the cc list. Modified Paths: -------------- trunk/jtrac/src/main/java/info/jtrac/mail/MailSender.java Modified: trunk/jtrac/src/main/java/info/jtrac/mail/MailSender.java =================================================================== --- trunk/jtrac/src/main/java/info/jtrac/mail/MailSender.java 2009-12-08 12:48:25 UTC (rev 1331) +++ trunk/jtrac/src/main/java/info/jtrac/mail/MailSender.java 2009-12-08 12:50:07 UTC (rev 1332) @@ -164,7 +164,10 @@ } // prepare message MimeMessage message = sender.createMimeMessage(); - MimeMessageHelper helper = new MimeMessageHelper(message, "UTF-8"); + MimeMessageHelper helper = new MimeMessageHelper(message, "UTF-8"); + + // Remember the TO person email to prevent duplicate mails + String toPersonEmail; try { helper.setText(addHeaderAndFooter(sb), true); helper.setSubject(getSubject(item)); @@ -173,20 +176,29 @@ // set TO if (item.getAssignedTo() != null) { helper.setTo(item.getAssignedTo().getEmail()); + toPersonEmail = item.getAssignedTo().getEmail(); } else { helper.setTo(item.getLoggedBy().getEmail()); + toPersonEmail = item.getLoggedBy().getEmail(); } // set CC if (item.getItemUsers() != null) { String[] cc = new String[item.getItemUsers().size()]; int i = 0; for (ItemUser itemUser : item.getItemUsers()) { - cc[i++] = itemUser.getUser().getEmail(); + // Send only, if person is not the TO assignee + if (! toPersonEmail.equals(itemUser.getUser().getEmail())) { + cc[i++] = itemUser.getUser().getEmail(); + } } helper.setCc(cc); } // send message - sendInNewThread(message); + // workaround: Some PSEUDO user has no email address. Because email address + // is mandatory, you can enter "no" in email address and the mail will not + // be sent. + if (! "no".equals(toPersonEmail)) + sendInNewThread(message); } catch (Exception e) { logger.error("failed to prepare e-mail", e); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |