- From: Thomas Gambet via cvs-syncmail <cvsmail@w3.org>
- Date: Mon, 12 Oct 2009 13:07:04 +0000
- To: www-validator-cvs@w3.org
Update of /sources/public/2006/unicorn/src/org/w3c/unicorn/util In directory hutz:/tmp/cvs-serv28398/src/org/w3c/unicorn/util Modified Files: Mail.java Log Message: added logger +email address validity check Index: Mail.java =================================================================== RCS file: /sources/public/2006/unicorn/src/org/w3c/unicorn/util/Mail.java,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- Mail.java 9 Oct 2009 11:13:10 -0000 1.3 +++ Mail.java 12 Oct 2009 13:07:02 -0000 1.4 @@ -13,22 +13,26 @@ import java.util.Map; import java.util.Properties; -import javax.mail.Address; import javax.mail.Authenticator; import javax.mail.MessagingException; import javax.mail.Session; import javax.mail.Transport; +import javax.mail.internet.AddressException; import javax.mail.internet.InternetAddress; import javax.mail.internet.MimeBodyPart; import javax.mail.internet.MimeMessage; import javax.mail.internet.MimeMultipart; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; import org.w3c.unicorn.exceptions.UnicornException; import org.w3c.unicorn.output.FileOutputFormater; import org.w3c.unicorn.output.OutputFormater; public class Mail { + private static Log logger = LogFactory.getLog(Mail.class); + public void sendMail(String[] recipients, String subject, List<OutputFormater> outputFormaters, Map<String, Object> contextObjects) throws UnicornException { try { @@ -46,13 +50,25 @@ InternetAddress addressFrom = new InternetAddress(mailProps.getProperty("unicorn.mail.from"), "Unicorn"); msg.setFrom(addressFrom); - Address[] recipientAdresses = new Address[recipients.length]; - int i = 0; + List<InternetAddress> validAddresses = new ArrayList<InternetAddress>(); + for (String recipient : recipients) { - recipientAdresses[i] = new InternetAddress(recipient); + try { + InternetAddress address = new InternetAddress(recipient); + validAddresses.add(address); + } catch(AddressException e) { + logger.warn("Invalid address: \"" + recipient + "\". Skipping."); + } + } + + InternetAddress[] recipientsAddresses = new InternetAddress[validAddresses.size()]; + int i = 0; + for (InternetAddress add : validAddresses) { + recipientsAddresses[i] = add; i++; } - msg.setRecipients(javax.mail.Message.RecipientType.TO, recipientAdresses); + + msg.setRecipients(javax.mail.Message.RecipientType.TO, recipientsAddresses); msg.setSubject(subject); if (outputFormaters.size() > 1) {
Received on Monday, 12 October 2009 13:07:06 UTC